CCCC v0.4.16 Release Notes
v0.4.16 is a runtime continuity and Web synchronization release.
The previous release focused on larger product surfaces: Copy Groups, Capability Center, VNC-backed projected browser viewing, and more conservative ChatGPT Web Model delivery state. This release tightens the day-to-day runtime experience around a simpler goal: restarting, relaunching, or switching actors should not create unnecessary provider-session clutter, and the Web UI should reflect daemon runtime truth without requiring a manual refresh.
The main theme is runtime state becoming more durable, explicit, and synchronized.
Runtime Session Resume
v0.4.16 introduces durable runtime session metadata for provider runtimes.
CCCC now stores provider-owned session identifiers separately from hot runner state:
groups/<group_id>/state/runtime_sessions/<actor_id>.jsonThis keeps live process state and future resume state distinct. Hot runner state can disappear when a process stops; runtime session metadata can remain available for the next actor launch.
The PTY path now supports explicit resume for the providers where CCCC can safely identify or control the session:
- Claude PTY actors use explicit generated session IDs and relaunch with
claude --resume <id>. - Gemini PTY actors use explicit generated session IDs and relaunch with Gemini resume/session flags.
- Codex PTY actors capture the active session via
/statusand relaunch withcodex resume <id>.
CCCC intentionally avoids implicit "continue latest session" behavior. Resume is tied to the actor, runtime, runner type, workspace, and command fingerprint so a saved session is not reused after a meaningful runtime or configuration change.
Safer Resume Failure Handling
Runtime resume is best-effort, not a new source of truth.
If a provider rejects a saved session, CCCC now marks that session metadata as failed and falls back to a fresh launch instead of repeatedly reusing the same stale ID. The implementation also guards against several dangerous edge cases:
- PTY and headless metadata do not cross-resume into each other.
- Already-running PTY actors do not receive speculative new session metadata.
- Failed fresh fallback launches do not leave generated IDs marked usable.
- Stale Claude headless resume attempts are detected before they can keep poisoning future starts.
- Copy Groups continues to exclude runtime session metadata so copied groups do not inherit another machine or actor's provider session.
The result is a practical resume layer: it reduces session sprawl when resume is valid, but it does not let provider-side resume state override CCCC's ledger and actor state.
Headless Runtime Metadata
Headless runtimes now record provider session or thread metadata where useful, while preserving provider-specific boundaries.
Claude headless sessions can use explicit provider session information when supported by the CLI mode. Codex app-server sessions record thread identity and keep PTY session IDs separate from app-server thread state. This gives CCCC better diagnostics and a safer base for provider-native resume without pretending that every runner exposes the same session model.
Built-In Assistant Runtime Configuration
PET and Voice Secretary startup now respect their own runtime configuration more consistently.
Built-in assistant actors no longer rely on foreman runtime details as a delayed fallback during daemon startup. Their runtime descriptors are seeded through the built-in assistant paths, which makes their icons, runtime labels, and startup state appear earlier and more predictably in the Web dock.
Web Runtime State Synchronization
v0.4.16 fixes a long-standing UI drift class where an actor was running in the daemon but still appeared stopped in the Web UI until the page was refreshed.
The Web actor state path now uses one unified actor snapshot source:
refreshActors()requests ordinary actors and built-in runtime actors together.- The store splits those actors into the normal actor list and internal runtime actor list.
actor.activityincremental events update both lists.- Runtime dock aggregation uses the actual set of actors shown in the dock.
This removes the previous split-brain behavior where built-in actors could be present in one store path but not updated by the event path.
Read-write actor list caching was also simplified so the private Web UI does not hand off stale one-shot actor snapshots after lifecycle changes.
Terminal Attach and Runtime Switching
Actor terminal connection handling has been extracted into a reusable hook and made more precise.
The Web UI now distinguishes between:
- a startup race, where a PTY actor is expected to become attachable shortly; and
- a runner mismatch, where terminal attach is simply not applicable, such as a headless actor.
This reduces noisy repeated messages like:
terminal attach is only available for PTY actorswhen switching actors between PTY and headless modes. It also keeps terminal reconnect behavior more local to the terminal connection layer instead of burying it inside the larger Agent tab component.
Composer and Voice Secretary Polish
This release also includes several Web UI refinements that support the runtime work:
- cross-group recipient handling is more explicit and better covered by tests,
- composer action plumbing is easier to reason about,
- Voice Secretary live transcript preview and workspace layout behavior were tightened, and
- markdown/code-heavy message rendering remains denser after the previous code-block cleanup.
These are not headline features, but they reduce UI drift around the same surfaces users rely on while supervising runtime actors.
Why Upgrade
Upgrade to v0.4.16 if you want to:
- reduce Claude, Codex, and Gemini session sprawl when relaunching PTY actors,
- make stale or rejected provider resume IDs recover cleanly,
- keep PTY and headless runtime session state separated,
- see PET and Voice Secretary runtime state earlier after daemon startup,
- reduce cases where the Web dock shows stopped actors that are already running,
- avoid repeated terminal attach errors while switching runner modes, and
- pick up a cleaner, more testable terminal connection layer.
In short, v0.4.16 makes CCCC's runtime layer more continuous and less confusing: provider sessions are persisted when safe, rejected resumes fall back cleanly, and the Web UI now follows daemon runtime truth more consistently.