[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72449":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":16,"starSnapshotCount":16,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},72449,"claude_codex_bridge","SeemSeam\u002Fclaude_codex_bridge","SeemSeam","Visible multi-agent CLI teams for Claude, Codex, Gemini, OpenCode, and Droid with project memory and tmux supervision","",null,"Python",2939,292,8,53,0,37,95,402,111,109.4,"Other",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40],"ai-collaboration","ai-tools","claude-code","cli","codex","cross-platform","droid","gemini","llm","multi-agent-cli","multi-agent-systems","opencode","python","terminal","2026-06-12 04:01:05","\u003Cdiv align=\"center\">\n\n# CCB - Agent CLI Hub and Teams\n\n\u003Cp>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEvery_Interaction_Visible-096DD9?style=for-the-badge\" alt=\"Every Interaction Visible\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEvery_Model_Controllable-CF1322?style=for-the-badge\" alt=\"Every Model Controllable\">\n\u003C\u002Fp>\n\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-6.2.2-orange.svg)]()\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey.svg)]()\n\n**English** | [Chinese](README_zh.md)\n\n[Why CCB](#why-ccb) · [What's New](#whats-new) · [Start and Stop](#start-and-stop) · [Configuration](#config-control) · [How to Use](#how-to-use) · [How to Install](#how-to-install) · [Release Notes](#release-notes)\n\n\u003C\u002Fdiv>\n\n---\n\n## Why CCB\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>1. One command for all required CLI operations and management\u003C\u002Fb>\u003C\u002Fsummary>\n\nStart, attach, recover, supervise, and operate Claude, Codex, Gemini, OpenCode, and Droid from one terminal workspace.\n\n- one project entry point for all supported CLI agents\n- one place to manage startup, restore, attach, and shutdown\n- one consistent runtime flow instead of per-tool ad hoc handling\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>2. Agents can sense and communicate with each other\u003C\u002Fb>\u003C\u002Fsummary>\n\nNamed agents can discover each other, use `\u002Fask`, broadcast updates, and delegate work without copy\u002Fpaste.\n\n- direct agent-to-agent delegation with named targets\n- broadcast sync for all live agents when the whole team needs the same context\n- explicit handoff patterns for builder, reviewer, and QA style workflows\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>3. Project-level professional agent teams\u003C\u002Fb>\u003C\u002Fsummary>\n\nBuild project-local teams with roles, pane layout, provider state, worktree isolation, and lifecycle continuity.\n\n- role-based team composition per project\n- isolated provider state under the project runtime\n- optional worktrees for agents that need separate working sets\n- continuity across restart, recovery, and pane supervision\n\n\u003C\u002Fdetails>\n\n\u003Cdiv align=\"center\">\n\n![Showcase](assets\u002Fshow.png)\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Demo animations\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cimg src=\"assets\u002Freadme_previews\u002Fvideo2.gif\" alt=\"Any-terminal collaboration demo\" width=\"900\">\n\n\u003Cimg src=\"assets\u002Freadme_previews\u002Fvideo1.gif\" alt=\"VS Code integration demo\" width=\"900\">\n\n\u003C\u002Fdetails>\n\n\u003C\u002Fdiv>\n\n## What's New\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Latest release highlights\u003C\u002Fb>\u003C\u002Fsummary>\n\n- **Managed Codex no longer stops on migration prompts**: CCB disables Codex `external_migration` only inside managed Codex homes.\n- **Inherited Codex config is preserved**: source-home model, API, and feature settings still carry forward; the managed-home override only prevents the interactive migration prompt.\n- **Fallback config copy is covered**: even when TOML parsing is unavailable, copied managed Codex config receives the external migration override.\n- **Inherited `ccb_config` remains available**: Claude and Codex installs keep the CCB config-design skill introduced in v6.2.1.\n\nSee [Release Notes](#release-notes) for the full history.\n\n\u003C\u002Fdetails>\n\n## Start and Stop\n\n### Common Commands\n\n```bash\nccb                              # Start default agents from .ccb\u002Fccb.config\nccb -s                           # Safe start: keep configured\u002Fmanual permission behavior\nccb -n                           # Rebuild .ccb except ccb.config, then start fresh\nccb kill                         # Stop this project's background runtime\nccb kill -f                      # Force cleanup before rebuilding state\n```\n\nTmux copy\u002Fpaste: drag with the left mouse button to copy, and use `Ctrl+Shift+V` to paste.\n\n## Config Control\n\n`ccb` is controlled by `.ccb\u002Fccb.config`. This file is project-local and user-authored; if it is missing, CCB uses the built-in default without writing a new config file.\n\n`.ccb\u002Fccb_memory.md` is the project-wide shared memory document.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Config Design Skill\u003C\u002Fb>\u003C\u002Fsummary>\n\nUse `ccb_config` when you want an agent to design or update the CCB team instead of editing config by hand. It is inherited by Claude and Codex installs and focuses on three user-authored files:\n\n- `.ccb\u002Fccb.config` for the team, provider choices, pane layout, and worktree policy\n- `.ccb\u002Fccb_memory.md` for shared project workflow guidance\n- `.ccb\u002Fagents\u002F\u003Cagent>\u002Fmemory.md` for per-agent role guidance\n\nInvoke it from a supported provider skill surface, for example:\n\n```text\n$ccb_config Design a team for a Python library with one coordinator, two worktree implementation agents, and one reviewer.\n```\n\nThe skill helps choose agent names, providers, `inplace` versus `git-worktree`, compact layout syntax, and whether role instructions belong in shared or per-agent memory. It validates that `.ccb\u002Fccb.config` is the active authority and tells you to restart CCB after file changes are complete.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Layout\u003C\u002Fb>\u003C\u002Fsummary>\n\nUse the first compact line to define the team and pane layout:\n\n```text\ncmd; writer:codex, reviewer:claude; qa:gemini(worktree)\n```\n\nThat layout means:\n\n- `cmd` is the shell pane\n- `writer`, `reviewer`, and `qa` are agent names and pane titles\n- `codex`, `claude`, and `gemini` are providers\n- `;` splits panes left-to-right; `,` stacks panes top-to-bottom\n- `qa` runs in an isolated git worktree; agents without `(worktree)` run `inplace`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Per-Agent API And Model\u003C\u002Fb>\u003C\u002Fsummary>\n\nKeep the compact layout first, then add TOML tables only for agents that need their own API route, key, or model:\n\n```toml\ncmd; builder:codex, reviewer:claude; research:gemini(worktree)\n\n[agents.builder]\nkey = \"sk-...\"\nurl = \"https:\u002F\u002Fapi.example.com\u002Fv1\"\nmodel = \"gpt-5\"\n\n[agents.reviewer]\nkey = \"sk-ant-...\"\nurl = \"https:\u002F\u002Fapi.anthropic.com\"\nmodel = \"opus\"\n\n[agents.research]\nkey = \"gemini-key\"\nmodel = \"gemini-pro\"\n```\n\nNotes:\n\n- `key` and `url` are agent-local shortcuts for `codex`, `claude`, and `gemini`.\n- `model` is an agent-local shortcut for `codex`, `claude`, `gemini`, and `opencode`.\n- Setting `key` or `url` makes that agent use the explicit API authority instead of inheriting a global provider API credential.\n- For advanced provider env, use `agents.\u003Cname>.provider_profile.env`; do not mix provider API env keys with `key` \u002F `url` on the same agent.\n- Do not commit real API keys in a public repo.\n\nCommon compact examples:\n\n```text\nwriter:codex, reviewer:claude\ncmd; writer:codex, reviewer:claude; qa:gemini(worktree)\ncmd; fast:codex, deep:codex\n```\n\nSame provider, separate API keys:\n\n```toml\ncmd; fast:codex, deep:codex\n\n[agents.fast]\nkey = \"sk-fast...\"\nmodel = \"gpt-5-mini\"\n\n[agents.deep]\nkey = \"sk-deep...\"\nurl = \"https:\u002F\u002Fapi.example.com\u002Fv1\"\nmodel = \"gpt-5\"\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Update\u003C\u002Fb>\u003C\u002Fsummary>\n\nCCB v6 currently supports `ccb update` on Linux, macOS, and WSL. A major upgrade fully replaces the installed runtime. On the first `ccb` inside an older project, CCB preserves `.ccb\u002Fccb.config`, clears the rest of the old `.ccb` state, and rebuilds locally.\n\nIf you installed from a git checkout with `.\u002Finstall.sh install`, that install now runs in source dev mode:\n\n- Global `ccb` and `ask` link back to the checkout instead of using a copied snapshot\n- CCB-owned inherited skills under `inherit_skills\u002F` and helper scripts also follow the live source tree\n- Source installs do not participate in startup auto-update prompts\n- Stay on the source\u002Fdev track with `git pull` or by switching commits, then rerun `.\u002Finstall.sh install`\n- Or run `ccb update` to install the latest stable release and repoint global `ccb` links to the managed release install\n\n```bash\nccb update              # Update to the latest stable release\nccb update 6            # Update to the highest v6.x.x version\nccb update 6.0          # Update to the highest v6.0.x version\nccb update 6.0.5        # Update to a specific version\nccb uninstall           # Uninstall ccb and clean configs\nccb reinstall           # Clean then reinstall ccb\n```\n\n\u003C\u002Fdetails>\n\n## How to Install\n\n1. **Unix-like (Linux, macOS, WSL)**\u003Cbr>\n   Use this path when `ccb` and your agent CLIs run in the same Unix-like shell.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FSeemSeam\u002Fclaude_codex_bridge.git\ncd claude_codex_bridge\n.\u002Finstall.sh install\n```\n\n2. **Windows**\u003Cbr>\n   Use this path when your agent CLIs run natively on Windows.\n\n```powershell\ngit clone https:\u002F\u002Fgithub.com\u002FSeemSeam\u002Fclaude_codex_bridge.git\ncd claude_codex_bridge\npowershell -ExecutionPolicy Bypass -File .\\install.ps1 install\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Platform notes\u003C\u002Fb>\u003C\u002Fsummary>\n\n- macOS and Linux share the same `install.sh` path.\n- For WSL, keep both `ccb` and the agent CLIs inside WSL.\n- On WSL mounted-drive projects, project authority stays under `.ccb` while runtime state may relocate to a local Linux state root for socket and agent runtime durability.\n- Native Windows mux is still being rebuilt around `psmux`.\n- The fuller Windows bootstrap helper lives at `scripts\u002Fbootstrap-windows-test-env.ps1`.\n\n\u003C\u002Fdetails>\n\nInstall note: the commands above install from a git checkout today. After that, run `ccb update` to download the latest stable GitHub release asset and complete the managed release upgrade automatically.\n\n## Development Tools\n\nMaintainer-only release and repository tools live under `dev_tools\u002F`. They are versioned in git but excluded from official release artifacts.\n\n## Useful Tools\n\nOptional user-facing tools live under `useful_tools\u002F`. They are versioned in git\nand included in release artifacts, but they are not installed by default. Copy\nthe tools you want into a global provider home or a specific managed agent home;\nsee `useful_tools\u002FREADME.md`.\n\n## How to Use\n\nCCB is agent-first. You can use explicit `\u002Fask`, explicit `$ask`, or let one agent decide to call another on its own.\n\n| Mode | Example |\n| :--- | :--- |\n| Explicit `\u002Fask` | `\u002Fask reviewer review the parser changes in src\u002Fparser.ts` |\n| Explicit `$ask` | `$ask reviewer review the parser changes in src\u002Fparser.ts` |\n| Implicit delegation | `Ask reviewer to check the parser edge cases, then summarize the issues back to me.` |\n\nUse explicit routing when you want a specific target. Use natural language when you want the current agent to decide whether to delegate.\n\n### Chained Ask Calls\n\nNormal `ask` is asynchronous: submit the handoff, then stop. When an agent is already handling a CCB task and needs another agent's result before it can finish, it must use callback routing:\n\n```bash\nccb ask --callback reviewer \u003C\u003C'EOF'\nReview this failing test and return the minimal blocker.\nEOF\n```\n\nCCB records the parent\u002Fchild link, lets the current turn end, and later delivers the child result back to the parent agent as a new continuation task. This supports chains such as `agent2 -> agent4 -> agent1 -> agent3` without polling or blocking the active mailbox head.\n\nUse plain `ask` only outside an active task. Inside an active CCB task, use `--callback` when the child result is required, or `--silence` for independent work whose successful result does not need to return.\n\nNote: for implicit use, add the `ask` skill basics to your system memory first; otherwise Codex\u002FClaude may fall back to their own built-in multi-agent behavior instead of calling CCB `ask`.\n\n---\n\n## Editor Integration\n\n\u003Cimg src=\"assets\u002Fnvim.png\" alt=\"Neovim integration with multi-AI code review\" width=\"900\">\n\nWrite in editors like **Neovim** while agents review and iterate in parallel.\n\n---\n\n## Requirements\n\n- **Python 3.10+**\n- **Terminal:** `tmux`\n\n## Uninstall\n\n```bash\nccb uninstall\nccb reinstall\n\n# Fallback:\n.\u002Finstall.sh uninstall\n```\n\n---\n\n## Community\n\n📧 Email: `bfly123@126.com`\n💬 WeChat: `seemseam-com`\n\nThanks to the [Linux.do community](https:\u002F\u002Flinux.do) for testing, feedback, and discussion support.\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Fweixin.jpg\" alt=\"WeChat Group\" width=\"300\">\n\u003C\u002Fdiv>\n\n---\n\n\n## Release Notes\n\nHistorical note: older release notes below may mention `askd`, legacy flags, or removed commands. Those references are kept only as changelog history and do not redefine the current CLI surface.\n\n\u003Cdetails open>\n\u003Csummary>\u003Cb>v6.2.2\u003C\u002Fb> - Codex Managed Home Migration Prompt Hotfix\u003C\u002Fsummary>\n\n- Disables `[features].external_migration` inside managed Codex homes so panes do not block on an interactive migration prompt.\n- Preserves inherited Codex source-home config, model\u002FAPI settings, and other feature flags.\n- Adds coverage for parsed TOML inheritance and fallback copy behavior when TOML parsing is unavailable.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.2.1\u003C\u002Fb> - Inherited CCB Config Skill Release\u003C\u002Fsummary>\n\n- Adds inherited Claude and Codex `ccb_config` skills for designing `.ccb\u002Fccb.config`, choosing agent roles\u002Fproviders\u002Fworktree layout, and updating shared plus per-agent memory.\n- Moves CCB-owned inherited skills under `inherit_skills\u002F` while keeping optional `useful_tools\u002F` user-installable rather than inherited.\n- Shortens injected ask reply guidance, removes nested-routing text from every ask body, keeps injected source text English-only, and expands explicit-output detection.\n- Simplifies project\u002Fruntime memory wording and updates `ccb_config` memory-routing examples for direct callback handoffs and separate root work packages.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.2.0\u003C\u002Fb> - Callback Ask Chain Release\u003C\u002Fsummary>\n\n- Adds `ccb ask --callback \u003Cagent>` so active agents can delegate work and receive the child result later as a continuation task.\n- Rejects accidental plain nested `ask` from active CCB tasks; `--callback` is for required child results and `--silence` is for independent no-result-needed work.\n- Persists callback edges and repairs missed continuation submissions across dispatcher restarts.\n- Updates Claude, Codex, and Droid ask skills plus generated project memory with callback-chain guidance.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.21\u003C\u002Fb> - Kill And Restart Cleanup Hotfix\u003C\u002Fsummary>\n\n- Keeps `ccb kill -f` finalization queued even if the client pane is destroyed before the daemon can write the socket response.\n- Preserves full tmux socket paths and lifecycle owner\u002Fkeeper pid authority during project-scoped kill cleanup.\n- Narrows process fallback matching to CCB control-plane commands for the same `--project`, avoiding broad project-root matches.\n- Clears stale provider execution files at ccbd startup and when late updates arrive for terminal or missing jobs.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.20\u003C\u002Fb> - Claude Active Version Cache Release\u003C\u002Fsummary>\n\n- Detects the source home's active Claude Code symlink under `~\u002F.local\u002Fbin\u002Fclaude` and prefers that version for managed Claude startup.\n- Copies the active source-home Claude version into the CCB provider cache, then points managed `.local\u002Fbin\u002Fclaude` at the cached active version.\n- Preserves previous shared-cache fallback behavior when the source active-version layout is unavailable.\n- Updates provider workspace preparation and the Claude binary-cache contract to document the source-home active-version preference.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.19\u003C\u002Fb> - Managed Ask Skill Projection Release\u003C\u002Fsummary>\n\n- Routes inherited Claude `skills\u002F` and `commands\u002F` through CCB projected assets instead of copy-sync, so system-installed ask skills reach managed Claude agents without duplicating provider homes.\n- Adds managed Droid `FACTORY_HOME` support with projected system `~\u002F.factory\u002Fskills` and a session-scoped Droid sessions root.\n- Updates Droid launch, execution polling, and communicator session readers to follow the managed session root after restart or session rotation.\n- Adds concise default ask reply guidance plus `--compact` and `--silence` submission modes, while keeping legacy wait\u002Foutput flags as ignored compatibility inputs.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.18\u003C\u002Fb> - Heartbeat Timeout And Useful Tools Release\u003C\u002Fsummary>\n\n- Keeps running-job heartbeat observations internal until three no-progress intervals, then terminalizes once with `heartbeat_timeout` and a small communication-test recommendation.\n- Treats provider completion progress semantically, so cursor offsets, polling timestamps, and session snapshot bookkeeping no longer extend completion deadlines.\n- Preserves `reliability_*` runtime state through persistence so restored provider jobs do not reset timeout deadlines.\n- Adds `useful_tools\u002Fuseful_tools.zip` to the versioned optional tools shipped in release artifacts.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.17\u003C\u002Fb> - Completion Binding And Codex Session Hotfix\u003C\u002Fsummary>\n\n- Binds Claude Stop-hook completion artifacts to the structured outer `CCB_REQ_ID`, so forwarded text or tool output cannot redirect completion events to an older job.\n- Keeps Codex session identity independent from memory projection freshness, allowing `.ccb\u002Fccb_memory.md` updates to refresh memory without forcing a fresh conversation.\n- Includes PR #205 mailbox recovery for stale terminal `task_request` queue heads whose attempts are already terminal.\n- Adds regression coverage across transcript parsing, provider finish hooks, Codex resume behavior, and mailbox stale-head cleanup.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.16\u003C\u002Fb> - Memory Handoff And Claude Route Hotfix\u003C\u002Fsummary>\n\n- Adds CCB-owned submit-only ask coordination rules to generated managed-memory bundles, preventing stale shared memory text from reintroducing polling\u002Fwaiting behavior.\n- Updates new `.ccb\u002Fccb_memory.md` templates with the same fire-and-forget handoff guidance.\n- Makes managed Claude startup prefer ccswitch-updated `~\u002F.claude\u002Fsettings.json` route settings over stale caller-shell `ANTHROPIC_BASE_URL`.\n- Documents the Claude route inheritance contract and adds regression coverage for the new priority order.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.15\u003C\u002Fb> - Kill Shutdown Reliability Hotfix\u003C\u002Fsummary>\n\n- Waits for recorded `ccbd` and keeper pids to exit during remote `ccb kill` instead of trusting lifecycle unmounted alone.\n- Finalizes lifecycle to stopped\u002Funmounted before writing the final shutdown report, allowing `ccb cleanup` to run immediately after kill.\n- Adds regression coverage for prepared pid snapshots, remote lifecycle finalization, and shutdown intent ordering.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.14\u003C\u002Fb> - macOS Claude Keychain Boundary Follow-up\u003C\u002Fsummary>\n\n- Documents the managed Claude `Library\u002FKeychains` fallback as agent-local secret auth compatibility state.\n- Clarifies that support bundles must not follow the fallback Keychains symlink and storage diagnostics classify it as secret auth state.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.13\u003C\u002Fb> - macOS Claude Keychain Fallback\u003C\u002Fsummary>\n\n- Links `Library\u002FKeychains` into managed Claude homes on macOS when `com.apple.security.plist` is absent, preserving Claude login lookup on newer setups.\n- Removes the fallback link when Claude auth inheritance is disabled.\n- Classifies the fallback Keychains symlink as secret auth state in storage diagnostics.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.12\u003C\u002Fb> - Claude Tmux Permission Release\u003C\u002Fsummary>\n\n- Packages the merged Claude auto-permission pane fix so tmux launches do not block on the bypass permissions confirmation prompt.\n- Carries forward the v6.1.11 WSL cleanup smoke alignment and Claude rollback-cache preservation fixes.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.11\u003C\u002Fb> - WSL Cleanup Smoke Alignment\u003C\u002Fsummary>\n\n- Aligns WSL mounted-drive storage cleanup smoke with the current relocated-runtime shared-cache contract.\n- Includes the Claude cleanup rollback preservation fix from v6.1.10.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.10\u003C\u002Fb> - Claude Cleanup Rollback Hotfix\u003C\u002Fsummary>\n\n- Keeps the active Claude Code version plus one rollback version during `ccb cleanup`.\n- Restores the real-platform storage cleanup smoke expectation across macOS and WSL.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.9\u003C\u002Fb> - Storage Dedup And Shutdown Hardening\u003C\u002Fsummary>\n\n- Reduces `.ccb` growth by routing Codex projected assets through symlink\u002Fshared bundle paths and by moving\u002Fpruning rebuildable Claude and Gemini cache content.\n- Extends `ccb cleanup` to reclaim old Claude shared versions, Gemini shared cache data, rebuildable Claude caches, and stale pane crash logs.\n- Hardens `ccb kill` so old `ccbd`\u002Fkeeper pids are snapshotted, waited on, and terminated without racing a newer backend generation.\n- Prevents Claude tmux panes from blocking on the bypass permissions confirmation prompt.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.8\u003C\u002Fb> - macOS Claude Keychain Preference Hotfix\u003C\u002Fsummary>\n\n- Managed Claude homes on macOS now inherit `Library\u002FPreferences\u002Fcom.apple.security.plist` so Claude login lookup can resolve the expected default Keychain.\n- The preference projection stays tied to auth inheritance and is removed when Claude auth inheritance is disabled.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.7\u003C\u002Fb> - Codex Memory Freshness Hotfix\u003C\u002Fsummary>\n\n- Codex now refreshes shared project memory instead of resuming stale AGENTS context after `.ccb\u002Fccb_memory.md` changes.\n- Claude and Droid ask skills now submit through heredoc and stop immediately after submit.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.6\u003C\u002Fb> - Startup And Claude Auth Hotfix\u003C\u002Fsummary>\n\n- Fixes a first-start race between ccbd start and heartbeat maintenance.\n- `.ccb\u002Fccb_memory.md` is the only shared CCB memory anchor.\n- Adds Claude macOS `Claude Code-credentials` Keychain lookup.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.5\u003C\u002Fb> - Tmux Startup Hotfix\u003C\u002Fsummary>\n\n- Fixes startup races that could show `Cannot split: pane ... does not exist` or `respawn pane failed: can't find pane`.\n- Provider panes still use the managed respawn path.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.4\u003C\u002Fb> - Shared Project Memory V1\u003C\u002Fsummary>\n\n- `.ccb\u002Fccb_memory.md` is the project-wide shared memory document.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.2\u003C\u002Fb> - Provider Storage Boundary Hardening\u003C\u002Fsummary>\n\n- **Storage Classes Made Explicit**: `ccb doctor storage` now separates authority, session state, secrets, workspaces, user content, projected config, rebuildable cache, and startup authority bundles.\n- **Safe Cleanup Added**: `ccb cleanup` refuses to run while `ccbd` or ask jobs are active, prunes only safe rebuildable provider caches, and preserves sessions, auth, and current Claude binaries.\n- **Shared Cache Guardrails Added**: future provider shared-cache paths now resolve under the effective runtime-state root with WSL drvfs safety checks and manifest creation.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.1\u003C\u002Fb> - Ask Skill and Memory Injection Cleanup\u003C\u002Fsummary>\n\n- **Ask Skill Kept as the Only Installed Skill**: Claude, Codex, and Droid\u002FFactory installs now publish only the `ask` skill and remove older CCB helper skills such as `ping`, `pend`, `all-plan`, and `file-op`.\n- **Global Memory Injection Removed**: installers no longer append CCB collaboration blocks into global `CLAUDE.md`, installed `AGENTS.md`, or `.clinerules`; existing CCB-marked blocks are cleaned during install.\n- **Legacy Skill Sources Removed**: repository skill templates now keep only the provider-specific `ask` skill assets.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.1.0\u003C\u002Fb> - CCBD Ask Stability and Observer Convergence\u003C\u002Fsummary>\n\n- **Ask Submit Fastpath Stabilized**: `ccb ask` returns bounded receipts without waiting on provider readiness, mailbox history projection, or long maintenance ticks\n- **Lifecycle and Shutdown Races Closed**: stop-all, shutdown, restart, and background supervision now keep stopped runtimes and terminal jobs from being revived by stale work\n- **Provider Completion Recovery Hardened**: Codex polling follows rebound session bindings after restart so jobs complete from the current managed session log\n- **Mailbox Summary Read Model Landed**: routine `queue`, `inbox`, and `pend` paths prefer maintained summaries and explicitly degrade when summaries are missing or corrupt\n- **Observer Surfaces Weakened**: `pend`, `watch`, `queue`, and `inbox` are non-authoritative snapshots; use `ccb trace \u003Cid>` when lineage details are needed\n- **Real Platform Validation Added**: GitHub Actions now runs macOS and WSL ccbd\u002Fask smoke, communication matrix, short soak, and fastpath stress jobs\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.29\u003C\u002Fb> - WSL Runtime State Relocation\u003C\u002Fsummary>\n\n- **Runtime State Moved Off Mounted Drives**: on WSL projects rooted under `\u002Fmnt\u002F\u003Cdrive>\u002F...`, project authority remains in `.ccb` while `ccbd\u002F` and agent runtime state relocate to a local Linux state root with explicit marker files\n- **Diagnostics and Bundle Mapping Updated**: doctor output and support bundles now expose the project anchor, runtime-state root, relocation reason, and logical `.ccb` archive paths for relocated runtime files\n- **Provider Lookup and Ask Routing Kept Stable**: relocated runtime directories still resolve back to the project anchor for session discovery and ask sender attribution without changing Linux or macOS default layout behavior\n- **Runtime Markers Are Validated**: relocated runtime markers and refs now reject malformed or mismatched payloads, so stale relocation residue cannot silently remap one project to another\n- **WSL Smoke Matches the Final Contract**: the release smoke now expects the runtime-root relocation path that the relocated project actually writes, instead of treating the first relocation step as the final socket fallback\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.28\u003C\u002Fb> - WSL Control Plane Socket Hardening\u003C\u002Fsummary>\n\n- **WSL Control Plane Startup Hardened**: keeper and daemon readiness probes now share the configured control-plane RPC timeout instead of using shorter hardcoded budgets that could misread a slow mounted-drive startup as config drift\n- **Socket Server Accept Path Decoupled**: ccbd now accepts connections separately from a serialized worker lane, so one slow or incomplete client request no longer blocks new control-plane probes or heartbeats\n- **Transient Connect Retry Added**: Unix socket clients retry only short-lived connect races within the existing timeout budget, without retrying already-sent RPC requests or mutating operations\n- **README Refreshed**: the public README was reorganized around the current agent CLI hub\u002Fteam workflow and updated release guidance\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.27\u003C\u002Fb> - macOS Foreground Attach Timeout Hardening\u003C\u002Fsummary>\n\n- **Foreground Attach Timeout Split**: interactive `ccb` startup now uses foreground-attach-specific RPC and target-ready budgets instead of reusing the short daemon probe timeout\n- **macOS Attach Race Reduced**: foreground attach now tolerates slower post-start `ccbd` ping and tmux namespace\u002Fwindow visibility on macOS without redefining daemon startup success\n- **Clearer Attach Failures**: attach errors now distinguish between an unresponsive control-plane ping and a responsive daemon whose project namespace is not yet attachable\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.26\u003C\u002Fb> - macOS Install And Claude Ask Cleanup\u003C\u002Fsummary>\n\n- **macOS Release Install Fixed**: release installs keep generated CLI wrappers bound to the managed `.venv` Python, avoiding environment drift when optional dependencies such as `watchdog` are installed\n- **WSL Install Tests Unblocked**: watchdog install regression tests explicitly confirm WSL non-interactive install mode so CI covers the intended optional-dependency path\n- **Claude Ask Prompt Slimmed Down**: managed Claude `ask` no longer injects local ask skill runtime text into the prompt body, keeping agent-to-agent asks limited to the request anchor and the user's original message\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.25\u003C\u002Fb> - Gemini Managed Home Alignment\u003C\u002Fsummary>\n\n- **Gemini Login Inheritance Fixed**: managed Gemini panes now set `GEMINI_CLI_HOME` to the isolated home root so Gemini CLI reads the projected `.gemini\u002F.env`, settings, and login state from the same managed boundary\n- **Regression Coverage Added**: launcher tests now lock the aligned `HOME`, `GEMINI_CLI_HOME`, and `GEMINI_ROOT` contract and guard against writing settings under nested `.gemini\u002F.gemini`\n- **Community Contact Trimmed**: the standalone Linux.do contact entry was removed while keeping the Linux.do community acknowledgement below the contact block\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.24\u003C\u002Fb> - WSL Official Login Transport\u003C\u002Fsummary>\n\n- **WSL Provider Transport Inherited**: managed provider panes now preserve user-session proxy, CA, browser, and WSL interop environment needed by official-login and Codex Apps\u002FMCP networking paths\n- **Managed Isolation Preserved**: transport inheritance is centralized and does not allow caller-global `CODEX_HOME`, `GEMINI_ROOT`, `CLAUDE_PROJECTS_ROOT`, or `CCB_CALLER_*` runtime authority to override agent-scoped managed state\n- **Gemini Login Projection Extended**: managed Gemini homes now project allowlisted `.gemini\u002F.env` API credentials, `google_accounts.json`, and `GEMINI_CLI_HOME` while diagnostics continue excluding copied auth artifacts\n- **Opencode Session Detection Hardened**: opencode now treats env-session mode as active only when its provider-specific runtime env is present, avoiding stale generic `CCB_SESSION_ID` contamination\n- **Community Entry Refreshed**: README now includes the refreshed WeChat group QR image and Linux.do community acknowledgement so users can find the current support channels from the public project page\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.23\u003C\u002Fb> - CI Matrix Stabilization\u003C\u002Fsummary>\n\n- **Release CI Greened**: latest release validation now points at a commit whose full GitHub Actions test workflow passes across Ubuntu, macOS, WSL, and install smoke jobs\n- **Provider Blackbox Coverage Focused**: heavy pane-backed provider restart \u002F rotate \u002F settle tests now run in a dedicated Ubuntu provider-blackbox job instead of being repeated across every OS and Python matrix cell\n- **macOS Socket Test Race Fixed**: ccbd socket tests now wait for the daemon socket to answer ping requests before issuing RPCs, avoiding macOS runner readiness races\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.22\u003C\u002Fb> - Claude macOS Login Inheritance\u003C\u002Fsummary>\n\n- **macOS Keychain Login Inherited**: managed Claude startup now reads official Claude Code login credentials from macOS Keychain and materializes an equivalent project-scoped `.claude\u002F.credentials.json` inside isolated Claude homes\n- **Claude Account Metadata Refreshed**: inherited `.claude.json` account metadata now refreshes from the source home while preserving managed workspace trust and excluding source workspace trust or API key secrets\n- **Default Config Startup Fixed**: keeper startup now treats a missing `.ccb\u002Fccb.config` as a request to use the built-in default project config instead of exiting before `ccbd` can mount\n- **Regression Coverage Expanded**: tests now lock Keychain projection, metadata refresh, and disabled-auth cleanup paths for managed Claude login inheritance\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.21\u003C\u002Fb> - Claude Hook Asset Projection\u003C\u002Fsummary>\n\n- **CodeIsland Hook Assets Inherited**: managed Claude startup now copies referenced source-home hook assets such as `.codeisland\u002F` when inherited Claude hooks call `$HOME\u002F.codeisland\u002F...`, preventing missing-hook failures inside isolated Claude homes\n- **Config Boundary Preserved**: third-party hook assets are copied only when Claude config inheritance is enabled and the inherited hook payload actually references that home-relative asset path\n- **Diagnostics Redaction Extended**: diagnostic bundles now exclude copied `.codeisland\u002F` provider-state assets while still including ordinary managed Claude settings for support\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.20\u003C\u002Fb> - Claude Official Login Source Home Fix\u003C\u002Fsummary>\n\n- **Claude Official Login Source Home Fixed**: managed Claude startup now treats `.ccb\u002Fagents\u002F*\u002Fprovider-state\u002F*\u002Fhome` as an isolated runtime home, not the user's source home, so official browser-login credentials are copied from the real account home\n- **Claude Credential Path Coverage**: managed Claude homes now project Claude Code official-login credentials from `.claude\u002F.credentials.json` while retaining compatibility with `.config\u002Fclaude-code\u002Fauth.json`\n- **Regression Coverage Added**: tests now lock source-home fallback, launcher projection, diagnostics redaction, and workspace preparation for official Claude login inheritance\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.19\u003C\u002Fb> - Claude Official Login Inheritance\u003C\u002Fsummary>\n\n- **Claude Official Login Projection**: managed Claude homes now project Claude Code official login credentials from `.claude\u002F.credentials.json`, so browser-login-backed auth can be inherited into isolated CCB runtimes instead of only API-token-based settings auth\n- **Managed Login Auth Retention**: when global Claude auth artifacts disappear but managed Claude state already holds a valid project-scoped login, startup now preserves that managed login auth across restart instead of silently dropping it\n- **Auth Cleanup And Regression Coverage**: disabling auth inheritance now clears stale copied Claude login credentials, and targeted tests now lock the projection, cleanup, and launcher startup paths\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.18\u003C\u002Fb> - Gemini Hook Empty-Reply Guard\u003C\u002Fsummary>\n\n- **Empty Gemini Hook Replies No Longer Burn Jobs**: managed Gemini `AfterAgent` hooks that fire with an empty reply now downgrade to `incomplete` instead of terminalizing as a false exact completion\n- **Exact Hook Polling Becomes Safer**: Gemini exact-hook polling now ignores `completed` hook artifacts with no reply text, allowing observed session-stability or timeout reliability paths to converge the request instead of accepting a blank terminal result\n- **Regression Coverage Added**: targeted tests now lock the empty-reply guard at both the finish-hook artifact writer and Gemini execution-service polling layers\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.17\u003C\u002Fb> - Gemini Custom Endpoint Env Propagation\u003C\u002Fsummary>\n\n- **Gemini Endpoint Override Restored**: managed Gemini startup now preserves `GOOGLE_GEMINI_BASE_URL` end to end, so custom endpoint and proxy-backed Gemini CLI setups no longer fall back to Google's default production API host\n- **Gemini Model Env Allowlisted**: control-plane and provider-profile env filtering now preserve `GEMINI_MODEL`, allowing isolated Gemini agents to keep explicit model selection instead of silently dropping it at startup\n- **Config Shortcut Alignment**: Gemini `key` \u002F `url` shortcuts now materialize the same environment variables the current Gemini CLI actually reads, keeping explicit config-based routes aligned with shell-level env behavior\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.16\u003C\u002Fb> - Codex Plugin Projection & Cmd Shell Compatibility\u003C\u002Fsummary>\n\n- **Codex Plugin Projection Fixed**: managed Codex homes now project plugin-bundle authority under `.tmp\u002Fplugins\u002F` and `.tmp\u002Fplugins.sha`, so isolated agents inherit the marketplace catalog and installed plugin assets they actually need instead of starting with plugin-enabled config but missing bundles\n- **Plugin Refresh Semantics Tightened**: startup now refreshes managed plugin projections as one authority unit, removes stale managed plugin residue when the source projection disappears, and keeps a cheap no-recopy fast path when the source plugin freshness marker is unchanged\n- **Cmd Shell \u002F Session Env Hardening**: the `cmd` pane now directly `exec`s the resolved user shell and preserves ordinary user-session transport variables such as `DISPLAY`, `WAYLAND_DISPLAY`, `DBUS_SESSION_BUS_ADDRESS`, `XAUTHORITY`, and `SSH_AUTH_SOCK`, improving fish\u002Fzsh and GUI-command compatibility\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.15\u003C\u002Fb> - Codex Route Authority & Foreground Attach Polish\u003C\u002Fsummary>\n\n- **Codex Explicit Route Authority**: managed Codex homes now materialize agent-local `config.toml` and `auth.json` as the sole authority for explicit `key` \u002F `url` routes, so agent-scoped API overrides replace inherited global provider routes instead of drifting back to system config\n- **Codex Session Namespace Rotation**: managed Codex startup now fingerprints explicit route authority, stamps reusable session bindings with that authority, and rotates stale `sessions\u002F` namespaces before launch when the bound route no longer matches\n- **Foreground Attach UX Hardening**: interactive `ccb` startup now seeds tmux namespace creation from the real terminal viewport and issues a best-effort client refresh after attach so first paint matches the current terminal size without manual redraw\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.14\u003C\u002Fb> - Claude Logout Recovery Hardening\u003C\u002Fsummary>\n\n- **Managed Claude Auth Preservation**: managed Claude homes now preserve agent-local login auth when the global Claude home has been logged out, so a project-scoped re-login survives restart instead of re-entering a browser-link loop\n- **Auth Projection Semantics Tightened**: Claude startup still refreshes source auth when it exists, but no longer treats missing source auth as an instruction to blank managed auth; disabled auth inheritance still clears stale copied auth state\n- **Startup Regression Coverage Expanded**: targeted regressions now lock this behavior at the projection layer, provider workspace preparation, and Claude launcher startup path\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.13\u003C\u002Fb> - macOS Release Path & Preview Packaging Fix\u003C\u002Fsummary>\n\n- **macOS Release Path**: shared release artifact naming and updater resolution now cover the macOS universal bundle alongside Linux\u002FWSL release assets\n- **Source Dev Install Mode**: installs from a git checkout now stay linked to the live source tree, skip startup auto-update prompts, and can switch to a managed release install through `ccb update`\n- **Agent API \u002F Model Shortcuts**: `.ccb\u002Fccb.config` now accepts flat per-agent `key`, `url`, and `model` shortcuts so common provider overrides stay concise\n- **Preview Packaging Hardening**: preview release exports now exclude generated output paths inside the repo, fixing recursive self-copy failures such as `dist-macos-smoke`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.12\u003C\u002Fb> - Non-Blocking Startup Update Prompt\u003C\u002Fsummary>\n\n- **Cached Startup Prompt**: interactive foreground `ccb` start now reads install-scoped cached release metadata and only prompts when a newer stable release is already known locally\n- **Background Refresh**: missing or stale update cache now refreshes in the background with short network budgets instead of delaying the project startup path\n- **Upgrade \u002F Defer \u002F Silence**: startup prompt supports upgrade now, defer for the current version, or silence that exact version\n- **Startup Boundary Preserved**: release-update checks remain advisory and outside the project lifecycle startup transaction\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.11\u003C\u002Fb> - Project Startup Hotfix\u003C\u002Fsummary>\n\n- **Cold Start Namespace Fix**: project tmux namespace startup now treats `no server running on \u003Cproject socket>` as an absent namespace that must be created, instead of failing startup as a generic tmux inspect error\n- **Release Regression Coverage**: targeted namespace backend\u002Fstate regression tests now lock this cold-start path so `ccb -> ping -> kill` blackbox lifecycle stays covered\n- **Contract Clarification**: the startup supervision contract now explicitly defines project-socket `no server running` as a recreate signal rather than a fatal inspect failure\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.10\u003C\u002Fb> - Startup Budget Hardening & Gemini Login Inheritance\u003C\u002Fsummary>\n\n- **Gemini Login Inheritance**: managed Gemini homes now project login-auth selection and `oauth_creds.json` for `oauth-personal` reuse, and remove stale copied credentials when auth inheritance is disabled\n- **Shared Tmux Ready Budget**: project-owned `respawn-pane` now uses the same tmux ready-retry budget as namespace create\u002Freflow, reducing transient `no server running` failures during startup and supervision\n- **Background Startup Compatibility**: background lifecycle startup keeps supervision compatibility while separating readiness-probe timeouts from operational RPC budgets\n- **Diagnostics Secret Redaction**: diagnostic bundles now exclude Gemini `oauth_creds.json` alongside other provider credential artifacts\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.9\u003C\u002Fb> - Cross-Platform Lifecycle & Watch Stability\u003C\u002Fsummary>\n\n- **WSL Compatibility Fixed**: project runtime now avoids binding Unix sockets onto unsupported WSL mounted-drive filesystems and hardens installer staging plus tmux namespace readiness\n- **macOS Lifecycle Hardening**: startup, restore, and project identity paths were tightened so macOS follows the same lifecycle authority model as Linux without intermittent startup drift\n- **Respawn Retry Boundary**: transient tmux respawn fork, server-exit, and readiness failures are retried inside runtime supervision instead of leaking outward as false lifecycle failures\n- **Watch Reconnect Recovery**: observer recovery can resume from persisted state after short daemon interruptions, while reconnect loops still honor their internal deadlines\n- **Cross-Platform CI Coverage**: GitHub Actions now exercises macOS install smoke and WSL compatibility paths alongside the existing Linux matrix\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.7\u003C\u002Fb> - Lifecycle Authority & Shutdown Stability\u003C\u002Fsummary>\n\n- **Keeper-Owned Lifecycle Authority**: keeper now owns lifecycle progression through authoritative `lifecycle.json`, generation fencing, and namespace epoch tracking\n- **Mounted-State Read Fixes**: `ping ccbd` and `ping agent` now report current mounted state from live authority instead of stale failure residue after recovery\n- **Shutdown Transaction Hardening**: `ccb kill` and `ccb kill -f` now terminate non-terminal jobs during shutdown so restart cannot resurrect old executions via restore or auto-retry\n- **Real Blackbox Repro Closed**: the real `ask -> kill -f -> restart` lifecycle repro now converges cleanly to `project_shutdown` without lingering active execution\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.6\u003C\u002Fb> - Agent Isolation Stability & Kill Lifecycle Fix\u003C\u002Fsummary>\n\n- **Agent Isolation Stability**: Codex, Claude, and Gemini managed agents keep their session state under project-scoped `.ccb\u002Fagents\u002F\u003Cagent>\u002Fprovider-state\u002F...`\n- **Restart Inheritance Safety**: restarts restore only the matching managed agent history instead of adopting manual provider conversations from the same working directory\n- **Project Dotfile Protection**: managed startup no longer rewrites project-level `.claude`, `.gemini`, or `.codex` provider dotfiles\n- **Kill Lifecycle Fix**: interactive `ccb` no longer reports a false attach failure after `ccb kill` intentionally tears down the current project tmux session\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.5\u003C\u002Fb> - Agent Isolation Stability\u003C\u002Fsummary>\n\n- **Agent Isolation Stability**: Codex, Claude, and Gemini managed agents keep their session state under project-scoped `.ccb\u002Fagents\u002F\u003Cagent>\u002Fprovider-state\u002F...`\n- **Restart Inheritance Safety**: restarts restore only the matching managed agent history instead of adopting manual provider conversations from the same working directory\n- **Project Dotfile Protection**: managed startup no longer rewrites project-level `.claude`, `.gemini`, or `.codex` provider dotfiles\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.4\u003C\u002Fb> - Legacy Update Compatibility Hotfix\u003C\u002Fsummary>\n\n- **Backward-Compatible Release Assets**: Linux release tarballs now include a compatibility alias so older 6.x updaters can still find the extracted installer path\n- **Old Clients Can Upgrade Again**: existing `v6.0.1` and `v6.0.2` installs can now update to the latest stable release without needing a patched local updater first\n- **Modern Updater Still Clean**: current runtime keeps the correct extracted-directory resolution and does not depend on the legacy alias\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.3\u003C\u002Fb> - Self-Update Tarball Hotfix\u003C\u002Fsummary>\n\n- **Release Upgrade Fixed**: `ccb update` now resolves the extracted release directory correctly instead of treating the `.tar.gz` asset name as a folder\n- **Installer Handoff Restored**: self-update now finds `install.sh` inside extracted release assets and completes end to end\n- **Release Build Hygiene**: Linux release packaging now ignores local `.ccb-requests\u002F` residue so official builds are reproducible\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.2\u003C\u002Fb> - Caller Attribution, Mailbox Routing, and macOS Install Warning\u003C\u002Fsummary>\n\n- **Correct Caller Identity**: `ccb ask` now preserves the real originating agent so replies return to the right mailbox instead of being attributed as `user`\n- **Stable Reply Routing**: async replies for delegated jobs now land back in the expected mailbox chain, including `cmd`-anchored flows\n- **Mixed-Case Agent Recovery**: config layout recovery no longer drifts when configured agent names use mixed case\n- **macOS Homebrew Warning**: `install.sh` now warns clearly when Homebrew is missing before users try to install tmux and other dependencies\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.1\u003C\u002Fb> - Release Archive Hygiene & Safer Upgrade Extraction\u003C\u002Fsummary>\n\n- **Source Archive Cleanup**: Removed accidentally tracked pytest temp artifacts so GitHub source archives are clean again\n- **Safer Tar Validation**: Upgrade extraction now rejects unsafe symlink targets before unpacking\n- **Clearer Failure Mode**: Unsafe archive extraction errors now point users toward release assets or clean source archives\n- **Regression Coverage**: Added tests to block ephemeral repo artifacts from being tracked again\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v6.0.0\u003C\u002Fb> - Native Multi-Agent Runtime, Stable Native Communication, and Linux-Only Auto Upgrade\u003C\u002Fsummary>\n\n**🚀 New Runtime Direction:**\n- **Infinite Parallel Agent Foundation**: CCB v6 is built as the runtime base for effectively unbounded agent-to-agent delegation and orchestration\n- **Independent Agent Identity**: agents can carry different roles, task ownership, skill libraries, and personalities\n- **Focused User Command Surface**: the public user workflow stays centered on `ccb`, `ccb -s`, `ccb -n`, `ccb kill`, and `ccb kill -f`\n\n**🧱 Project Rebuild Semantics:**\n- **Config-Preserving Legacy Cleanup**: On first `ccb` inside a pre-6 project, CCB preserves `.ccb\u002Fccb.config`, removes the rest of the old `.ccb` runtime state, and rebuilds locally\n- **Runtime Marker**: Modern projects now record `.ccb\u002Fproject-runtime.json` so current runtime state is distinguished from legacy state\n- **Worktree Safety Guard**: Dirty or unmerged CCB-managed worktrees still block destructive rebuilds until the user resolves them\n\n**🔄 Upgrade Policy:**\n- **Linux\u002FmacOS\u002FWSL**: `ccb update` is available on Linux, macOS, and WSL for the 6.x line\n- **Release-Only Upgrades**: Source tags are still published with each version, but `ccb update` for 6.x installs the GitHub release asset, not the source archive\n- **Stable Release Targeting**: Default upgrades now resolve to the latest stable release instead of the moving `main` branch\n- **Major Upgrade Confirmation**: Upgrading into `6.0.0` requires explicit confirmation before replacing the installed runtime\n\n**🤖 Provider Reliability:**\n- **Gemini Multi-Round Stability**: Gemini completion polling now waits through tool activity and no longer exits on the first stable planning sentence\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.3.0\u003C\u002Fb> - Simplified CLI, Explicit Worktree Mode, and Gemini Completion Stability\u003C\u002Fsummary>\n\n**🚀 User-Facing CLI Simplification:**\n- **Narrowed Main Surface**: Public startup flow is now `ccb`, `ccb -s`, `ccb -n`, `ccb kill`, and `ccb kill -f`\n- **Model Control Plane Still Available**: `ask`, `ping`, `pend`, and `watch` remain for agent-to-agent orchestration without cluttering primary help\n\n**🧱 Workspace Semantics Made Explicit:**\n- **Default Inplace Mode**: Compact `ccb.config` entries now expand to `workspace_mode='inplace'`\n- **Opt-In Isolation**: Use `agent:provider(worktree)` when an agent must run in its own git worktree\n- **Safe Agent Churn**: Adding agents no longer disturbs existing worktrees; removing or renaming worktree agents retires clean branches and blocks on dirty or unmerged ones\n\n**🛠 Recovery & Reset Hardening:**\n- **Config-Preserving Reset**: `ccb -n` rebuilds project runtime state while keeping `.ccb\u002Fccb.config`\n- **Stale Registration Cleanup**: Start and reset now prune missing registered git worktrees before rematerialization\n- **Kill Warnings**: `ccb kill` warns clearly when a worktree agent still has unmerged or dirty state\n\n**🤖 Gemini Completion Fix:**\n- **No Early Stop on Planning Text**: Gemini completion polling now tracks tool-call activity and waits for the real final reply instead of finishing on the first stable “I will ...” message\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.2.6\u003C\u002Fb> - Async Communication & Gemini 0.29 Compatibility\u003C\u002Fsummary>\n\n**🔧 Gemini CLI 0.29.0 Support:**\n- **Dual Hash Strategy**: Session path discovery now supports both basename and SHA-256 formats\n- **Autostart**: `ccb-ping` and `ccb-mounted` gain `--autostart` flag to launch offline provider daemons\n- **Cleanup Path**: zombie-session cleanup is now handled by `ccb kill -f`\n\n**🔗 Async Communication Fixes:**\n- **OpenCode Deadlock**: Fixed session ID pinning that caused second async call to always fail\n- **Legacy Completion Compatibility**: Legacy text-based providers still tolerate mismatched `CCB_DONE` lines in degraded mode\n- **req_id Regex**: `opencode_comm.py` now matches both old hex and new timestamp-based formats\n- **Gemini Idle Timeout**: Auto-detect reply completion when Gemini omits `CCB_DONE` marker (15s idle, configurable via `CCB_GEMINI_IDLE_TIMEOUT`)\n- **Gemini Prompt Hardening**: Stronger instructions to reduce `CCB_DONE` omission rate\n\n**🛠 Other Fixes:**\n- **lpend**: Prefers fresh Claude session path when registry is stale\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.2.5\u003C\u002Fb> - Async Guardrail Hardening\u003C\u002Fsummary>\n\n**🔧 Async Turn-Stop Fix:**\n- **Global Guardrail**: Added mandatory `Async Guardrail` rule to `claude-md-ccb.md` — covers both `\u002Fask` skill and direct `Bash(ask ...)` calls\n- **Marker Consistency**: `bin\u002Fask` now emits `[CCB_ASYNC_SUBMITTED provider=xxx]` matching all other provider scripts\n- **DRY Skills**: Ask skill rules reference global guardrail with local fallback, single source of truth\n\nThis fix prevents Claude from polling\u002Fsleeping after submitting async tasks.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.2.3\u003C\u002Fb> - Project-Local History & Legacy Compatibility\u003C\u002Fsummary>\n\n**📂 Project-Local History:**\n- **Local Storage**: Auto context exports now save to `.\u002F.ccb\u002Fhistory\u002F` per project\n- **Safe Scope**: Auto transfer runs only for the current working directory\n- **Claude \u002Fcontinue**: New skill to attach the latest history file via `@`\n\n**🧩 Legacy Compatibility:**\n- **Auto Migration**: `.ccb_config` is detected and upgraded to `.ccb` when possible\n- **Fallback Lookup**: Legacy sessions still resolve cleanly during transition\n\nThese changes keep handoff artifacts scoped to the project and make upgrades smoother.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.2.2\u003C\u002Fb> - Session Switch Capture & Context Transfer\u003C\u002Fsummary>\n\n**🔁 Session Switch Tracking:**\n- **Old Session Fields**: `.claude-session` now records `old_claude_session_id` \u002F `old_claude_session_path` with `old_updated_at`\n- **Auto Context Export**: Previous Claude session is automatically extracted to `.\u002F.ccb\u002Fhistory\u002Fclaude-\u003Ctimestamp>-\u003Cold_id>.md`\n- **Cleaner Transfers**: Noise filtering removes protocol markers and guardrails while keeping tool-only actions\n\nThese updates make session handoff more reliable and easier to audit.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.2.1\u003C\u002Fb> - Enhanced Ask Command Stability\u003C\u002Fsummary>\n\n**🔧 Stability Improvements:**\n- **Watchdog File Monitoring**: Real-time session updates with efficient file watching\n- **Mandatory Caller Field**: Improved request tracking and routing reliability\n- **Unified Execution Model**: Simplified ask skill execution across all platforms\n- **Auto-Dependency Installation**: Watchdog library installed automatically during setup\n- **Session Registry**: Enhanced Claude adapter with automatic session monitoring\n\nThese improvements significantly enhance the reliability of cross-AI communication and reduce session binding failures.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.2.0\u003C\u002Fb> - Historical mail bridge release\u003C\u002Fsummary>\n\nThis release introduced the old mail gateway path. That flow is now removed from the supported agent-first surface and remains legacy code only during cleanup.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.1.3\u003C\u002Fb> - Tmux Claude Ask Stability\u003C\u002Fsummary>\n\n**🔧 Fixes & Improvements:**\n- **tmux Claude ask**: read replies from pane output with automatic pipe-pane logging for more reliable completion\n\nSee [CHANGELOG.md](CHANGELOG.md) for full details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.1.2\u003C\u002Fb> - Daemon & Hooks Reliability\u003C\u002Fsummary>\n\n**🔧 Fixes & Improvements:**\n- **Claude Completion Hook**: Unified askd now triggers completion hook for Claude\n- **askd Lifecycle**: askd is bound to CCB lifecycle to avoid stale daemons\n- **Mounted Detection**: `ccb-mounted` uses ping-based detection across all platforms\n- **State File Lookup**: `askd_client` falls back to `CCB_RUN_DIR` for daemon state files\n\nSee [CHANGELOG.md](CHANGELOG.md) for full details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.1.1\u003C\u002Fb> - Unified Daemon + Bug Fixes\u003C\u002Fsummary>\n\n**🔧 Bug Fixes & Improvements:**\n- **Unified Daemon**: All providers now use unified askd daemon architecture\n- **Install\u002FUninstall**: Fixed installation and uninstallation bugs\n- **Process Management**: Fixed kill\u002Ftermination issues\n\nSee [CHANGELOG.md](CHANGELOG.md) for full details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.1.0\u003C\u002Fb> - Unified Command System + Historical Native Windows Experiment\u003C\u002Fsummary>\n\n**🚀 Unified Commands** - Replace provider-specific commands with agent-first workflows:\n\n| Old Commands | New Unified Command |\n|--------------|---------------------|\n| `cask`, `gask`, `oask`, `dask`, `lask` | `ccb ask \u003Cagent> [from \u003Csender>] \u003Cmessage>` |\n| `cping`, `gping`, `oping`, `dping`, `lping` | `ccb ping \u003Cagent\\|all>` |\n| `cpend`, `gpend`, `opend`, `dpend`, `lpend` | `ccb pend \u003Cagent\\|job_id> [N]` |\n\n**Supported providers:** `gemini`, `codex`, `opencode`, `droid`, `claude`\n\n**🪟 Historical native Windows experiment:**\n- Earlier releases explored a native Windows split-pane path\n- Background execution used PowerShell + `DETACHED_PROCESS`\n- Large payload delivery used stdin-based handoff\n- That backend has since been removed; future native Windows mux support is being redesigned around `psmux`\n\n**📦 New Skills:**\n- `\u002Fask \u003Cagent> \u003Cmessage>` - Send work to a named agent\n- `\u002Fping \u003Cagent|all>` - Check mounted agent health\n- `\u002Fpend \u003Cagent|job_id> [N]` - View latest agent reply\n\nSee [CHANGELOG.md](CHANGELOG.md) for full details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.0.6\u003C\u002Fb> - Zombie session cleanup + mounted skill optimization\u003C\u002Fsummary>\n\n- **Zombie Cleanup**: `ccb kill -f` now cleans up orphaned tmux sessions globally (sessions whose parent process has exited)\n- **Mounted Skill**: Optimized to use `pgrep` for daemon detection (~4x faster), extracted to standalone `ccb-mounted` script\n- **Droid Skills**: Added full skill set (cask\u002Fgask\u002Flask\u002Foask + ping\u002Fpend variants) to the provider skill assets\n- **Install**: Added `install_droid_skills()` to install Droid skills to `~\u002F.droid\u002Fskills\u002F`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.0.5\u003C\u002Fb> - Droid delegation tools + setup\u003C\u002Fsummary>\n\n- **Droid**: Adds delegation tools (`ccb_ask_*` plus `cask\u002Fgask\u002Flask\u002Foask` aliases).\n- **Setup**: New `ccb droid setup-delegation` command for MCP registration.\n- **Installer**: Auto-registers Droid delegation when `droid` is detected (opt-out via env).\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Details & usage\u003C\u002Fb>\u003C\u002Fsummary>\n\nUsage:\n```\n\u002Fall-plan \u003Crequirement>\n```\n\nExample:\n```\n\u002Fall-plan Design a caching layer for the API with Redis\n```\n\nHighlights:\n- Socratic Ladder + Superpowers Lenses + Anti-pattern analysis.\n- Availability-gated dispatch (use only mounted CLIs).\n- Two-round reviewer refinement with merged design.\n\n\u003C\u002Fdetails>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v5.0.0\u003C\u002Fb> - Any AI as primary driver\u003C\u002Fsummary>\n\n- **Claude Independence**: No need to start Claude first; Codex can act as the primary CLI.\n- **Unified Control**: Single entry point controls Claude\u002FOpenCode\u002FGemini.\n- **Simplified Launch**: Dropped `ccb up`; use `ccb ...` or the default `ccb.config`.\n- **Flexible Mounting**: More flexible pane mounting and session binding.\n- **Default Config**: Uses a built-in default when `.ccb\u002Fccb.config` is missing; CCB no longer creates that file automatically.\n- **Project askd Autostart**: project askd and provider runtimes auto-start in the project tmux namespace when needed.\n- **Session Robustness**: PID liveness checks prevent stale sessions.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v4.0\u003C\u002Fb> - tmux-first refactor\u003C\u002Fsummary>\n\n- **Full Refactor**: Cleaner structure, better stability, and easier extension.\n- **Terminal Runtime Cleanup**: The runtime moved toward a single tmux-oriented pane\u002Fcontrol model instead of parallel terminal backends.\n- **Perfect tmux Experience**: Stable layouts + pane titles\u002Fborders + session-scoped theming.\n- **Works in Any Terminal**: If your terminal can run tmux, CCB can provide the full multi-model split experience.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>v3.0\u003C\u002Fb> - Smart daemons\u003C\u002Fsummary>\n\n- **True Parallelism**: Submit multiple tasks to Codex, Gemini, or OpenCode simultaneously.\n- **Cross-AI Orchestration**: Claude and Codex can now drive OpenCode agents together.\n- **Bulletproof Stability**: Daemons auto-start on first request and stop after idle.\n- **Chained Execution**: Codex can delegate to OpenCode for multi-step workflows.\n- **Smart Interruption**: Gemini tasks handle interruption safely.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Details\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cdiv align=\"center\">\n\n![Parallel](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FStrategy-Parallel_Queue-blue?style=flat-square)\n![Stability](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDaemon-Auto_Managed-green?style=flat-square)\n![Interruption](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGemini-Interruption_Aware-orange?style=flat-square)\n\n\u003C\u002Fdiv>\n\n\u003Ch3 align=\"center\">✨ Key Features\u003C\u002Fh3>\n\n- **🔄 True Parallelism**: Submit multiple tasks to Codex, Gemini, or OpenCode simultaneously. Provider runtimes queue and execute them serially, ensuring no context pollution.\n- **🤝 Cross-AI Orchestration**: Claude and Codex can now simultaneously drive OpenCode agents. All requests are arbitrated by the project askd layer.\n- **🛡️ Bulletproof Stability**: The runtime layer is self-managing. It starts on first use and shuts down after idleness to save resources.\n- **⚡ Chained Execution**: Advanced workflows supported! Codex can autonomously call `oask` to delegate sub-tasks to OpenCode models.\n- **🛑 Smart Interruption**: Gemini tasks now support intelligent interruption detection, automatically handling stops and ensuring workflow continuity.\n\n\u003Ch3 align=\"center\">🧩 Feature Support Matrix\u003C\u002Fh3>\n\n| Feature | Codex | Gemini | OpenCode |\n| :--- | :---: | :---: | :---: |\n| **Parallel Queue** | ✅ | ✅ | ✅ |\n| **Interruption Awareness** | ✅ | ✅ | - |\n| **Response Isolation** | ✅ | ✅ | ✅ |\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>📊 View Real-world Stress Test Results\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n\u003Cbr>\n\n**Scenario 1: Claude & Codex Concurrent Access to OpenCode**\n*Both agents firing requests simultaneously, perfectly coordinated by the daemon.*\n\n| Source | Task | Result | Status |\n| :--- | :--- | :--- | :---: |\n| 🤖 Claude | `CLAUDE-A` | **CLAUDE-A** | 🟢 |\n| 🤖 Claude | `CLAUDE-B` | **CLAUDE-B** | 🟢 |\n| 💻 Codex | `CODEX-A` | **CODEX-A** | 🟢 |\n| 💻 Codex | `CODEX-B` | **CODEX-B** | 🟢 |\n\n**Scenario 2: Recursive\u002FChained Calls**\n*Codex autonomously driving OpenCode for a 5-step workflow.*\n\n| Request | Exit Code | Response |\n| :--- | :---: | :--- |\n| **ONE** | `0` | `CODEX-ONE` |\n| **TWO** | `0` | `CODEX-TWO` |\n| **THREE** | `0` | `CODEX-THREE` |\n| **FOUR** | `0` | `CODEX-FOUR` |\n| **FIVE** | `0` | `CODEX-FIVE` |\n\n\u003C\u002Fdetails>\n\u003C\u002Fdetails>\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Older Version History\u003C\u002Fb>\u003C\u002Fsummary>\n\n### v5.0.6\n- **Zombie Cleanup**: `ccb kill -f` cleans up orphaned tmux sessions globally\n- **Mounted Skill**: Optimized with `pgrep`, extracted to `ccb-mounted` script\n- **Droid Skills**: Full skill set added to the provider skill assets\n\n### v5.0.5\n- **Droid**: Add delegation tools (`ccb_ask_*` and `cask\u002Fgask\u002Flask\u002Foask`) plus `ccb droid setup-delegation` for MCP install\n\n### v5.0.4\n- **OpenCode**: 修复 `-r` 恢复在多项目切换后失效的问题\n\n### v5.0.3\n- **Daemons**: 全新的稳定守护进程设计\n\n### v5.0.1\n- **Skills**: New `\u002Fall-plan` with Superpowers brainstorming + availability gating; Codex `lping\u002Flpend` added; `gask` keeps brief summaries with `CCB_DONE`.\n- **Status Bar**: Role label now reads role name from `.autoflow\u002Froles.json` (supports `_meta.name`) and caches per path.\n- **Installer**: Copy skill subdirectories (e.g., `references\u002F`) for Claude\u002FCodex installs.\n- **CLI**: Added `ccb uninstall` \u002F `ccb reinstall` with Claude config cleanup.\n- **Routing**: Tighter project\u002Fsession resolution (prefer `.ccb` anchor; avoid cross-project Claude session mismatches).\n\n### v5.0.0\n- **Claude Independence**: No need to start Claude first; Codex (or any agent) can be the primary CLI\n- **Unified Control**: Single entry point controls Claude\u002FOpenCode\u002FGemini equally\n- **Simplified Launch**: Removed `ccb up`; a built-in default is used when `.ccb\u002Fccb.config` is missing\n- **Flexible Mounting**: More flexible pane mounting and session binding\n- **Project askd Autostart**: project askd and provider runtimes auto-start in the project tmux namespace when needed\n- **Session Robustness**: PID liveness checks prevent stale sessions\n\n### v4.1.3\n- **Codex Config**: Automatically migrate deprecated `sandbox_mode = \"full-auto\"` to `\"danger-full-access\"` to fix Codex startup\n- **Stability**: Fixed race conditions where fast-exiting commands could close panes before `remain-on-exit` was set\n- **Tmux**: More robust pane detection (prefer stable `$TMUX_PANE` env var) and better fallback when split targets disappear\n\n### v4.1.2\n- **Performance**: Added caching for tmux status bar (git branch & ccb status) to reduce system load\n- **Strict Tmux**: Explicitly require `tmux` for auto-launch; removed error-prone auto-attach logic\n- **CLI**: Added `--print-version` flag for fast version checks\n\n### v4.1.1\n- **CLI Fix**: Improved flag preservation (e.g., `-a`) when relaunching `ccb` in tmux\n- **UX**: Better error messages when running in non-interactive sessions\n- **Install**: Force update skills to ensure latest versions are applied\n\n### v4.1.0\n- **Async Guardrail**: `cask\u002Fgask\u002Foask` prints a post-submit guardrail reminder for Claude\n- **Sync Mode**: add `--sync` to suppress guardrail prompts for Codex callers\n- **Codex Skills**: update `oask\u002Fgask` skills to wait silently with `--sync`\n\n### v4.0.9\n- **Project_ID Simplification**: `ccb_project_id` uses current-directory `.ccb\u002F` anchor (no ancestor traversal, no git dependency)\n- **Codex Skills Stability**: Codex `oask\u002Fgask` skills were adjusted to avoid sending the next task too early\n\n### v4.0.8\n- **Codex Log Binding Refresh**: the Codex runtime now periodically refreshes `.codex-session` log paths by parsing `start_cmd` and scanning latest logs\n- **Tmux Clipboard Enhancement**: Added `xsel` support and `update-environment` for better clipboard integration across GUI\u002Fremote sessions\n\n### v4.0.7\n- **Tmux Status Bar Redesign**: Dual-line status bar with modern dot indicators (●\u002F○), git branch, and CCB version display\n- **Session Freshness**: Always scan logs for latest session instead of using cached session file\n- **Simplified Auto Mode (Historical)**: auto-permission behavior was consolidated into the current primary start flow\n\n### v4.0.6\n- **Session Overrides**: `cping\u002Fgping\u002Foping\u002Fcpend\u002Fopend` support `--session-file` \u002F `CCB_SESSION_FILE` to bypass wrong `cwd`\n\n### v4.0.5\n- **Gemini Reliability**: Retry reading Gemini session JSON to avoid transient partial-write failures\n- **Claude Code Reliability**: `gpend` supports `--session-file` \u002F `CCB_SESSION_FILE` to bypass wrong `cwd`\n\n### v4.0.4\n- **Fix**: Auto-repair duplicate `[projects.\\\"...\\\"]` entries in `~\u002F.codex\u002Fconfig.toml` before starting Codex\n\n### v4.0.3\n- **Project Cleanliness**: Store session files under `.ccb\u002F` (fallback to legacy root dotfiles)\n- **Claude Code Reliability**: `cask\u002Fgask\u002Foask` support `--session-file` \u002F `CCB_SESSION_FILE` to bypass wrong `cwd`\n- **Codex Config Safety**: Write auto-approval settings into a CCB-marked block to avoid config conflicts\n\n### v4.0.2\n- **Clipboard Paste**: Cross-platform support (xclip\u002Fwl-paste\u002Fpbpaste) in tmux config\n- **Install UX**: Auto-reload tmux config after installation\n- **Stability**: Default TMUX_ENTER_DELAY set to 0.5s for better reliability\n\n### v4.0.1\n- **Tokyo Night Theme**: Switch tmux status bar and pane borders to Tokyo Night color palette\n\n### v4.0\n- **Full Refactor**: Rebuilt from the ground up with a cleaner architecture\n- **Perfect tmux Support**: First-class splits, pane labels, borders and statusline\n- **Works in Any Terminal**: Recommended to run everything in tmux (except native Windows)\n\n### v3.0.0\n- **Smart Runtime Queue**: project askd with 60s idle timeout and provider queue support\n- **Cross-AI Collaboration**: Support multiple agents (Claude\u002FCodex) calling one agent (OpenCode) simultaneously\n- **I","CCB是一个用于管理Claude、Codex、Gemini、OpenCode和Droid等多代理CLI团队的工具，支持项目记忆与tmux监督。其核心功能包括通过单一命令行界面执行所有必要的操作和管理任务，实现代理之间的感知与通信，以及构建具有角色分工的专业级项目团队。技术特点上，CCB使用Python开发，确保了跨平台兼容性（Linux、macOS、Windows），并强调每个交互过程可见及模型可控。适用于需要高效协作处理复杂项目的场景，如软件开发中的代码编写、审查及质量保证流程，能够显著提升团队的工作效率与一致性。",2,"2026-06-11 03:42:06","high_star"]