v1.0.217
✨ New: Bubble titles + cockpit connection list for /cc agentic flows
A pain point with /cc slash mode: the LLM sees 4-char short ids like bmfb / mpcw as opaque tokens — there's no way to know which terminal is the alloydb proxy and which browser is the staging admin. This release closes that gap.
Give each bubble a name
Every terminal / browser bubble's short-id badge now has a ✎ next to it. Click it (or the (set title) placeholder for unnamed bubbles) and a small dialog opens to label the bubble — "alloydb proxy", "staging admin", etc. Titles persist to disk per project + tab, so they survive reloads and server restarts.
Implementation note: titles ride along the existing terminal-bubble-order-${tabId}.json file. The schema is upgraded from a plain string[] to { order, titles } with a transparent legacy-shape read — no migration script needed, and the POST endpoint accepts partial patches (touch only order or only titles, never both unnecessarily).
The dialog guards against CJK / Hangul / etc. IME composition: pressing Enter to commit a candidate no longer fires "save" prematurely.
cockpit connection list — cross-type bubble enumeration
cockpit connection list --cwd $PWD # all alive bubbles in this project
cockpit connection list --cwd $PWD --all # include exited terminals / disconnected browsers
cockpit connection list --cwd $PWD --json # machine-readable for scriptingOutput is TAB-separated, one row per bubble:
term aqou alloydb proxy /Users/.../ai-assistant ~/alloydb-auth-proxy ...
brow mpcw staging admin /Users/.../my-project https://staging.example.com
brow vxvk (none) /Users/.../my-project http://localhost:3000
Exit codes are standardised — 0=hits, 1=no bubbles, 2=usage, 3=server unreachable — so you can pipe it through shell control flow.
/cc prompt teaches the workflow
The /cc slash-mode prompt now instructs the model to call cockpit connection list --cwd $PWD before picking an id, when the user refers to a bubble semantically ("the alloydb proxy terminal") rather than by short id. Title (none) entries fall back to matching the command / URL column.
Prod/dev signalling clarified
/cc now defaults to cockpit (prod) explicitly. The model switches to cockpit-dev only when the user gives an explicit signal — either writes cockpit-dev ... in the task, or starts the task with /cc dev .... No more ambiguous swapping.
📚 Docs
README/GUIDE/docs/manual(en + zh) all gain acockpit connection listline alongside the existing terminal / browser CLI examples.docs/manualadds a dedicated## 6.5 Connection Enumeration (CLI)section with output schema, exit codes, and the design rationale.- Bulk cleanup across
docs/manual(en + zh): retiredcock terminal/cock browser(~33 occurrences each) in favour of the recommendedcockpit terminal/cockpit browser, with an explicit "(cock is the prod-only short alias)" note per CLI section. CLAUDE.mdCommands block expanded to show all three entries explicitly:cockpit(primary) /cock(prod alias) /cockpit-dev(dev only).
📦 Misc
bin/setup-dev.mjs(the script that selectively symlinkscockpit-devto local source for repo contributors) now resolves the global bin dir fromprocess.execPathinstead ofnpm config get prefix. The previous approach could resolve to a different directory undersudobecause/root/.npmrcandHOMEdiffer from the user's —process.execPathis unaffected. SetCOCKPIT_BIN_DIR=...to override for non-standard layouts.cockpit codegraph searchnow accepts--include-literalsto forward the v1.0.216 server-side flag (it was teaching agents about the capability via/cgbut couldn't actually pass it through). Help also documents the case + word-separator folding that v1.0.216 added.- Stale terminal write-side examples (
cock terminal <id> exec / stdin / follow) are gone fromREADME/GUIDE/docs/manual/ the website's/docspage — those were retired back in v1.0.214 and users hitting "Unknown subcommand" had no way to know.