Skip to content

CCCC v0.4.17 Release Notes

v0.4.17 is a focused runtime-state reliability release.

The previous release introduced durable provider session metadata and tightened Web runtime synchronization. This release continues that work where it matters most in daily use: Codex actors that still need an interactive PTY surface, but whose actual working state is better represented by structured Codex app-server events than by terminal text alone.

The main theme is reducing runtime state ambiguity without taking away the terminal experience.

Codex PTY with App-Server State

v0.4.17 adds an app-server-backed state source for Codex PTY actors.

When enabled, a Codex actor can keep its PTY interface for user inspection and interaction while CCCC derives runtime activity from Codex app-server state. This gives CCCC a more reliable signal for whether the actor is working, waiting, stopped, or stale, while preserving the operational affordance of a terminal.

This is intentionally scoped:

  • the actor still appears and behaves as a PTY actor where terminal access matters;
  • delivery to the actor remains on the PTY path;
  • activity rings and actor-list state can use app-server truth instead of terminal heuristics; and
  • non-Codex PTY actors continue to use the terminal-state path.

Cleaner App-Server PTY Lifecycle

The new Codex PTY/app-server mode now has tighter lifecycle boundaries.

If the remote Codex TUI exits, CCCC also stops the backing app-server session. Disabled actors now project as stopped even if stale app-server or headless state is still present on disk. App-server-backed PTY actors also avoid duplicate bootstrap queuing from both the app-server side and the PTY side.

Together, these changes address the failure mode where the Web UI, terminal surface, and daemon session could disagree about whether a Codex actor was really running.

Better PTY Activity Detection

Terminal-derived activity detection has been split into reusable helpers and made more precise.

Codex PTY detection now respects the latest visible signal: a newer Working (...) banner is treated as working even if an older prompt line is still present in the terminal tail, while a prompt that appears after a working banner correctly marks the actor idle. Claude PTY detection also recognizes boxed prompts and common working indicators more cleanly.

This reduces both false-idle and false-active states for actors whose activity still comes from terminal output.

WeCom Media and Active Sends

The WeCom adapter now supports a more complete media path.

Outbound files and media use the WeCom AI Bot WebSocket chunk upload protocol instead of the previous incomplete HTTP media-upload path. The adapter can also send active markdown or media messages when there is no current callback reply handle, which makes outbound WeCom delivery less dependent on a recent inbound callback.

The WeCom guide now reflects the improved media behavior and the remaining inline stream-image limitations.

Web UI State Polish

v0.4.17 includes several smaller Web refinements that support runtime supervision:

  • runtime dock rings treat app-server-backed Codex PTY actors as structured runtime sessions;
  • actor avatars use an inline Claude logo for Claude actors;
  • message scrolling clears stale bottom/unread affordances more reliably; and
  • jump-to-message views start detached instead of immediately pretending the user is following the live tail.

These are small changes, but they reduce confusing UI state while supervising busy groups.

Why Upgrade

Upgrade to v0.4.17 if you want to:

  • use Codex PTY actors with more reliable daemon-derived activity state;
  • reduce cases where a Codex actor is working but appears idle, or stopped but appears active;
  • keep Codex terminal access while avoiding terminal-text-only runtime inference;
  • improve WeCom outbound file/media delivery;
  • avoid app-server-backed PTY lifecycle splits; and
  • pick up a tighter runtime-state test suite around these paths.

In short, v0.4.17 makes Codex PTY operation less ambiguous: the terminal remains available, but runtime truth is no longer forced to come only from terminal text.

Released under the Apache-2.0 License.