Plugins. Clef. Run isolation.CuttleCode's platform layer deepens.
CuttleCode gets its Plugin Catalog — 13 plugins ship built-in, each scoped to
exactly the permissions it declares. Clef, the ambient AI assist layer, lands on
main and auto-enables. FX-5 moves every agent spawn under a dedicated OS run user,
keeping secrets isolated and spawn revocable at the kernel level. A Proposal Inbox
surfaces PR merges, flag flips, and deploy holds as swipeable cards with one-tap execution. A
four-phase Analytics Platform lands with self-service dashboards, session provenance
capture, and fleet telemetry. And Ralph gains a stuck-run detector and frontier
escalation — it pauses when it stops making progress and escalates when the local model isn't enough.
A plugin catalog that keeps the server surface fixed, ambient AI assistance, OS-level agent isolation, a structured action inbox, a full analytics stack, a loop definition catalog, orchestrator improvements, and a Ralph that knows when to stop and escalate.
01
Platform
Cuttle Plugin Catalog — 13 Plugins Built-in
CuttleCode gains a first-class plugin system. Import a .cuttle file or browse the
built-in catalog — Automation Suite (nightly triage, weekly dependency audit,
agent code review), ComfyUI (image generation via a local server), and eleven
more ship at launch. Each plugin declares its exact permission scopes — automations.contribute,
sessions.spawn, network:${config.url} — and the operator approves
each one before installation. Plugins are isolated from the server binary; extending CuttleCode
never means editing a config file or restarting the daemon.
02
AI Assist
Clef — Ambient AI Assist, Auto-Enabled
The Clef stack lands on main and turns on automatically when the backend signals
readiness. Clef is CuttleCode's always-on AI intelligence layer: it watches session context,
surfaces relevant wiki pages, and can trigger actions before you ask. Where System One audits every
ACP tool call for safety, Clef operates in the suggestion layer — it recommends rather than
enforces. The stack ships with a Clef assist toggle in the session header and a dedicated settings
panel.
03
Security
FX-5 — Dedicated Run User, Sandboxed Spawn
Seven slices of FX-5 landed this week. Every agent spawn now runs under a dedicated OS-level run
user (ccc-run), separate from the CuttleCode server process. The PTY daemon shifts to
external mode with SO_PEERCRED peer-credential verification. A revocable spawn latch
lets the host admin cut off new spawns without restarting the server. Secrets in
/etc/credstore are readable only by the run user; fx5-migrate --reverse
round-trips byte-for-byte if rollback is needed. Every attack surface reduction ships with a
revert-failing test proving the gap it closed.
04
Inbox
Proposal Inbox — PR Merges, Flag Flips, Deploy Holds
A structured Proposal Inbox surfaces high-stakes actions as typed proposals —
pr_merge, flag_flip, deploy_hold, cleanup,
bug_triage. Each proposal carries a reasoning-provider score; swiping right executes
the action behind CCC_INBOX_EXECUTE. Producer tokens (inbox.produce
scope) let external digests and providers write proposals without broader API access. The inbox
entry appears in the sidebar with an open-item badge and an opt-in high-stakes push notification.
05
Analytics
Analytics Platform — Four Phases in One Cycle
Phase 1 ships a metrics engine and /api/analytics rollups. Phase 2 adds a
self-service Analytics dashboard. Phase 3 captures spawn source, human turns, device class, and PR
origin per session. Phase 4 enables opt-in fleet telemetry with an owner fleet
dashboard — model usage by node, token velocity, and GPU utilisation. All four phases landed in a
single cycle; analytics is now a first-class platform surface.
06
Loops
Loop Catalog Phase A
The first installment of a structured loop definition catalog: a definition schema with cycle
records and readiness keys, fix-with-proof runs that open and close only when the proof passes, a
pytest runner for fail-before/pass-after proofs, and per-environment configurations. Phase A covers
the core lifecycle; subsequent phases will add specialised loop types.
07
Ralph
Stuck-Run Detector + Frontier Escalation
Ralph now detects when a run stops making progress — N identical unmet constraint sets without
forward motion — and pauses automatically at a named checkpoint. From the run view, operators see
the pause reason. Separately, frontier escalation decisions are now recorded (Phase 1) and applied
with revert and spending caps (Phase 2). Ralph can escalate to a stronger model when the local
model isn't resolving the loop, and roll back if the decision turns out to be wrong.
08
Orchestrator
Adopt Existing Sessions into an Orchestration
The orchestrator can now adopt an already-running session into an active
orchestration — via the CLI (ccc orchestrator adopt) and the REST API. The session
gets the orchestration's parentage, appears in the session tree, and can be awaited or cancelled by
the orchestration's control flow. Previously, only sessions spawned by the orchestrator could
participate; now any live session can join.
Orchestrator sessions gain first-class representation in the sessions pane: a collapsible tree
shows parent and child sessions with depth indicators, a Sessions Wait chip counts
how many children are blocked on external events, and the sidebar folds sub-trees when the
orchestrator is not the active session. Session-level parentage is written to the database and
exposed in the REST API.
02 / On the bridge
See the console.
Screens pulled straight from this cycle's pull requests — captured against live, isolated instances.
Platform · Plugin Catalog
Install a plugin. Approve its permissions. Ship.
The built-in catalog opens on the Browse tab. Each entry declares exactly what it touches —
permissions like automations.contribute and sessions.spawn are listed
before the Install button appears. Operators grant each scope individually. The plugin's
automations and tools become available to every session in the project immediately on install.
Built-in catalog Permission scopes Automation Suite ComfyUI
cuttle/plugins
browser-extension/popup
Browser Extension · Redesign
Companion rebuilt at a real canvas.
The browser companion popup is rebuilt at 520px — a genuine product surface, not a scaled-down
widget. The pairing flow is step-numbered. A setup link or short code fills both address fields
at once. The Appearance picker lands in the same panel. And now it works in Firefox, extending
agent-controlled browsing to a second major engine.
Chrome Firefox (new) Pairing code Violet Night theme
browser-extension/firefox
Firefox Extension — install, pair, and connect. Same flow as Chrome, now on Firefox.
cuttle/sessions/active
Mobile ⋯ Sheet — session controls move from a bare trash icon to a deliberate action sheet
with four options.
This cycle CuttleCode became a platform you extend with plugins, isolated every agent behind a dedicated OS identity, shipped ambient AI assistance with Clef,
gave operators a structured inbox for high-stakes actions, and launched a full analytics platform alongside a loop definition catalog and a Ralph that knows
when to stop, escalate, and revert.
Twelve more capabilities that landed quietly this cycle.
Browser Extension
Firefox Support
The CuttleCode browser companion now ships for Firefox. The same pairing flow, the same tab-sharing bridge, and the same agent-controlled browsing — now on a second major engine alongside Chrome.
Browser Companion
Companion Popup Redesign
The browser extension popup is rebuilt at a real 520px canvas — a clean pairing flow, a step-numbered guide, and an Appearance picker. It opens faster and stays out of the way.
Mobile
Session Header ⋯ Sheet
The mobile session header's trash icon is replaced by a ⋯ button that slides up a sheet: Hide tool calls, Hide thinking, Show timestamps, and End session. Less accidental termination; more control.
Agent Sessions
ccc-control MCP in Agent Sessions
Agent sessions can now include the ccc-control MCP server, letting an agent drive CuttleCode's own API from within a session. Opt-in behind CCC_SESSION_CONTROL_MCP.
Triggers
Typed Trigger Parameters
Trigger definitions now declare typed parameter schemas validated before substitution on every execution. Bad parameter types are caught at trigger time, not buried in a failed session.
Wiki
Recommended Pages as Hidden Context
Wiki pages the knowledge advisor marks as relevant to the active session are now delivered as hidden system context — agents start each session already aware of what the wiki says about the work.
Intents
Model Picker in Intents
Intents can now select the model and provider to use when launching a session — from the connected provider menus. The choice persists and re-routes correctly after a retry.
Desktop App
Update Claude Code from the Notice
When Claude Code's in-app update notice appears, a single click now installs the update directly — no terminal, no copy-pasted upgrade command.
Sessions
Left-Rail Hover Cards
Project rows in the left rail now surface a hover card with session counts, active pipelines, and a pinned-project toggle. Session rows show model, branch, and duration — no click required.
Worker Nodes
Offline Notifications
Workspace admins receive a notification when a worker node goes offline after its 2-minute heartbeat window expires. No more silent capacity loss.
Fleet
Model Capability Cards
The fleet dashboard now shows model capability cards generated from actual runs, cycles, and canaries — not from static metadata. Coding models route to worker nodes that match their GPU footprint.
Ralph
Per-Run Learning Record
Ralph writes a per-run learning record table after each cycle, capturing what worked, what got reversed, and why. Stored and queryable across runs under CCC_LEARNING_RECORD_ENABLED.
04 / Under the hull
The unglamorous 80%.
Behind the headline launches, this cycle closed 44 bugs. The automation result detector now
catches AUTOMATION_RESULT on every runner lane, not just the primary. Git reads in
bwrap are hardened and fail closed against paths that escape the work tree. The watchdog
identifies Linux processes by /proc starttime, not ps lstart, closing
a false-positive kill on process-ID reuse. Local Ollama and paid cloud PTY lanes authenticate
correctly with ANTHROPIC_AUTH_TOKEN. The sessions pane keeps past-session rows
visible under a crowded live list. Session sharing surfaces readable conflicts, revocation
paths, and invite flow in plain UI. Project auto-commit is skipped for sandboxed workspace
dirs. A long local-model reply now streams a continuation notice rather than truncating. Every
fix removes a class of failure, not a single instance.