@seemseam/ccb 7.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,902 @@
1
+ <div align="center">
2
+
3
+ # CCB - Visible, Controllable Multi-Agent CLI Workspace
4
+
5
+ <p>
6
+ <img src="https://img.shields.io/badge/v7-multi--agent--workspace-0B7285?style=for-the-badge" alt="v7 multi-agent workspace">
7
+ <img src="https://img.shields.io/badge/terminal-tmux-2F9E44?style=for-the-badge" alt="tmux">
8
+ <img src="https://img.shields.io/badge/providers-Codex%20%7C%20Claude%20%7C%20Gemini%20%7C%20OpenCode%20%7C%20Antigravity-CF1322?style=for-the-badge" alt="providers">
9
+ </p>
10
+
11
+ [![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-lightgrey.svg)]()
12
+ [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)]()
13
+ [![Version](https://img.shields.io/badge/version-7.4.2-orange.svg)]()
14
+ [![Release](https://img.shields.io/badge/install-release--first-orange.svg)]()
15
+
16
+ **English** | [中文](README_zh.md)
17
+
18
+ [Why Multi Agents](#why-multi-agents) · [Comparison](#which-multi-agent-approach-should-you-use) · [v7 UI](#v7-ui-tour) · [Quick Start](#quick-start) · [tmux Basics](#tmux-basics) · [Configure Agents](#configure-your-agent-team) · [Install](#install-and-update)
19
+
20
+ </div>
21
+
22
+ ---
23
+
24
+ ## Why Multi Agents
25
+
26
+ A single agent is enough for small tasks. Once work needs planning, parallel edits, review, testing, and handoff, multi agents help separate roles, context, models, and execution. CCB focuses on putting multiple real CLI agents into one visible terminal workspace.
27
+
28
+ | Value | Plain meaning |
29
+ | :--- | :--- |
30
+ | Role separation | `main` plans, `worker` implements, `reviewer` checks risk. |
31
+ | Parallel progress | One agent can edit while another reads docs, validates, or reviews. |
32
+ | Model and context layering | Different agents can use different providers, models, APIs, worktrees, and memory. |
33
+
34
+ <details>
35
+ <summary><b>Why one agent starts to struggle</b></summary>
36
+
37
+ - Mixed roles reduce context focus: one conversation tries to architect, edit, test, and review itself.
38
+ - Complex task execution has a ceiling: long work needs split points, handoffs, checks, and rollback boundaries.
39
+ - Cost pressure is higher: if every step needs the strongest model, even simple sub-tasks become expensive.
40
+ - Tool and skill management becomes harder: a "does everything" agent also accumulates too much authority and instruction load.
41
+ - Serial waiting is inefficient: when one agent is reading logs or running tests, other independent work cannot naturally continue.
42
+
43
+ </details>
44
+
45
+ ## Which Multi-Agent Approach Should You Use?
46
+
47
+ Multi-agent systems are not one fixed shape. Use the short table first; expand the details only if you are comparing tradeoffs.
48
+
49
+ | Approach | One-line summary | Best fit |
50
+ | :--- | :--- | :--- |
51
+ | [Claude Code native subagents](https://code.claude.com/docs/en/sub-agents) / [agent teams](https://code.claude.com/docs/en/agent-teams) | Native delegation inside Claude Code. | You mostly stay in Claude Code and want more coordination handled by a Claude lead. |
52
+ | [Hive / OpenHive](https://github.com/aden-hive/hive) | Production-oriented multi-agent workflow harness. | You need state, recovery, observability, cost controls, and graph workflows. |
53
+ | CCB | Visible, controllable local CLI-agent workspace with mixed providers. | You want Codex, Claude, Gemini, OpenCode, Antigravity, and other real CLIs in one project terminal. |
54
+
55
+ <details>
56
+ <summary><b>Details: model choice, control, context, and complex workflows</b></summary>
57
+
58
+ | Question | Claude Code native | Hive / OpenHive | CCB |
59
+ | :--- | :--- | :--- | :--- |
60
+ | Different model vendors? | Can choose Claude models for teammates/subagents; overall path is still Claude Code. | LiteLLM route covers many hosted and local providers. | Choose Codex, Claude, Gemini, OpenCode, Droid, Antigravity, and per-agent model/key/url. |
61
+ | Is the process visible? | In-process or split panes depending on mode. | Runtime observability and dashboard-style control. | Real tmux panes by default; users can click, type, copy, and inspect each CLI. |
62
+ | Is topology controllable? | Natural-language teammate setup, with much coordination handled by the lead. | Goal-generated graph-like topology, harness oriented. | Config explicitly defines agents, windows, panes, worktrees, and sidebar behavior. |
63
+ | Is context manageable? | Subagents/teammates have separate contexts; teams have task and message state. | Role memory, durable state, and recovery are core design points. | Each CLI keeps its provider session; shared project memory and per-agent memory are optional. |
64
+ | Best landing zone | Fast delegation inside Claude Code. | Business automation, long-running workflows, production reliability. | Local development with visible cross-provider CLI agents. |
65
+
66
+ CCB also supports complex workflows, but it is not an automatic DAG generator. You design complexity explicitly through `.ccb/ccb.config`, windows, role memory, worktrees, model/API settings, and ask/callback routes.
67
+
68
+ </details>
69
+
70
+ ## What Is CCB?
71
+
72
+ CCB is a project-level agent CLI workspace. It uses tmux to manage multiple real CLI agents and unifies startup, restore, communication, configuration, windows, and runtime state for one project.
73
+
74
+ - **Real CLI sessions, not fake panels**: every agent pane runs the actual provider CLI.
75
+ - **Visible collaboration**: the sidebar shows windows, agents, status, and communication; users can switch panes by mouse.
76
+ - **Mixed providers**: one project can run Codex, Claude, Gemini, OpenCode, Droid, and Antigravity (`agy`) together.
77
+ - **Project config**: `.ccb/ccb.config` defines the team, layout, windows, worktrees, model, key, and url.
78
+ - **Roles**: a new role packaging model that lets specialized agents carrying
79
+ "heavy weapons" such as independent skills, memory, and tool dependencies
80
+ instantly land in a target project as hot-loadable, removable agents, while
81
+ leaving the main environment, user global config, and project runtime state
82
+ unchanged.
83
+ - **Recoverable runtime**: CCB supervises agent panes and supports attach, restore, and project-scoped cleanup.
84
+ - **Explicit collaboration channel**: agents can delegate through `/ask`, `$ask`, callback, and silence routes.
85
+
86
+ ## v7 UI Tour
87
+
88
+ This screenshot is a real dark terminal session from the `ccb_test2` project. The labels explain the regions; you do not need to memorize every shortcut first.
89
+
90
+ <p align="center">
91
+ <img src="assets/readme_v7/ccb-test2-terminal-annotated-en.png" alt="CCB v7 terminal workspace region guide" width="960">
92
+ </p>
93
+
94
+ | Region | Purpose |
95
+ | :--- | :--- |
96
+ | Sidebar | Shows the current window, agent list, provider labels, selected agent, and status hints. |
97
+ | Comms | Shows ask/callback communication and collaboration status. |
98
+ | Agent pane | Each pane is a real CLI session, such as Codex or Claude. |
99
+ | Current input target | The status bar and pane border show where your input goes. |
100
+ | Status bar | Shows project name, current agent, CCB version, date, and mouse/keyboard hints. |
101
+ | Window grouping | v7 `[windows]` can group agents into main, work, review, research, or other workflow windows. |
102
+
103
+ The sidebar implementation uses ideas from [tmux-agent-sidebar](https://github.com/hiroppy/tmux-agent-sidebar). Thanks to that project.
104
+
105
+ ## Quick Start
106
+
107
+ ### 1. Install or update
108
+
109
+ New users can install CCB from npm:
110
+
111
+ ```bash
112
+ npm install -g @seemseam/ccb
113
+ ```
114
+
115
+ The npm package downloads and verifies the matching GitHub Release package for
116
+ your platform, then exposes `ccb`, `ask`, `autonew`, and `ctx-transfer`.
117
+
118
+ You can also install from a release package directly. Download the matching package from [Releases](https://github.com/SeemSeam/claude_codex_bridge/releases), then install it:
119
+
120
+ ```bash
121
+ tar -xzf ccb-*.tar.gz
122
+ cd ccb-*
123
+ ./install.sh install
124
+ ```
125
+
126
+ If CCB is already installed:
127
+
128
+ ```bash
129
+ ccb update
130
+ ```
131
+
132
+ <details>
133
+ <summary><b>Source install is for development or fallback use</b></summary>
134
+
135
+ ```bash
136
+ git clone https://github.com/SeemSeam/claude_codex_bridge.git
137
+ cd claude_codex_bridge
138
+ ./install.sh install
139
+ ```
140
+
141
+ Source installs link global `ccb` / `ask` back to the checkout. Regular users should prefer a stable release install or update.
142
+
143
+ </details>
144
+
145
+ ### 2. Create project config
146
+
147
+ Create `.ccb/ccb.config` in your project root. For v7, it is better to understand config from multi-window topology first: `[windows]` defines tmux windows and agent groups, `agent:provider` defines which CLI each agent uses, and `(worktree)` gives an agent its own git worktree.
148
+
149
+ ```toml
150
+ version = 2
151
+ entry_window = "main"
152
+
153
+ [windows]
154
+ main = "main:codex"
155
+ work = "worker1:codex(worktree), worker2:claude(worktree)"
156
+ review = "reviewer:claude, qa:gemini"
157
+
158
+ [ui.sidebar]
159
+ mode = "every_window"
160
+ width = "15%"
161
+ bottom_height = 20
162
+
163
+ [ui.sidebar.view]
164
+ agents_height = "50%"
165
+ comms_height = "15%"
166
+ tips_height = "35%"
167
+ comms_limit = 3
168
+ ```
169
+
170
+ If you are not sure how to group windows, how many workers you need, which agents should use worktrees, or which agents need separate models or API routes, ask `ccb_self` to design the config with its built-in `ccb-config` skill. Blank projects include `ccb_self`; existing custom configs can add it with `ccb roles add agentroles.ccb_self:codex`.
171
+
172
+ Validate the config:
173
+
174
+ ```bash
175
+ ccb config validate
176
+ ```
177
+
178
+ Start the workspace:
179
+
180
+ ```bash
181
+ ccb
182
+ ```
183
+
184
+ ### 3. Collaborate
185
+
186
+ Type directly in an agent pane, or route work between agents:
187
+
188
+ ```text
189
+ /ask reviewer review the latest parser changes and list blocking issues.
190
+ ```
191
+
192
+ ## Daily Operation
193
+
194
+ | Goal | Command |
195
+ | :--- | :--- |
196
+ | Start or reattach the current project workspace | `ccb` |
197
+ | Safe start, keeping configured/manual permission behavior | `ccb -s` |
198
+ | Rebuild runtime state while keeping config and same-name managed agent history | `ccb -n` |
199
+ | Stop this project's background runtime | `ccb kill` |
200
+ | Force cleanup before rebuilding | `ccb kill -f` then `ccb -n` |
201
+ | Update to the latest stable release | `ccb update` |
202
+ | Inspect the active config layer | `ccb config validate` |
203
+ | Preview a config reload plan without changing tmux | `ccb reload --dry-run` |
204
+ | Apply supported config changes without restarting other agents | `ccb reload` |
205
+
206
+ ## tmux Basics
207
+
208
+ CCB can be used mostly with the mouse, but learning a few tmux shortcuts makes daily work much faster. This section lists only common tmux keyboard operations.
209
+
210
+ In this section, `<prefix>` means `Ctrl-b`: **press `Ctrl-b`, release it, then press the function key**. Use an English input method for the function key so punctuation keys are not intercepted by another IME.
211
+
212
+ | Goal | Function key | Notes |
213
+ | :--- | :--- | :--- |
214
+ | Move to an adjacent pane | `h` / `j` / `k` / `l` or Arrow keys | CCB-managed tmux sessions enable Vim-style pane focus keys. |
215
+ | Resize current pane | `H` / `J` / `K` / `L` | Repeatable resize keys in Vim directions. |
216
+ | Move to the next pane | `o` | Fast rotation when direction does not matter. |
217
+ | Zoom / unzoom current pane | `z` | Useful for long output, diffs, and logs. |
218
+ | Open window / pane list | `w` | Pick a target in larger layouts. |
219
+ | Next window | `n` | Switch to the next tmux window. |
220
+ | Previous window | `p` | Switch to the previous tmux window. |
221
+ | Jump to numbered window | `0` to `9` | Jump directly by tmux window number. |
222
+ | Enter copy / scroll mode | `[` | Review history, scroll, and select text. |
223
+ | Exit copy / scroll mode | `q` or `Esc` | Return to normal input. |
224
+ | Paste tmux buffer | `]` | Paste content copied into tmux's own buffer. |
225
+ | Detach session | `d` | Leave the display without stopping CCB; you can reattach later. |
226
+
227
+ Copy and paste tips:
228
+
229
+ - **Mouse copy**: in most terminals, drag with the left mouse button to copy; if tmux captures the drag, enter copy / scroll mode first.
230
+ - **Bypass tmux selection**: many terminals support `Shift + mouse drag` for native terminal selection.
231
+ - **System paste**: Linux/Windows terminals usually use `Ctrl+Shift+V`; macOS terminals usually use `Cmd+V`.
232
+ - **tmux paste**: if the content is in the tmux buffer, use function key `]`.
233
+
234
+ <details>
235
+ <summary><b>More common tmux operations</b></summary>
236
+
237
+ | Goal | Function key | Notes |
238
+ | :--- | :--- | :--- |
239
+ | Scroll in copy / scroll mode | `PageUp` / `PageDown` / `Arrow keys` | Terminal support can vary. |
240
+ | Start selection in copy / scroll mode | `v` | CCB uses tmux vi copy mode. |
241
+ | Copy selection in copy / scroll mode | `y` | Copies to the tmux buffer and exits copy mode. |
242
+ | Search in copy / scroll mode | `Ctrl-s` / `Ctrl-r` | Commonly forward / backward search. |
243
+ | Create a window | `c` | Use only when you intentionally need another shell. |
244
+ | Rename a window | `,` | Helps identify multi-window workflows. |
245
+ | Show tmux key help | `?` | Useful when you forget a shortcut. |
246
+
247
+ New users should avoid pane/window killing shortcuts at first. To stop a CCB project, prefer CCB's project-level shutdown command instead of killing one recoverable pane by accident.
248
+
249
+ </details>
250
+
251
+ ## Configure Your Agent Team
252
+
253
+ CCB resolves config in three layers, from lowest to highest priority:
254
+
255
+ 1. Built-in default config.
256
+ 2. User config at `~/.ccb/ccb.config`.
257
+ 3. Project config at `.ccb/ccb.config`.
258
+
259
+ Higher layers replace lower layers as a whole; they are not merged. The project authority file is `.ccb/ccb.config`. The old `.ccb_config/ccb.config` path is legacy migration evidence only.
260
+ The built-in default is a v2 `[windows]` config with `agent1`, `agent2`, `agent3`, `ccb_self`, and a managed `neovim` tool window using `ccb-nvim`. The default `ccb_self` agent uses `codex` and is bound to `agentroles.ccb_self`.
261
+
262
+ `.ccb/ccb.config` mainly controls:
263
+
264
+ | Config area | Syntax or location | Notes |
265
+ | :--- | :--- | :--- |
266
+ | Window grouping | `[windows]` | Group agents into tmux windows such as `main`, `work`, `review`, or `research`. |
267
+ | Agent name and provider | `main:codex`, `reviewer:claude` | Names are used by the UI, ask routing, and memory files; provider decides which CLI starts. |
268
+ | Workspace isolation | `worker1:codex(worktree)` | Gives implementation agents isolated git worktrees to reduce accidental overlap. |
269
+ | Sidebar behavior | `[ui.sidebar]` | Controls whether the sidebar appears in every window, plus width and Comms height. |
270
+ | Tool windows | `[tool_windows.<name>]` | Add managed non-agent windows such as Neovim; they appear as one sidebar row and are not `ask` targets. |
271
+ | Per-agent model/API | `[agents.<name>]` | Configure `model`, `key`, `url`, and related agent-local overrides. |
272
+ | Role Pack binding | `agentroles.archi:codex` | Bind a reusable role package through a window leaf; role assets are installed once and projected into the derived agent. |
273
+ | Role description | `[agents.<name>] description = "..."` | Give an agent a short responsibility note; longer workflow rules belong in memory. |
274
+
275
+ After editing `.ccb/ccb.config` in a mounted project, run `ccb reload --dry-run` to preview the plan and `ccb reload` to apply it. The explicit reload path can dynamically add agents, add windows, add/remove managed tool windows, unload idle agents, and remove idle windows while keeping unrelated agents and panes running. It does not run as a background file watcher, and unsafe changes such as busy unloads, provider replacement, agent moves, tool command replacement, and arbitrary reshapes are rejected without killing existing panes.
276
+
277
+ If you want to discuss the configuration before writing it by hand, ask `ccb_self` to describe the target team. Blank projects include this route by default; projects with a user or project config should add `agentroles.ccb_self` if they have overridden the built-in default. Its built-in `ccb-config` skill proposes a complete config first, then writes `.ccb/ccb.config` only after confirmation.
278
+
279
+ ### Role Packs
280
+
281
+ Role Packs define reusable agent roles. A role can carry a stable identity,
282
+ responsibilities, memory, provider-specific skills, tool hooks, and dependency
283
+ setup. This keeps project config short and makes specialized agents reusable
284
+ instead of copying long role instructions into every project.
285
+
286
+ The recommended default catalog roles are `agentroles.ccb_self`, the CCB
287
+ self-maintenance role, and `agentroles.archi`, an architecture reviewer role
288
+ from `agent-roles-spec` backed by Architec. `install.sh install` automatically
289
+ attempts to install or refresh these recommended roles by default; `ccb update`
290
+ refreshes installed roles and installs missing recommended roles in the user
291
+ environment. You can also refresh manually:
292
+
293
+ ```bash
294
+ ccb roles update agentroles.ccb_self
295
+ ccb roles update agentroles.archi
296
+ ```
297
+
298
+ Project role bindings stay pinned by `.ccb/role-lock.json`. `ccb update` does
299
+ not rewrite project locks. When you run `ccb` inside a project, CCB checks
300
+ bound role locks against the current installed roles; interactive starts ask
301
+ whether to refresh stale project locks in place, and non-interactive starts
302
+ print a warning only.
303
+
304
+ `ccb_self` is strongly recommended for CCB projects because it owns CCB config
305
+ maintenance, runtime diagnostics, guarded recovery, and single-agent restart
306
+ assistance without taking over product work. Blank projects include it in the
307
+ built-in default. Existing projects, and projects with user or project config
308
+ that replace the built-in default, should add it explicitly where they want
309
+ that maintenance agent:
310
+
311
+ ```bash
312
+ ccb roles add agentroles.ccb_self:codex
313
+ ccb reload
314
+ ```
315
+
316
+ To use `agentroles.archi` in a project, add it as a window leaf:
317
+
318
+ ```bash
319
+ ccb roles add agentroles.archi:codex
320
+ ccb reload
321
+ ```
322
+
323
+ This writes the compact form `agentroles.archi:codex`. At runtime CCB resolves
324
+ it to the project-local agent `archi`, then projects the role memory and skills
325
+ into that agent's managed provider home.
326
+
327
+ <details>
328
+ <summary><b>Config format examples: single window, multi-window, per-agent model/API</b></summary>
329
+
330
+ ### Single-window compact config
331
+
332
+ ```text
333
+ cmd; main:codex, worker1:codex(worktree); reviewer:claude
334
+ ```
335
+
336
+ Meaning:
337
+
338
+ - `cmd` is a shell pane, not an agent.
339
+ - `main`, `worker1`, and `reviewer` are agent names.
340
+ - `codex` and `claude` are providers.
341
+ - `;` splits left-to-right; `,` stacks top-to-bottom.
342
+ - `(worktree)` means that agent uses an isolated git worktree.
343
+
344
+ ### Multi-window topology
345
+
346
+ When you want planning, implementation, review, and research in different tmux windows, use `version = 2` and `[windows]`:
347
+
348
+ ```toml
349
+ version = 2
350
+ entry_window = "main"
351
+
352
+ [windows]
353
+ main = "main:codex"
354
+ work = "worker1:codex(worktree), worker2:claude(worktree)"
355
+ review = "reviewer:claude, qa:gemini"
356
+
357
+ [ui.sidebar]
358
+ mode = "every_window"
359
+ width = "15%"
360
+ bottom_height = 20
361
+
362
+ [ui.sidebar.view]
363
+ agents_height = "50%"
364
+ comms_height = "15%"
365
+ tips_height = "35%"
366
+ comms_limit = 3
367
+ ```
368
+
369
+ Note: `cmd` belongs to compact/hybrid single-window layouts. Do not put `cmd` inside `[windows]`.
370
+
371
+ ### Managed Neovim tool window
372
+
373
+ Tool windows are tmux windows managed by CCB, but they are not agents. They do not appear in `ccb ask` targets and do not create provider runtime records.
374
+
375
+ ```toml
376
+ version = 2
377
+ entry_window = "main"
378
+
379
+ [windows]
380
+ main = "main:codex"
381
+
382
+ [tool_windows.neovim]
383
+ command = "ccb-nvim"
384
+ label = "neovim"
385
+ ```
386
+
387
+ `ccb tools install neovim` prepares an isolated `ccb-nvim` wrapper and LazyVim profile under CCB-owned XDG paths. `install.sh install` and `ccb update` automatically attempt this provisioning by default and keep failures non-blocking. Set `CCB_INSTALL_NEOVIM=1` to make install provisioning required or `CCB_INSTALL_NEOVIM=0` to skip it.
388
+ If `nvim` is not already on `PATH`, provisioning attempts to download the official Neovim release tarball for Linux/macOS and verifies the release sha256 before activating it. It does not write `~/.config/nvim`.
389
+ The managed profile defaults to ASCII icons so terminals without Nerd Font support do not show unreadable boxes. To opt back into LazyVim glyph icons, launch with `CCB_LAZYVIM_ICON_STYLE=glyph ccb-nvim`.
390
+ Use `ccb tools doctor neovim` to verify the managed profile. A working LazyVim setup reports `neovim_status: ok` and `lazyvim_health_status: ok`; damaged or partially downloaded plugin trees report `degraded` and can be repaired by rerunning `ccb tools install neovim`.
391
+
392
+ ### Per-agent model, API key, or base URL
393
+
394
+ Use compact format when layout is enough. If some agents need separate models or API routes, keep the compact header and add TOML overlays:
395
+
396
+ ```toml
397
+ cmd; fast:codex, deep:codex; reviewer:claude
398
+
399
+ [agents.fast]
400
+ model = "gpt-5-mini"
401
+
402
+ [agents.deep]
403
+ key = "sk-..."
404
+ url = "https://api.example.com/v1"
405
+ model = "gpt-5"
406
+
407
+ [agents.reviewer]
408
+ model = "sonnet"
409
+ ```
410
+
411
+ Do not commit real API keys to a public repository. `key` / `url` are agent-local shortcuts; advanced provider environment variables belong in provider profile or agent env fields.
412
+
413
+ </details>
414
+
415
+ ## Use ccb_self For CCB Config
416
+
417
+ The full `ccb-config` skill belongs to the `agentroles.ccb_self` role. It is not a globally inherited skill for every agent. CCB installs or refreshes this Role Pack by default, and blank projects include `ccb_self` in the built-in default config. Existing projects, or projects with a user/project config that replaces the built-in default, should bind it where they want the maintenance assistant.
418
+
419
+ If you do not want to hand-write `.ccb/ccb.config`, ask `ccb_self` and describe your project goal, parallelism, window grouping, worktree isolation, provider/model/API preferences. `ccb_self` uses its built-in `ccb-config` skill to discuss the shape with you and propose a complete config.
420
+
421
+ Example:
422
+
423
+ ```bash
424
+ ccb ask ccb_self "Design a team for a Python library: main coordinates work, three workers implement in worktrees, and one reviewer checks regressions and risks. Recommend whether this should stay single-window or become main/work/review windows."
425
+ ```
426
+
427
+ For an existing project that does not already configure `ccb_self`, run
428
+ `ccb roles add agentroles.ccb_self:codex` and `ccb reload` first.
429
+
430
+ <details>
431
+ <summary><b>ccb-config write flow and boundaries</b></summary>
432
+
433
+ 1. Describe the project and team goal in natural language.
434
+ 2. `ccb_self`'s built-in `ccb-config` reads the current config authority and decides whether this is a new config, an edit, or a migration.
435
+ 3. It proposes one complete config before writing.
436
+ 4. You confirm the proposal, then it edits only `.ccb/ccb.config`.
437
+ 5. It validates the config and tells you to use `ccb reload --dry-run` / `ccb reload` when the change can be applied dynamically.
438
+
439
+ By default, `ccb-config` does not edit `.ccb/ccb_memory.md` or `.ccb/agents/<agent>/memory.md`. It should touch those memory files only when you explicitly ask `ccb_self` for workflow memory or role memory design.
440
+
441
+ </details>
442
+
443
+ ## Agent Collaboration
444
+
445
+ Normal `ask` is submit-and-return: after handing work to the target agent, the current agent should not poll and wait.
446
+
447
+ | Scenario | Recommended route |
448
+ | :--- | :--- |
449
+ | Human directly targets an agent | `/ask reviewer ...` or `$ask reviewer ...` |
450
+ | Current agent is inside an active CCB task and needs a child result before replying | `ask --callback reviewer` |
451
+ | Current agent sends independent work whose successful result does not need to return | `ask --silence worker1` |
452
+ | Queue or status diagnostics | `pend`, `watch`, `ping`, and similar commands are diagnostics only |
453
+
454
+ When an agent submits a child task, choose flags from the result intent first,
455
+ then add dependency and artifact preservation only when needed:
456
+
457
+ | Need | Recommended flags |
458
+ | :--- | :--- |
459
+ | Publish or execute work; successful result is not useful | `--silence` |
460
+ | Get a short outcome: status, findings, risks, blockers, or next steps | `--compact` |
461
+ | Get full consultation, analysis, report, generated doc, or structured findings | `--artifact-reply` |
462
+ | Continue an active parent task only after the child result arrives | add `--callback` |
463
+ | Preserve exact pasted logs, diff, JSON/YAML, table, or copied text | add `--artifact-request` |
464
+ | Preserve exact input and full output | `--artifact-io` |
465
+ | Short question or short handoff where inline text is enough | plain `ask` |
466
+
467
+ `--callback` and `--silence` control task relationship. Artifact flags control
468
+ content preservation. The automatic long-message spill is only a fallback, so
469
+ use artifact flags proactively when exact input or full output matters.
470
+
471
+ <details>
472
+ <summary><b>Why callback matters</b></summary>
473
+
474
+ If agent A is handling a user-originated CCB task and needs agent B's result to finish, A should use callback. CCB records the parent/child relationship, lets A's current turn end, and later delivers B's result back to A as a continuation. That avoids polling, queue blocking, and wasted context.
475
+
476
+ </details>
477
+
478
+ ## Editor Workflow
479
+
480
+ <p align="center">
481
+ <img src="assets/nvim.png" alt="Neovim integration with multi-model code review" width="860">
482
+ </p>
483
+
484
+ CCB does not require leaving your editor. A common setup is: editor for code, CCB terminal for multi-agent planning, implementation, review, testing, and handoff.
485
+
486
+ ## Install And Update
487
+
488
+ ### Requirements
489
+
490
+ - Python 3.10+
491
+ - `tmux`
492
+ - At least one agent CLI you plan to use, such as Codex, Claude, Gemini, OpenCode, Droid, or Antigravity
493
+ - Linux, macOS, or WSL
494
+ - Node.js 18+ when installing through npm
495
+
496
+ Current v7 / newer versions do not claim native Windows support. Native Windows support only applies to the v5 line. If you are on Windows and want current versions, use WSL and keep both `ccb` and agent CLIs inside WSL.
497
+
498
+ ### npm first
499
+
500
+ ```bash
501
+ npm install -g @seemseam/ccb
502
+ ```
503
+
504
+ The npm package is a lightweight installer wrapper around the official GitHub
505
+ Release artifacts. It verifies `SHA256SUMS` before extracting the platform
506
+ package.
507
+
508
+ ### Release package fallback
509
+
510
+ For first install, prefer a package from [GitHub Releases](https://github.com/SeemSeam/claude_codex_bridge/releases). For existing installs:
511
+
512
+ ```bash
513
+ ccb update
514
+ ```
515
+
516
+ Source checkout install is for development, fix validation, or temporary fallback when a release package is not available.
517
+
518
+ ### Uninstall
519
+
520
+ ```bash
521
+ ccb uninstall
522
+ ccb reinstall
523
+
524
+ # Fallback from the package or source directory:
525
+ ./install.sh uninstall
526
+ ```
527
+
528
+ ## FAQ
529
+
530
+ <details>
531
+ <summary><b>The expected agents did not appear</b></summary>
532
+
533
+ Run `ccb config validate` and check that `config_source_kind` is the layer you expected. Project config `.ccb/ccb.config` has highest priority; if it is missing, CCB uses `~/.ccb/ccb.config` or the built-in default.
534
+
535
+ </details>
536
+
537
+ <details>
538
+ <summary><b>Copy/paste is awkward</b></summary>
539
+
540
+ First try mouse-drag copy and `Ctrl+Shift+V` / `Cmd+V` paste. If tmux captures the drag, use function key `[` after `<prefix>` to enter copy / scroll mode. If you only want native terminal selection, many terminals support `Shift + mouse drag`.
541
+
542
+ </details>
543
+
544
+ <details>
545
+ <summary><b>I want to migrate an old compact config to multi-window</b></summary>
546
+
547
+ Ask `ccb_self` to use its built-in `ccb-config` and describe your target window groups, such as main/work/review. Migration should preserve old agent names, providers, worktree markers, model/key/url fields, and write `[windows]` only after confirmation.
548
+
549
+ </details>
550
+
551
+ <details>
552
+ <summary><b>The sidebar helper is unavailable</b></summary>
553
+
554
+ Prefer a release package because it carries or handles the sidebar helper. Source installs may need a local Rust toolchain if no compatible prebuilt helper is available.
555
+
556
+ </details>
557
+
558
+ ## Community And Credits
559
+
560
+ Email: `bfly123@126.com`
561
+
562
+ WeChat: `seemseam-com`
563
+
564
+ Thanks to the [Linux.do community](https://linux.do) for testing, feedback, and discussion.
565
+
566
+ Thanks to [tmux-agent-sidebar](https://github.com/hiroppy/tmux-agent-sidebar) for the sidebar ideas and inspiration.
567
+
568
+ <div align="center">
569
+ <img src="assets/weixin.jpg" alt="WeChat group" width="300">
570
+ </div>
571
+
572
+ ## Release Notes
573
+
574
+ v7 highlights:
575
+
576
+ - Native CCB sidebar with per-window project view, agent status, and mouse switching.
577
+ - Comms split from agent activity, making communication status and provider pane activity clearer.
578
+ - `version = 2` `[windows]` topology for workflow-oriented tmux window grouping.
579
+ - Explicit `ccb reload` support for dynamic agent/window load and idle unload without restarting unrelated agents.
580
+ - Compact / hybrid config compatibility, so single-window teams do not need forced migration.
581
+ - Hardened tmux, Ghostty, release helper, Codex trust, and provider session restore paths.
582
+
583
+ <details open>
584
+ <summary><b>v7.4.2</b> - Self-Supervision And Empty Reply Guards</summary>
585
+
586
+ - Hardens CCB self-supervision with bounded provider-runtime snapshots,
587
+ project-view activity evidence, suspicion envelopes, and a self-first
588
+ diagnosis path.
589
+ - Treats empty Claude/Gemini hook replies, Codex protocol `task_complete`
590
+ empty replies, and AGY done-marker empty replies as `incomplete` with
591
+ diagnostics.
592
+ - Preserves intentional no-reply behavior: `--silence` success remains
593
+ completed, callback parent `callback_pending` remains legal, and abnormal
594
+ silent completions stay diagnosable.
595
+ - Tightens default Role Pack install and project role-lock refresh handling for
596
+ `agentroles.archi` and `agentroles.ccb_self`.
597
+
598
+ </details>
599
+
600
+ <details>
601
+ <summary><b>v7.4.1</b> - Maintenance Heartbeat And ccb_self Defaults</summary>
602
+
603
+ - Hardens the project-scoped maintenance heartbeat runner, schedule handling,
604
+ activation suppression, and diagnostics evidence paths while keeping
605
+ heartbeat opt-in.
606
+ - Adds `ccb_self:codex` bound to canonical `agentroles.ccb_self` in the
607
+ built-in blank-project default and refreshes the recommended role during
608
+ install/update provisioning without rewriting existing custom configs.
609
+ - Aligns CCB source with the `agent-roles-spec` role id
610
+ `agentroles.ccb_self`; `agentrole.ccb_self` is accepted only as legacy input
611
+ compatibility.
612
+ - Tightens generated config authority, Role Pack hook paths, and Codex prompt
613
+ delivery acceptance guards.
614
+ - Adds the `ccb_self` expert manual, plan decisions, and tests for expert
615
+ reference and communication recovery guidance.
616
+
617
+ </details>
618
+
619
+ <details>
620
+ <summary><b>v7.4.0</b> - ccb_self Maintenance Role</summary>
621
+
622
+ - Adds the `agentroles.ccb_self` self-maintenance Role Pack path for CCB config
623
+ ownership, diagnostics, guarded recovery, chain repair, and single-agent
624
+ restart assistance.
625
+ - Moves full `ccb-config` into the private `ccb_self` Role skill instead of a
626
+ globally inherited skill.
627
+ - Installs or refreshes recommended default Role Packs, including
628
+ `agentroles.ccb_self`, during install/update Role Pack provisioning.
629
+ - Adds `ccb_self:codex` bound to `agentroles.ccb_self` in the built-in blank
630
+ project default; existing custom configs can still add
631
+ `agentroles.ccb_self:codex` explicitly.
632
+
633
+ </details>
634
+
635
+ <details>
636
+ <summary><b>v7.3.8</b> - AGY Adapter And Project Tmux History</summary>
637
+
638
+ - Adds the Antigravity (`agy`) `pane_quiet` execution adapter with protocol parsing, command dispatch, polling, and docs for managed provider operation.
639
+ - Preserves 50000 lines of scrollback history for CCB-managed project tmux sessions, including project namespace create/reuse and detached runtime fallback paths.
640
+ - Keeps tmux mouse, vi key, clipboard, focus, and history policies consistently reapplied after the authoritative project session exists.
641
+ - Hardens Claude startup by passing inline `--settings` JSON when possible, preserving non-ASCII source paths through provider launch.
642
+
643
+ </details>
644
+
645
+ <details>
646
+ <summary><b>v7.3.7</b> - Ask Parameter Policy And Skill Guidance</summary>
647
+
648
+ - Updates inherited Claude, Codex, and Droid ask skills to choose flags from result intent first: `--silence`, `--compact`, `--artifact-reply`, or plain `ask`.
649
+ - Keeps dependency handling explicit by adding `--callback` only when an active parent job must wait for a child result.
650
+ - Separates artifact transport from task relationship: use `--artifact-request` and `--artifact-io` when exact input or input/output preservation matters.
651
+ - Adds the Agent Collaboration ask-parameter quick reference to README and README_zh.
652
+ - Adds the ask-parameter-policy plan tree, decision records, parameter matrix, and validation notes.
653
+
654
+ </details>
655
+
656
+ <details>
657
+ <summary><b>v7.3.6</b> - Provider Memory Ownership Cleanup</summary>
658
+
659
+ - Adds provider memory ownership policy: Claude, Codex, and OpenCode managed contexts no longer duplicate provider-native project memory inside the CCB generated bundle; Gemini keeps the previous behavior pending audit.
660
+ - Filters legacy CCB install marker blocks and old collaboration sections only from provider user memory, without rewriting user-owned memory files.
661
+ - Updates the default `.ccb/ccb_memory.md` template to v5 and removes the duplicate Ask Communication block already supplied by managed CCB memory.
662
+ - Adds seed-aware shared memory migration, upgrading only unedited old generated templates while preserving edited project memory.
663
+ - Stops Claude route-mode installs from writing `~/.claude/rules/ccb-config.md`; install/uninstall now remove only CCB-marked legacy external config and preserve unmarked user files.
664
+ - Keeps source runtime startup import-safe by avoiding the tmux UI version detection cycle under `ccb_test`.
665
+
666
+ </details>
667
+
668
+ <details>
669
+ <summary><b>v7.3.5</b> - Tmux Border Hook Hotfix</summary>
670
+
671
+ - Fixes tmux `after-select-pane` hooks that could persist temporary release paths like `/tmp/ccb-v...-release.../config/ccb-border.sh` and later report `returned 127` when clicking panes.
672
+ - Makes border hooks use `run-shell -b` with an executable guard, so stale script paths do not spam tmux errors.
673
+ - Refreshes active tmux UI hooks after `ccb update` on a best-effort basis, so users upgrading from v7.3.4 automatically rewrite bad hooks without failing Role Pack provisioning.
674
+ - v7.3.4 is withdrawn/prerelease; use v7.3.5 or newer as the stable upgrade target.
675
+
676
+ </details>
677
+
678
+ <details>
679
+ <summary><b>v7.3.4</b> - Withdrawn Prerelease</summary>
680
+
681
+ - Simplifies `agentroles.archi` tooling around the global `@seemseam/archi` npm package; CCB no longer manages separate Hippo, llmgateway, pip, venv, git, or editable Archi dependencies.
682
+ - Aligns `ccb roles install/update/doctor agentroles.archi` with the npm-provided `archi` CLI and bundled Hippo/llmgateway capabilities.
683
+ - Updates `bin/ccb-arch` to forward to `archi`, with a clear `npm install -g @seemseam/archi` hint when the CLI is missing.
684
+ - Fixes sidebar focus/refresh handling so selecting agents from the sidebar no longer restarts panes unnecessarily.
685
+ - Withdrawn because tmux border hooks could persist temporary release paths and later report `ccb-border.sh ... returned 127`; use v7.3.5 or newer.
686
+ - Adds the guarded `ccb_test` source entrypoint for isolated source-checkout validation without affecting installed CCB.
687
+ - Disables OpenCode autoupdate for managed panes through `opencode.json` and `OPENCODE_DISABLE_AUTOUPDATE=true`.
688
+ - Refreshes inherited `ccb-config` skills for config-only use, language-following behavior, YAML description quoting, clearer menu grouping, and sidebar pane restart guidance.
689
+ - Adds the config-designer UI plan tree and includes the main-branch `@percent` layout token plus Antigravity lifecycle cleanup updates.
690
+
691
+ </details>
692
+
693
+ <details>
694
+ <summary><b>v7.3.3</b> - Withdrawn Draft</summary>
695
+
696
+ - Withdrawn before stable rollout because it carried a sidebar focus/refresh regression. It is not the recommended release and should not be used for upgrades; use v7.3.5 or newer.
697
+
698
+ </details>
699
+
700
+ <details>
701
+ <summary><b>v7.3.2</b> - First-Install Role Pack Provisioning Hotfix</summary>
702
+
703
+ - Fixes a blank-environment first install bug where `install.sh` tried to update `agentroles.archi` before it was installed, leaving Role Pack provisioning incomplete.
704
+ - Keeps the existing install refresh path: `ccb roles update agentroles.archi` is still attempted first, then falls back to `ccb roles install agentroles.archi` when the role is missing.
705
+ - Aligns optional Role Pack skip messaging with the install path.
706
+ - Supersedes v7.3.1 as the recommended stable release for new installs; v7.3.1 is published but has the blank first-install Role Pack provisioning bug.
707
+
708
+ </details>
709
+
710
+ <details>
711
+ <summary><b>v7.3.1</b> - Agent Roles, Artifact Ask, And Shared Workspace Release</summary>
712
+
713
+ - Adds daemon-managed ask artifact transport with `--artifact-request`, `--artifact-reply`, and `--artifact-io`, including callback-compatible artifact replies for long outputs.
714
+ - Finalizes the Agent Roles store path around the external `agent-roles` manager and `.roles/installed`, while preserving `ccb.archi` compatibility for `agentroles.archi`.
715
+ - Adds shared workspace controls with `workspace_path` and `workspace_group`, plus `provider_command_template` for wrapping the CCB-built provider command without breaking resume handling.
716
+ - Fixes Claude startup under root, OpenCode `ccb clear` submit timing after restored sessions, and managed Neovim activation so the original runtime path is preserved.
717
+ - Refreshes inherited `ask` and `ccb-config` skills for submit-only ask rules, artifact modes, windows-first config, shared workspaces, and provider command templates.
718
+ - Stabilizes WSL/root release tests by making non-root Claude command assertions independent from the runner UID.
719
+
720
+ </details>
721
+
722
+ <details>
723
+ <summary><b>v7.3.0</b> - Superseded Prerelease</summary>
724
+
725
+ - Superseded by v7.3.1 after the remote WSL Tests workflow exposed root-sensitive Claude command assertions. The v7.3.0 GitHub release was kept as a prerelease and did not upload official release artifacts.
726
+
727
+ </details>
728
+
729
+ <details>
730
+ <summary><b>v7.2.12</b> - Agent Roles Store Migration Release</summary>
731
+
732
+ - Uses the external `agent-roles` package manager by default for Role Pack install, update, and sync.
733
+ - Writes Role Pack payloads into the spec-owned `.roles/installed` store.
734
+ - Copies existing legacy installed role snapshots into `.roles/installed` without deleting the old store; runtime lookup reads the spec-owned store only after migration.
735
+ - Routes `ccb roles update --path ...` through the Agent Roles manager so path updates also write `.roles/installed`.
736
+ - Supersedes v7.2.11, which was an incomplete opt-in preview release and should not be used as the recommended release.
737
+
738
+ </details>
739
+
740
+ <details>
741
+ <summary><b>v7.2.11</b> - Superseded Agent Roles Opt-In Preview</summary>
742
+
743
+ - Superseded by v7.2.12 after the release direction changed from an opt-in `CCB_AGENT_ROLES_MANAGER=1` preview to a default-on Agent Roles manager migration.
744
+
745
+ </details>
746
+
747
+ <details>
748
+ <summary><b>v7.2.10</b> - Role Pack Post-Update Hotfix</summary>
749
+
750
+ - Fixes managed `ccb update` so optional Role Pack and Neovim provisioning runs through the newly installed `ccb __post-update` entrypoint instead of the old updater process.
751
+ - Repairs legacy installed `ccb.archi` role metadata under canonical `agentroles.archi` and falls back to the current catalog source when old source paths are gone.
752
+ - Preserves optional post-update provisioning as warnings, while `CCB_INSTALL_ROLES=1`, `CCB_INSTALL_NEOVIM=1`, or `CCB_POST_UPDATE_REQUIRED=1` still fail the parent update when required provisioning fails.
753
+ - Keeps new config guidance on `agentroles.archi`; `ccb.archi` remains a legacy input alias only.
754
+
755
+ </details>
756
+
757
+ <details>
758
+ <summary><b>v7.2.9</b> - Agent Roles Catalog Release</summary>
759
+
760
+ - Moves the production architecture role out of the CCB source tree and consumes `agentroles.archi` from `agent-roles-spec`.
761
+ - Adds catalog-backed role list/install/update/sync/add/doctor behavior with installed-role metadata, project locks, digest pinning, and explicit re-add updates.
762
+ - Projects role memory, CCB adapter memory, provider skills, and Architec adapter hooks into managed provider homes.
763
+ - Keeps `ccb.archi` as a compatibility alias while writing canonical `agentroles.archi` bindings and locks.
764
+ - Fixes the source runtime guard so `ccb --project <allowed-test-dir> ...` smoke commands launched from the source checkout pass the release gate.
765
+ - Passes generated soak, fastpath, and storage cleanup smoke roots through `CCB_SOURCE_ALLOWED_ROOTS`.
766
+ - Passes the WSL mounted startup smoke project under `/mnt/c/Temp` through `CCB_SOURCE_ALLOWED_ROOTS`.
767
+ - Hardens the Claude restart provider blackbox test to wait for the running partial reply before asserting it.
768
+ - Hardens Role Pack CI fixtures so full GitHub Actions tests do not require a sibling `agent-roles-spec` checkout.
769
+
770
+ </details>
771
+
772
+ <details>
773
+ <summary><b>v7.2.8</b> - Superseded Role Fixture Hotfix</summary>
774
+
775
+ - Superseded by v7.2.9 after the release gate found that full GitHub Actions runners did not have the sibling `agent-roles-spec` checkout expected by Role Pack tests.
776
+
777
+ </details>
778
+
779
+ <details>
780
+ <summary><b>v7.2.7</b> - Superseded WSL Mounted Smoke Hotfix</summary>
781
+
782
+ - Superseded by v7.2.8 after the release gate found a provider blackbox timing race in the Claude restart partial-reply assertion.
783
+
784
+ </details>
785
+
786
+ <details>
787
+ <summary><b>v7.2.6</b> - Superseded Official Smoke Root Hotfix</summary>
788
+
789
+ - Superseded by v7.2.7 after the release gate found that the WSL mounted startup smoke in the main Tests workflow also needed its generated `/mnt/c/Temp` project in `CCB_SOURCE_ALLOWED_ROOTS`.
790
+
791
+ </details>
792
+
793
+ <details>
794
+ <summary><b>v7.2.5</b> - Superseded Source Runtime Guard Hotfix</summary>
795
+
796
+ - Superseded by v7.2.6 after the release gate found that official soak, fastpath, and storage cleanup smoke checks needed explicit generated test roots in `CCB_SOURCE_ALLOWED_ROOTS`.
797
+
798
+ </details>
799
+
800
+ <details>
801
+ <summary><b>v7.2.4</b> - Superseded Agent Roles Catalog Release</summary>
802
+
803
+ - Superseded by v7.2.5 after the release gate found that source checkout `--project` commands were rejected from the source cwd during CCBD real platform smoke checks.
804
+
805
+ </details>
806
+
807
+ <details>
808
+ <summary><b>v7.2.3</b> - Root Install Support Validation Hotfix</summary>
809
+
810
+ - Keeps the root install confirmation behavior from v7.2.2: root installs require explicit confirmation, while uninstall remains ungated.
811
+ - Preserves install identity metadata and `ccb doctor` runtime user/owner/root diagnostics.
812
+ - Fixes WSL release validation by making install metadata tests explicitly simulate non-root identity where required.
813
+
814
+ </details>
815
+
816
+ <details>
817
+ <summary><b>v7.2.2</b> - Root Install Confirmation Release</summary>
818
+
819
+ - Adds an explicit root install confirmation gate: `install.sh install` refuses root by default, accepts interactive `yes`, and requires `CCB_ALLOW_ROOT_INSTALL=1` for non-interactive root installs.
820
+ - Keeps uninstall cleanup outside the root confirmation gate, so root-owned installs can still be removed.
821
+ - Records install identity metadata including root status, install user, and sudo user details.
822
+ - Extends `ccb doctor` with runtime user, owner, root state, and a warning when root runs inside a non-root project.
823
+ - Fixes the non-blocking build-info type hygiene issue by returning `dict[str, object]` from `read_build_info()`.
824
+
825
+ </details>
826
+
827
+ <details>
828
+ <summary><b>v7.2.1</b> - Antigravity Runtime Follow-Up</summary>
829
+
830
+ - Completes `agy` / Google Antigravity runtime and session plumbing with provider runtime specs, client specs, public provider-core exports, and `.agy-<agent>-session` naming.
831
+ - Adds regression coverage for named Antigravity pane launches using `AGY_START_CMD`, auto-permission, restore continuation, and prepared-state compatibility.
832
+ - Aligns README provider lists and release surface so Antigravity is visible alongside Codex, Claude, Gemini, OpenCode, and Droid.
833
+ - Clarifies no-change reload semantics: non-dry-run `ccb reload` with no config delta returns `noop` / `no_op` without publishing a graph.
834
+ - Adds Agent Roles public specification planning notes for the future host-neutral RolePack project.
835
+
836
+ </details>
837
+
838
+ <details>
839
+ <summary><b>v7.2.0</b> - Role Packs And Managed Tools Release</summary>
840
+
841
+ - Adds the Role Pack surface with the built-in `ccb.archi` architecture role, role memory, Codex/Claude skill projection, and project role locks.
842
+ - Makes `ccb roles add ccb.archi:codex` the primary role onboarding command; config stores the shorthand while runtime resolves it to the local `archi` agent.
843
+ - Makes `ccb roles install/update ccb.archi` refresh role assets and dependencies by default; install/update prompts interactive users and gives non-interactive users the follow-up command.
844
+ - Adds managed tool windows such as `[tool_windows.neovim]`, plus `ccb tools install/doctor neovim`, sidebar rows, and safe reload add/remove behavior for non-agent tools.
845
+ - Includes the new `agy` / Google Antigravity provider support from `main`.
846
+
847
+ </details>
848
+
849
+ <details>
850
+ <summary><b>v7.1.1</b> - Sidebar View Height Release</summary>
851
+
852
+ - Adds three configurable sidebar sections under `[ui.sidebar.view]`: `agents_height`, `comms_height`, and `tips_height`.
853
+ - Changes the default native sidebar split to Agents `50%`, Comms `15%`, and Tips `35%`.
854
+ - Carries the height settings through config parsing, project_view payloads, reload planning, and the Rust sidebar TUI.
855
+ - Fixes reload reliability for same-name agent remounts: a dynamically unloaded retired agent can be rebuilt under the same name without `runtime_authority_already_exists`, while old stopped session records remain available for inheritance.
856
+ - Updates the inherited Codex/Claude `ccb-config` skill docs and references so generated or migrated windows topology exposes all three values.
857
+
858
+ </details>
859
+
860
+ <details>
861
+ <summary><b>v7.1.0</b> - Dynamic Reload Release</summary>
862
+
863
+ - Adds explicit hot reload for `.ccb/ccb.config`: use `ccb reload --dry-run` to preview and `ccb reload` to apply supported changes.
864
+ - Dynamically mounts append-only agents and new windows under the existing ccbd daemon without interrupting unrelated panes.
865
+ - Dynamically unloads idle removed agents and idle removed windows while preserving remaining agent panes.
866
+ - Treats config signature drift as reload-pending instead of a daemon restart trigger; busy unloads and unsafe replacements still fail closed.
867
+ - Starts the Role Pack surface with `ccb.archi`, `ccb roles ...`, project role
868
+ locks, role memory inclusion, and provider skill projection.
869
+
870
+ </details>
871
+
872
+ <details>
873
+ <summary><b>v7.0.11</b> - Provider Activity And Sidebar Focus Release</summary>
874
+
875
+ - Records provider-native activity evidence from hook artifacts so sidebar status can reflect active, pending, idle, and failed provider work more accurately.
876
+ - Refreshes sidebar panes immediately after project focus changes by invalidating the cached project view and sending an in-session refresh.
877
+ - Restores fast tmux pane click focus with direct `select-pane -t = ; send-keys -M`, avoiding the slower hidden subprocess path for ordinary pane clicks.
878
+ - Hardens namespace config, provider hook install settings, clipboard/runtime launch paths, and Codex managed trust handling with focused regression coverage.
879
+
880
+ </details>
881
+
882
+ <details>
883
+ <summary><b>v7.0.10</b> - Sidebar Tips And Tmux Controls Release</summary>
884
+
885
+ - Keeps the native sidebar as a stable three-panel view: Tree `1/3`, compact Comms `1/4`, and Tips `5/12`.
886
+ - Expands default Tips for projects without custom tips, covering pane movement and resize, window switching, copy mode, paste, and help.
887
+ - Preserves the top-right `↻` and `×` controls: `×` runs project-level `ccb kill`, while `q` and `Esc` exit only the sidebar.
888
+ - Documents and keeps CCB-managed tmux Vim controls: `mode-keys vi`, copy-mode `v` / `C-v` / `y`, `prefix+h/j/k/l`, and `prefix+H/J/K/L`.
889
+
890
+ </details>
891
+
892
+ <details>
893
+ <summary><b>v7.0.9</b> - README v7 Redesign Release</summary>
894
+
895
+ - Rebuilds `README.md` around the v7 visible multi-agent workspace, task-first onboarding, multi-agent approach comparison, v7 UI tour, Quick Start, tmux basics, config examples, and install/update flow.
896
+ - Adds real v7 terminal screenshots under `assets/readme_v7/` for the public README walkthrough.
897
+ - Preserves the README redesign plan and supporting notes under `docs/plantree/`.
898
+ - Keeps the v7.0.8 runtime, `ccb clear`, config overlay, and sidebar fixes intact while refreshing the GitHub-facing documentation package.
899
+
900
+ </details>
901
+
902
+ See [CHANGELOG.md](CHANGELOG.md) for the full history.