CCC expanded its model roster to five new providers this cycle — Kimi, DeepSeek, GLM, MiniMax, and Qwen, each routed through a zero-translation passthrough that keeps keys server-side. The Intents backlog reached v3 — planning models, sub-intents, and multi-repo research — then shipped autoplay: one toggle drives a story from idea to a merged pull request, unattended. Video generation landed as a first-class lane. Autopilot folded into the Pipelines gallery.
From five new model providers behind a zero-translation proxy to an intent that drives itself to a merged PR — every piece shipped under test and wired into the ledger.
Moonshot/Kimi, DeepSeek, GLM/Zhipu, MiniMax, and Qwen/DashScope join the model picker alongside Claude, GPT, Gemini, and Ollama. All five publish a native Anthropic Messages-compatible endpoint, so they route through a new lightweight passthrough proxy (anthropicproxy.ts) rather than the translation gateway — bytes forwarded as-is, zero schema mismatch. Real API keys resolve server-side from the existing encrypted store; they never enter the PTY child environment. Price-table rows land for all six new model IDs, metered via the existing passive transcript-based usage indexer. Model selection now also populates the size dropdown from the selected model's declared capability set, not a hardcoded list.
Three increments this cycle. PRD story cards and a PRD-grouped step picker ship first, alongside a persistent Chat tab on every intent. BigRalph launch scope and a per-story cost dashboard (with a force-pass escape hatch) land next, plus sync that writes Ralph/BigRalph run results back into the parent intent as a living plan. The v3 capstone follows: planning model selection, multi-repo research scope, story priority, threaded comments, budget caps, sub-intent scaffolding, and instant PR-merge detection. When the pull request lands, the intent closes itself. Your backlog writes the PRD, assigns the work, tracks costs, and closes the ticket — without touching it again after creation.
A single toggle on the intent detail page sets CCC running autonomously toward a pull request. Autoplay reads the latest recommended next step — research, plan, implement, or sign-off — and dispatches the right sessions without operator intervention. When autoplay is enabled mid-intent, the last recommendation replays immediately so execution resumes from the correct state. The recommendation banner and recommended-next-step CTA surface inline at every stage, so the operator can override at any point. The result: an intent created at midnight can have a draft PR open by morning.
Video generation ships as a first-class lane alongside images. A vid- model prefix routes to the video path; the Images page becomes /media (308 redirect from /images); gallery cards are playable <video> elements; and an image-to-video upload flow lets you animate anything already in the gallery. Pipeline canvas nodes accept vid- models with the same cap and n=1 guarantees — outputs land in the blackboard served as video/mp4. A bounded seconds input and a CLI-shim fallback for IMAGEGEN_VIDEO_MODE=cli handle remote backends. Delivered by a full Ralph run (18 iterations); 2,127 server tests pass.
The bespoke Autopilot web UI (~3,000 LOC) is deleted and its capability routed through the Pipelines managed-template gallery. Disable and Run-now controls land directly in the gallery's Use-template dialog. The "Scheduled by Autopilot" badge in the sessions list now links to the gallery — not a dead page. Config-snapshot guard specs were rewritten to drive the guard through the generic adoption route. The result: one UI for all managed pipeline templates, no orphaned nav items, and a tighter code surface to maintain.
Four refinements to the mobile session chat surface. Multi-question AskUserQuestion prompts now step through every question instead of stalling on Q1 — the root cause (parser emitting only questions[0]) is fixed at the server layer, and the card advances with an N/M chip. Consecutive same-type tool calls are grouped so the feed stays readable. Mode and effort can be changed directly from the chat composer. Message queuing no longer strands mid-session sends. Composer overflow, dropdown z-index, and the Intents Chat tab also fix on mobile.
The desktop chat composer gains multi-select question cards with individual option chips, a plan preview that renders the model's current plan inline before execution, a permission-mode chip that shows the active mode at a glance, and immediate mid-turn sends — so you can inject a correction without waiting for the current block to complete. A stale claude_conversation_id bug that blanked the chat view after an in-TUI /resume is fixed at the root. Session-token signing now uses the user_sessions row ID rather than the PTY ID, eliminating a class of auth edge cases.
Every agent and skill row in the project view gains a Download button. Agent export produces a single compiled .md — agent metadata, all settings (model, permissionMode, tools, effort, isolation, hooks), the full system prompt, and the full content of every referenced skill inlined as ## Skill: sections. Built-in, org, and project skills all resolve; missing skills are noted rather than silently dropped. Skill export is pure client-side — no server round-trip. The endpoint respects project, org, and repo scope, and streams text/markdown with a Content-Disposition: attachment header.
CCC Intents now interoperate with Linear. You can adopt an existing Linear issue as a CCC intent (pulling in its title, description, and priority), create a new Linear story directly from the intent panel, and mirror status updates back — so your Linear board reflects what CCC is actually doing without manual sync. A chip popover on the intent detail shows the linked Linear issue, its state, and a direct link. Org-level Linear API key configuration lands in Settings, and the ccc CLI's sessions command now injects the full command inventory into every session's context automatically.
Screens pulled straight from this cycle's pull requests — captured against live, isolated instances.
The model picker now shows Kimi, DeepSeek, GLM, MiniMax, and Qwen alongside the existing providers. All five route through a native Anthropic Messages-compatible passthrough — no schema translation, bytes forwarded as-is, real keys never reaching the PTY child environment. The size dropdown auto-populates from the selected model's declared capability set.
Autoplay reads the latest recommended next step and dispatches the right sessions without operator intervention. Enabling it mid-intent replays the last recommendation immediately so execution resumes from the correct state. The recommended-next-step banner surfaces at every stage, giving the operator a clear override point while CCC handles the default path.
One platform now runs on five new AI providers, drives its own backlog from intent to merged PR without operator intervention, generates and animates video in the pipeline canvas, and consolidates its own feature surface — each increment shipped under test, each capability wired into the ledger before the next one starts.
Nine more capabilities that landed quietly this cycle.
Channel bindings can now target mono-repo subprojects — not just top-level projects — so each sub-team's bot stays scoped to the right codebase. One fix in the project dropdown fetch; the rest of the binding stack already supported subproject IDs.
Sign-off now creates one pull request per repository when an intent touches multiple repos — isolated worktrees, one PR per repo, all linked from the intent detail page. Previously a single-repo assumption blocked multi-repo implementations from reaching sign-off cleanly.
Each intent gains a Costs tab that breaks down BigRalph and Ralph spend per iteration, with a force-pass option to advance past a failed evaluation without re-running. Run results sync back into the parent intent as a living plan.
A badge on the Intents sidebar item surfaces unseen activity — new recommendations, settled research, or a completed run — without requiring the operator to open the intent. A research-settled CTA toast fires once when the data is ready.
Forge's improve tab now runs opt-in rollout-mode tournaments: candidates execute via headless Claude in isolated per-candidate worktrees, graded on deterministic output checks and a judge pass, with duration and token cost surfaced per challenger before promotion.
A live count badge on the Pipelines nav item shows how many pipelines are running without opening the page. The badge updates via the existing session-state subscription — no new polling added.
Sessions started by an intent now carry a badge in the sessions list, linking directly back to the parent intent. Operators can trace any running session to the story that spawned it without searching manually.
Headless Claude invocations — Forge rollout candidates, Ralph iterations, autoplay dispatch — are now metered into the session_usage ledger, so org-level spend dashboards reflect the full picture, not just interactive sessions.
Each row in the desktop automations view now shows the CCC project that owns it. Multi-project operators no longer need to cross-reference to know which project an automation belongs to.
Behind the headline launches, the cycle closed 14 bugs. Autopilot teardown now scopes its pkill to the worktree path — never the dev command. A worktree-seed fix handles repos with an unborn HEAD. The scheduler's concurrent-pipeline gate now reads the pipeline's real lifetime instead of dispatch time. The Claude CLI bootstraps a user-writable install at boot so self-updates take effect without a server restart. Discord and Slack resume no longer strands replies when the per-session autoSubmitPrompt deserializes across process restarts. Session PATH injection ensures node and ccc are always available to spawned sessions. Correctness that compounds — each fix removes a class of failure, not a single instance of it.