This release includes 1 breaking change for platform teams planning a safe upgrade.
Published 13h
Developer Productivity
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
agent-orchestration
agents
ai-coding-agents
awesome-claude-code
claude
claude-code
+7 more
web
developer-tools
headless
kanban
llm-tools
local-first
python
Affected surfaces
auth
Summary
AI summaryDuplicate repo instance guard prevents overlapping CCC servers, worker upgrades now apply immediately, and Codex liveness probe false positives are fixed.
Full changelog
Added
- Added a duplicate-repo instance guard: on startup the dashboard now checks the peer registry for another live CCC server whose git common-dir matches its own (identical across worktrees of one repo) and refuses to start, printing the offending pid/install path/port. This catches the "forgotten
python3 server.pyfrom a worktree" case — observed as a day-old instance leaking app-server children and writing into the shared activity log — while leaving legitimate multi-repo peers untouched. Override withCCC_ALLOW_DUPLICATE_REPO=1orCCC_EPHEMERAL=1for intentional second instances. Registry entries now recordrepo_common_dir, and stale entries held by recycled pids are verified by argv before being treated as duplicates. - Add an Annotate control to the queue-first view so UI feedback can be captured without returning to sessions.
- Worker upgrades now actually take effect:
run.shcompares the persistent worker's loadedserver.pyversion (newserver_versionfield in the worker health response) against the repo on every launch and kickstarts the worker when they differ. Previously the "never restart a healthy worker" policy meant code fixes in worker-owned paths (like the Codex app-server liveness probe) never reached upgrading users until a crash or reboot. Queued work from the restarted worker shows as "needs reconciliation" and is reclaimed with one click in Settings → Maintenance.
Fixed
- Keep Coding, Workers, and Messages selectable while filtering All sessions by Claude, Codex, or Kimi.
- Fixed the Codex app-server WEDGED-and-respawn churn (up to every ~45s). Root cause, confirmed by full-lifecycle tracing: the liveness probe treated any reply without a
"jsonrpc"envelope key as fake — but this app-server omits that key from responses, so every probe "failed" in ~0.5s on a perfectly healthy server, and each WEDGED replacement needlessly killed the app-server (and any live turn on it). The probe now accepts any genuine reply (result, or a protocol-levelerrorwithout the syntheticfallbackmarker). Supporting hardening from the same investigation: any recent channel traffic now counts as proof of life (probe skipped entirely), a failed probe defers replacement while a tracked turn shows fresh activity,_log_activity's per-callmkdiris cached, liveness logging no longer runs under_CODEX_APP_SERVER_LOCK, and a permanent JSONL firehose (logs/app-server-trace.log) traces every probe stage, request, reader event, and liveness decision. - Throughput page: the Codex weekly burn chart no longer collapses to the raw 14-day view when a refresh lands while the Codex usage snapshot is stale; the chart now shows 7 days of history and at most 2 days of forecast; the selected engine tab survives reloads; and the 48h zoom (+) switches to 1-hour columns.
- Add a separate configurable reasoning-effort default for WatchTower workers.
Breaking Changes
- On startup the dashboard now refuses to start if another live CCC server shares the same git common-dir, unless overridden with `CCC_ALLOW_DUPLICATE_REPO=1` or `CCC_EPHEMERAL=1`.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About CCC
All releases →Related context
Related tools
Earlier breaking changes
- v5.0.1 Removes horizontal-drag gesture that collapsed conversation pane.
Beta — feedback welcome: [email protected]