Skip to content

v1.0.217

Choose a tag to compare

@github-actions github-actions released this 26 May 17:52
· 65 commits to main since this release

✨ 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 scripting

Output 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 a cockpit connection list line alongside the existing terminal / browser CLI examples.
  • docs/manual adds a dedicated ## 6.5 Connection Enumeration (CLI) section with output schema, exit codes, and the design rationale.
  • Bulk cleanup across docs/manual (en + zh): retired cock terminal / cock browser (~33 occurrences each) in favour of the recommended cockpit terminal / cockpit browser, with an explicit "(cock is the prod-only short alias)" note per CLI section.
  • CLAUDE.md Commands 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 symlinks cockpit-dev to local source for repo contributors) now resolves the global bin dir from process.execPath instead of npm config get prefix. The previous approach could resolve to a different directory under sudo because /root/.npmrc and HOME differ from the user's — process.execPath is unaffected. Set COCKPIT_BIN_DIR=... to override for non-standard layouts.
  • cockpit codegraph search now accepts --include-literals to forward the v1.0.216 server-side flag (it was teaching agents about the capability via /cg but 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 from README / GUIDE / docs/manual / the website's /docs page — those were retired back in v1.0.214 and users hitting "Unknown subcommand" had no way to know.