CCCC v0.4.47 Release Notes
CCCC v0.4.47 introduces Chet, a global assistant you can use by text or voice, message pins, quick replies, and a redesigned Web interface. Managed Claude agents can show Claude's own workspace-trust and permissions confirmation in their terminal. This release also improves message navigation and process recovery and fixes access-control and Group-copy problems. This release covers the changes since v0.4.46; see Before You Upgrade before installing.
Before You Upgrade
Upgrade the CCCC executable and restart the daemon and Web through your usual launch method to load the new code and bundled Web assets. The standalone installer behind cccc update stops a running daemon and starts it again from the new version. Before a pip upgrade, run cccc daemon stop and close any foreground CCCC so pip can replace the executable, especially on Windows, then start CCCC again. A daemon left running keeps the previous version. Runtime history remains in CCCC_HOME.
- The Web interface now uses the pixel-terminal look throughout. The previous look is not available as an option. Light and dark themes remain available.
- Pinned replaces the Mail and Requests chat filters. Those messages remain in the conversation with their existing marks, but cannot be listed by type. A remembered Mail or Requests view opens under All.
- The interface calls Group members agents. Commands such as
cccc actor, API fields such asactor_id, and the underlying identities have not changed. - The Web
delegate_contactroute and daemonrelay_user_delegationoperation were removed. Integrations that used them should use Websend_cross_groupas the user; replies go back to the human sender rather than a relaying agent. - For already connected native sessions, update and reload the CCCC integration and reconnect its MCP server in each app to receive the new tool declarations. Restarting the CCCC daemon alone does not reload those processes. Follow the native-session upgrade steps for your app.
- MCP
cccc_message_sendrefuses non-emptyevent_idorreply_to: usecccc_message_replyto answer an existing message. Blank values are treated as absent. - Custom speech-recognition model IDs in
config/voice-models.jsonmust start with a lowercase letter or digit and must not end in.. A local model installed or updated by this release may appear uninstalled after a downgrade; reinstall it in the older version. - This CCCC release does not include an SDK update; the next SDK release will be prepared separately. A contract and code comparison indicates that common messaging, inbox, history, Group, agent, context and task paths in
cccc-sdk0.4.41 remain compatible; that version has not yet had a complete end-to-end check against this release. Five Python and TypeScript Voice Secretary convenience methods call operations that have returnedunknown_opsince CCCC 0.4.43:assistant_settings_update,assistant_status_update,assistant_voice_document_input_read,assistant_voice_prompt_draft_submitandassistant_voice_request. Those operations were removed in CCCC 0.4.43, not in this release. - MCP
cccc_tasknow returns short rows by default; read a specific task for its notes, checklist and outcome. Several message-tool receipts omit text or insight that exactly matches the input and identify omissions inmcp_omitted_fields; the ledger and delivery still contain the full message.
Chet: One Assistant for Text, Voice and Groups
The former Voice Analyst is now Chet. Open Chet to send text without starting a voice call; text and assistant-mode voice share its session. CCCC keeps sent text, the voice transcripts it actually observes, work receipts and results on its host. Unsent drafts remain in the browser. A Group selected when you send is included as context.
A Group agent can send a message to @chet as its only recipient, with Send or Send + Reply. A Web administrator can select @chet in the recipient row. Chet's messages in a Group appear under its own name; replies to them can reach Chet even outside a voice call. The conversation identifies the source Group and sender, links back to the message, and shows if no reply is observed yet. Unconfirmed results are not automatically replayed.
Chet's session can contain your conversation and content from multiple Groups. The restrictions against putting another Group's content into a reply are instructions to the model, not isolation or a permission boundary. Chet does not forward between Groups or send through Connect on your behalf.
Pin, Find and Answer Messages
- Pin message in a message's menu keeps a reference in the Group's Pinned view, with a count and a link to the message in the conversation. Pins are shared by authorized Web users of that Group, up to 100 per Group. A read-only exhibit cannot see or change the list; CCCC does not deliver pin state to agents through messages or tools. Copy Groups does not copy pins.
- Quick reply offers four ready replies on eligible agent messages. Selecting one sends it immediately as a reply to that agent; a retry after an uncertain result can send it twice.
- When you change a filter, CCCC tries to keep your reading place using messages the new view has loaded; if it cannot, the view opens at its newest messages. Waiting for you and Pinned keep a message only when they list it. Show in chat opens a message in its conversation and can return to the filtered view. Filtered results with earlier history offer Load older results, including when the current matches do not fill the screen.
- Already-loaded messages opened from a link, search or notification stay in the live conversation when no filter is active. An older, unloaded message opens on its own, with controls to reach newer messages.
- The option under Appearance to hide Waiting for you indicators removes the badges and filter while keeping questions answerable in their messages. Browser notification settings remain separate.
- A click on a notification is less likely to lose its target when the page or browser is slow to respond. It is still a best-effort path, not a guarantee that every notification will open its message.
Claude's Own Confirmation Terminal
When a managed Claude agent needs workspace trust or the disclaimer for --dangerously-skip-permissions, CCCC opens Claude's prompt in that agent's terminal and waits for you. CCCC does not answer for you. After you accept, it tries to connect the managed session; messages wait for that connection.
If the prompt ends without connecting, automatic starts pause for that agent during the current daemon run. You can launch it again or start the Group explicitly. The Group's other agents can still start. A daemon restart may retry the agent, but does not constitute acceptance. Pausing or stopping the Group closes a waiting prompt.
Web and Everyday Workflows
The Web UI's pixel-terminal design covers chat, task board, settings, terminal and file viewers, Chet, Voice Secretary and presentations. Appearance offers light and dark themes, message-width and font controls, and a Motion option; the system's reduced-motion setting also holds nonessential motion still.
Message actions appear beside the message header on sufficiently wide pointer-driven layouts; touch and narrow layouts use the message menu (⋮) in the header. In a filtered view, Show in chat follows the time on those layouts. The member bar floats above the composer. On phones, touch-scrolling toward newer messages hides the header, filters and member bar even when the gesture starts on a message link or action, or follows a filter tap. The list keeps its bottom space while the bar is hidden, so the reader is not pulled to the end. A touch scroll that moves the list can take focus out of the main message box, allowing the browser to dismiss its keyboard. A draft stays; an active input-method composition and an in-message answer editor are left alone.
Web links in ordinary Markdown open in a new tab; relative links, anchors and mailto: keep their existing behavior. A page can offer a refresh after the server's Web interface changes, but never reloads itself; confirming the refresh may discard unsaved page changes. The session-connection dialog now starts with the target Group and session selection, and folder creation gives clearer feedback while preserving the entered name.
Access, Recovery and Other Fixes
- Images sent from the Web page no longer rely on a temporary browser preview after the upload is confirmed. They remain available when a filter change or a long conversation causes the message to be displayed again.
- A Web access token limited to certain Groups could access, change or delete other Groups. Group authorization now checks the Group identified by the route. Web message routes also reject caller-supplied agent or Chet authors and use the authenticated human's
useridentity. - Copy Groups no longer includes Weixin login credentials, DingTalk reply sessions, pending IM binding keys, legacy actor secrets or in-progress temporary files in the Group root and state directory.
- A queued terminal submission is tied to the terminal session whose state was checked; replacing that terminal during delivery no longer sends the submission to the replacement on the strength of the old check.
- Voice cleanup and Web Access Apply retain recovery work when cleanup cannot be confirmed. Review earlier processes shows records still needing attention. Accepting a record stops waiting for it; it does not stop the old work, which may still change files or incur provider costs.
- Linux recovery uses stronger process identity where available and retains uncertain records for review; some systems still use approximate matching. On macOS the existing crash watchdog remains unchanged and has a potential misidentification risk. Native macOS and older Linux verification remains outstanding; see the Web UI guide for the precise limits and recovery steps.
- Windows PTY agents use compatible local-drive working paths where they can be simplified safely. Unsupported paths for a detected cmd.exe launch are rejected with an explanation instead of silently starting in the wrong directory. The global secretary and Hermes resume compare resolved workspace paths rather than requiring the same textual spelling.
- Voice Secretary detects a document changed since it was opened, preserves the draft, and lets you load the newer text or explicitly overwrite it. A failed local ASR model update keeps an already working installation usable.
- The answer box for a choice question accepts Ctrl+Enter or ⌘+Enter while leaving an active input method's composition alone.
See the changelog, Web UI guide, local sessions guide and Voice Secretary guide for the full changes and operational details.
Validation Scope
Release preparation ran the Rust workspace tests and static checks, the Web tests and static checks, and repository and documentation checks. An isolated smoke test of the packaged Linux build covered its served Web assets, layout, touch scrolling at phone width in Chromium's emulation, and the confirmation flow with a fake Claude. Windows-specific tests and a native Windows debug build were checked as well.
This is not complete live acceptance. Real iPhone scrolling and input methods, a real Claude confirmation prompt and native macOS were not exercised in these checks. The Windows and macOS release builds come from release CI. Live Voice remains experimental.
Thanks to waterbang, and to everyone who contributed code, tested and reported issues.