CCCC v0.4.44 Release Notes
CCCC v0.4.44 makes busy Groups easier to follow, adds experimental Grok Voice, and improves how voice investigations return their results. Terminal and task workspaces use their available space more effectively, settings preserve pending edits, and repository instructions now use AGENTS.md through each runtime's own loading rules.
This release covers development starting with 41908bbf, the first commit after v0.4.43, plus the Group-selection and Context navigation improvements included in this release.
Follow the People You Need
The conversation's Sender menu now supports multiple checked senders. Select the Foreman, several peers, the user, or any combination. Each Actor appears once, with the current Foreman labelled; the scrollable menu supports keyboard navigation and keeps long teams accessible.
- Sender choices combine with the existing message-type tabs. All clears the message-type condition; Show all clears the sender condition. Each Group remembers its selected sender identities in this browser.
- Older matching messages load through their own pagination. Live arrivals, reconnect catch-up, cross-Group delivery, read receipts, replies and cancellations stay aligned with the same ledger facts as the full conversation. Ordering follows ledger position rather than wall-clock timestamps.
- View context opens the surrounding conversation without losing the filter. Sending also preserves filters. If they hide your outgoing message, View message opens it in its originating Group, even after you have switched Groups.
Runtime Dock indicators now use the current managed Actor state, so an old failed turn does not keep a recovered Actor looking broken.
Grok Voice Joins the Voice Console
Choose Codex Voice or Grok Voice in the same voice console. Grok Voice is experimental and uses the CCCC host's existing Grok Build subscription login: install grok and run grok login. No separate API key is required for this path. Availability and usage limits depend on the provider and account entitlement.
Grok Voice offers 28 built-in voices, with Eve as the default. The host retains long-lived login credentials; the browser receives a short-lived connection secret and streams call audio directly to the provider. The Voice Analyst's runtime remains an independent choice: changing the Analyst does not change the service speaking to you.
Codex Voice's subscription-channel catalog expands to 25 voices. Newly documented language profiles have language hints in the searchable menu; these hints do not restrict which language you can speak. Cove remains the default. CCCC retains the subscription backend's model identifier rather than promising a particular GPT-Live rollout to every account.
The console header offers direct service and searchable voice selection, sharing the same preferences as Settings. Each provider's voice is remembered in this browser for the next call; end an active call before changing either selection. The sidebar and compact call header keep the service, voice and status visible, showing the current selection when idle and the actual call identity during a call. Microphone, settings and stop controls remain available.
See the Voice guide for login paths, configuration and provider boundaries.
Investigations Return to the Conversation More Reliably
Voice is instructed to give the Analyst a concise, actionable request containing the confirmed target, necessary background, limits and latest corrections, while keeping the user's request language and any explicit output-language requirement. A clear request can retain its original wording. Both services attach a bounded, speaker-labelled excerpt from the current call to make follow-ups understandable; that excerpt becomes part of the Analyst's retained conversation.
Grok briefly acknowledges accepted investigations, then announces complete results one at a time in arrival order. This includes investigations entered directly in the Analyst console during the call. Progress remains visible in the Analyst; spoken reports wait for the user's reply, the previous response and playback. Each announcement targets its own result rather than the latest question.
Delivery and lifecycle fixes cover both providers:
- A missing older context acknowledgement no longer holds up independently ready updates or tool receipts. Uncertain delivery is surfaced rather than repeatedly replaying work.
- Grok preserves new speech requests while another response is starting, handles pending automatic VAD replies, and carries completion even when all final text was already delivered as progress.
- Native Analyst input without an expected echo, lost admission ownership and ACP disconnects settle without indefinitely blocking later investigations.
- Codex assistant turns finish their UI state and partial transcript even when the terminal event contains no final text.
- Grok playback has a small startup/underrun buffer and rejects late audio from superseded responses while retaining already queued playback.
These changes improve delivery and playback handling; they do not guarantee that every result will be spoken. You can interrupt normally. Interrupted Grok reports are not automatically replayed, and ending a call clears its local announcement queue without cancelling or replaying Analyst work. Grok's reported mid-answer pitch/timbre drift remains unresolved. There is no new speed or pitch control in CCCC in this release.
Voice Secretary also keeps the originating Group's composer snapshot when recording startup awaits settings or a lease. Switching Groups cannot substitute the new Group's unsent draft. Metadata-only document refreshes no longer produce a false remote-edit conflict for an unchanged document.
More Room for the Actual Work
Terminal pages adapt to their available width and height: up to four panes in a 2×2 grid, two side by side in shorter spaces, or one when width is limited. Resizing retains Actor order and the visible page's anchor, while terminal sizing keeps a single owner.
Tiled panes share simple dividers and compact headers with Actor avatars. Web Model, Dots and managed-output views reduce redundant frames and padding. Expanded views retain their full controls; configuration does not need to occupy every tile. The task board similarly keeps the goal, focus and warnings visible while letting the full summary expand on demand. Editing a summary preserves its goal, focus and constraints.
Project Context uses one navigation row for Tasks, AGENTS.md, Agent State, Coordination log and Skills. The working summary expands within Tasks; repository instructions and records each have their own content area. Compact headers leave more room for content, and the navigation scrolls on phones. Summary/file drafts and task filters survive section changes.
Group and message links still open their named Group. Otherwise, the browser restores the last selected Group; if it is unavailable, it opens the first unarchived Group in sidebar order, or the first Group when all are archived. Switching Groups updates the URL and clears the previous message anchor, so refreshing stays in the Group you selected. Reordering or archiving does not move an existing selection.
Settings Keep Drafts and Finish Accepted Actions
Delayed reads and saves are tied to the view or editor that requested them. Switching Groups, Profiles or settings tabs no longer lets old responses replace the current draft. Independent writes still reconcile their successful results, and requested Group exports can finish downloading after Settings closes.
Skill content saves preserve unsaved Actor assignments and menu selections; overlapping visibility changes update other consumers; saving assignments cannot silently undo a successful skill block. Failed Profile saves retain valid pending credential-metadata reads. Web Access, automation, diagnostics and authentication flows also preserve their current state against stale responses.
Context read failures offer explicit retry instead of an automatic retry loop. Read caches are invalidated around accepted mutations so an older in-flight read cannot restore stale Actor, Context, capability, Prompt or access settings.
Repository Instructions Use AGENTS.md
Project Context now views and edits AGENTS.md at the active workspace root. Runtime-native discovery, precedence and refresh decide how instructions are loaded; CCCC does not inject this file into prompts or combine ancestor and nested files. The team working summary and task board retain their separate jobs. Some runtimes may prefer their own instruction file, such as CLAUDE.md; use their native configuration where necessary.
Upgrade action: CCCC no longer treats PROJECT.md specially. Its dedicated cccc_project_info MCP tool, bootstrap metadata and /project_md Web endpoint are removed. Existing files are left untouched. Review any reusable instructions in your old file and merge them deliberately into the appropriate AGENTS.md, preserving existing instructions. Longer project references can remain ordinary Markdown files.
Web Model and Dots Actors can use the existing cccc_file tool for on-demand reads. Update custom integrations that call the removed tool or endpoint; the editor uses /agents_md and rejects a save if its workspace changed. Saving does not reload an existing runtime session. Use the runtime's own loading rules, and optionally notify the team after saving.
Smaller Everyday Fixes
- Video attachments show an on-demand preview and play in a focused dialog with authenticated byte-range delivery. Starting another attachment pauses the previous video; unsupported formats retain a download action. Narrow layouts and pending-upload transitions are handled without overflowing the conversation.
- Voice transcript flushes accept an omitted or blank session ID by assigning a fresh one, while retaining segment validation.
- Confirmed closed Direct connections are cleaned up without a separate history removal action. Active, offline and uncertain connections remain visible. Existing queued messages retain their connection; removing a closed record releases the preference for future Direct routing, allowing an independently authorized account route when available.
- Website installers resolve the latest stable release when run, rather than remaining pinned to the version used to build the website. Explicit version selection still works, and failed resolution or download preserves the existing installation.
- Ledger and status queries avoid unnecessary cloning and repeated scans; SSE disk polling runs off the async executor. Chat rendering, Markdown setup and hidden voice-document refreshes also avoid unrelated work. IM helpers and settings code are consolidated without adding another control plane.
Thanks to waterbang and everyone who contributed, tested and reported workflow failures.