@seemseam/ccb 8.0.11 → 8.0.13

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 CHANGED
@@ -1,12 +1,12 @@
1
1
  <div align="center">
2
2
 
3
- # CCB - Mobile Has Arrived!
3
+ # CCB 手机 App 来了!
4
4
 
5
- **Designed around agent parity**
6
- **Visible, controllable multi-agent cooperative TUI workspace**
5
+ **基于去中心化多 Agent 设计**
6
+ **可见、可控的多 Agent 交互 TUI 工作台**
7
7
 
8
8
  <p>
9
- <img src="https://img.shields.io/badge/version-8.0.11-orange.svg" alt="version">
9
+ <img src="https://img.shields.io/badge/version-8.0.13-orange.svg" alt="version">
10
10
  <img src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-lightgrey.svg" alt="platform">
11
11
  <img src="https://img.shields.io/badge/providers-15%20CLI%20families-0B7285.svg" alt="providers">
12
12
  </p>
@@ -29,104 +29,70 @@
29
29
  <img src="https://img.shields.io/badge/Droid-3DDC84?style=flat-square&logo=android&logoColor=white" alt="Droid">
30
30
  </p>
31
31
 
32
- [中文](README_zh.md) | **English**
32
+ **中文** | [English](readme_en.md) | [日本語](readme_ja.md) | [Français](readme_fr.md) | [Deutsch](readme_de.md) | [العربية](readme_ar.md) | [Español](readme_es.md) | [Português](readme_pt.md) | [한국어](readme_ko.md) | [Русский](readme_ru.md)
33
33
 
34
- [Quick Start](#quick-start) · [Mobile App](#mobile-app) · [Rich Mode](#rich-mode-new) · [Configure Agents](#create-project-config) · [User Guide](docs/manuals/user-guide/) · [Developer Guide](docs/manuals/developer-guide/)
34
+ [快速开始](#quick-start) · [Mobile App](#mobile-app) · [Rich 模式](#rich-mode) · [配置团队](#configure-agents) · [使用文档](docs/manuals/user-guide/) · [开发文档](docs/manuals/developer-guide/)
35
35
 
36
36
  <p align="center">
37
- <img src="assets/readme_v7/ccb-hero-en-light.png" alt="CCB v7 visible multi-agent CLI workspace" width="960">
37
+ <img src="assets/readme_v7/ccb-hero-zh-light.png" alt="CCB 可见多 Agent CLI 工作台" width="960">
38
38
  </p>
39
39
 
40
40
  </div>
41
41
 
42
- ---
42
+ <a id="supported-clis"></a>
43
43
 
44
- ## Supported CLIs
44
+ ## 支持的 CLI
45
45
 
46
- Mix CLIs per agent in `.ccb/ccb.config`; actual availability depends on the local CLI installation and account access.
46
+ 你可以在 `.ccb/ccb.config` 中为不同 agent 混用不同 CLI;真实可用性取决于本机 CLI 安装状态和账号权限。
47
47
 
48
- <table>
49
- <tr>
50
- <td>Codex<br><code>codex</code></td>
51
- <td>Claude<br><code>claude</code></td>
52
- <td>Gemini<br><code>gemini</code></td>
53
- <td>Kimi<br><code>kimi</code></td>
54
- <td>MiMo<br><code>mimo</code></td>
55
- </tr>
56
- <tr>
57
- <td>Qwen<br><code>qwen</code></td>
58
- <td>Cursor<br><code>cursor</code></td>
59
- <td>GitHub Copilot CLI<br><code>copilot</code></td>
60
- <td>Crush<br><code>crush</code></td>
61
- <td>Kiro CLI<br><code>kiro</code></td>
62
- </tr>
63
- <tr>
64
- <td>Pi<br><code>pi</code></td>
65
- <td>Z.ai CLI<br><code>zai</code></td>
66
- <td>OpenCode<br><code>opencode</code></td>
67
- <td>Antigravity<br><code>agy</code></td>
68
- <td>Droid<br><code>droid</code></td>
69
- </tr>
70
- </table>
71
-
72
- **New role specification**: package skills, memory, and tool dependencies into self-contained Role Packs, then create hot-loadable and removable specialist agents.
73
-
74
- ## Why CCB?
75
-
76
- | See the work | Mix providers | Keep control |
77
- | :--- | :--- | :--- |
78
- | Every agent is a real terminal with layout control. | Run multiple CLIs concurrently from one command. | Stable background communication for multi-line task orchestration. |
79
-
80
- ## Quick Start
81
-
82
- ## Repository Layout
83
-
84
- This repository now carries both the CCB core and the mobile controller source:
85
-
86
- - core CLI, ccbd, mobile gateway, and Python tests live at the repository root;
87
- - Flutter mobile app source, mobile tools, and mobile planning docs live under
88
- [`mobile/`](mobile/).
89
-
90
- The mobile app remains a separate build surface inside the monorepo. Core
91
- commands such as `ccb update mobile` should consume released mobile artifacts
92
- or the mobile release manifest, not Android build outputs checked into source.
93
-
94
- ### 1. Install or update
95
-
96
- New installs should use the npm package:
48
+ | CLI family | Provider id |
49
+ | :--- | :--- |
50
+ | Codex | `codex` |
51
+ | Claude | `claude` |
52
+ | Gemini | `gemini` |
53
+ | Kimi | `kimi` |
54
+ | MiMo | `mimo` |
55
+ | Qwen | `qwen` |
56
+ | Cursor | `cursor` |
57
+ | GitHub Copilot CLI | `copilot` |
58
+ | Crush | `crush` |
59
+ | Kiro CLI | `kiro` |
60
+ | Pi | `pi` |
61
+ | Z.ai CLI | `zai` |
62
+ | OpenCode | `opencode` |
63
+ | Antigravity | `agy` |
64
+ | Droid | `droid` |
65
+
66
+ <a id="why-ccb"></a>
67
+
68
+ ## 为什么用 CCB?
69
+
70
+ - 强稳定的 agent 间通信能力,支持 `A -> B -> C`、`A,B -> C`、`A -> B,C` 等复杂协作关系。
71
+ - 每个 agent 都是完整原生终端,支持可见的界面排布和直接接管。
72
+ - 后台 daemon 持续运行,可以脱离前台界面保持项目状态。
73
+ - Hub 能力:一个命令同时并发运行多家 CLI provider。
74
+ - 手机远程控制器:跨 provider 语音操控、文件传输和远程终端访问。
75
+
76
+ <a id="how-to-install"></a>
77
+
78
+ ## 如何安装
79
+
80
+ 推荐使用 npm 安装或更新:
97
81
 
98
82
  ```bash
99
83
  npm install -g @seemseam/ccb
100
84
  ```
101
85
 
102
- After CCB is installed, use CCB's updater:
86
+ 安装完成后,后续更新直接使用 CCB 自带 updater
103
87
 
104
88
  ```bash
105
89
  ccb update
106
90
  ```
107
91
 
108
- Install or refresh the optional mobile controller setup:
109
-
110
- ```bash
111
- ccb update mobile
112
- ```
113
-
114
- This command checks the local mobile gateway prerequisites, guides Tailscale
115
- login/Serve setup when needed, keeps the gateway loopback-only, and prints the
116
- current Android APK download link plus pairing steps.
117
-
118
- Install or refresh the optional rich media workbench; it bundles verified binaries where possible and installs only the required terminal/media/font dependencies through the platform package manager:
119
-
120
- ```bash
121
- ccb update rich
122
- ```
123
-
124
- After rich is enabled, plain `ccb` opens the rich WezTerm launcher unless it is already running inside a CCB-managed rich WezTerm; use `ccb uninstall rich` to return to the normal terminal startup.
125
-
126
92
  <details>
127
- <summary><b>GitHub release package and source install fallbacks</b></summary>
93
+ <summary><b>GitHub release 包和源码安装兜底</b></summary>
128
94
 
129
- If npm is not available in your environment, download the matching package from [Releases](https://github.com/SeemSeam/claude_codex_bridge/releases):
95
+ 如果当前环境不方便使用 npm,可以到 [Releases](https://github.com/SeemSeam/claude_codex_bridge/releases) 下载与你的平台匹配的包,解压后安装:
130
96
 
131
97
  ```bash
132
98
  tar -xzf ccb-*.tar.gz
@@ -134,7 +100,7 @@ cd ccb-*
134
100
  ./install.sh install
135
101
  ```
136
102
 
137
- Source install is for development or temporary fallback use:
103
+ 源码安装只建议开发或临时兜底使用:
138
104
 
139
105
  ```bash
140
106
  git clone https://github.com/SeemSeam/claude_codex_bridge.git
@@ -142,25 +108,36 @@ cd claude_codex_bridge
142
108
  ./install.sh install
143
109
  ```
144
110
 
145
- Source installs link global `ccb` / `ask` back to the checkout. Regular users should prefer the npm package.
111
+ 源码安装会让全局 `ccb` / `ask` 链接回当前 checkout。普通用户更建议使用 npm 包。
146
112
 
147
113
  </details>
148
114
 
149
- Out of the box, run `ccb` from your project directory. If startup reports that `.ccb` cannot be created automatically or that the project anchor is missing, create `.ccb` manually:
115
+ <a id="quick-start"></a>
116
+
117
+ ## 快速开始
118
+
119
+ ### 1. 启动
120
+
121
+ 在工作目录执行:
122
+
123
+ ```bash
124
+ ccb
125
+ ```
126
+
127
+ 如果启动时提示无法自动创建 `.ccb` 或找不到项目锚点,需要手动创建 `.ccb` 作为项目锚点:
150
128
 
151
129
  ```bash
152
130
  mkdir -p .ccb
153
131
  ```
154
132
 
155
- <a id="create-project-config"></a>
133
+ <a id="configure-agents"></a>
156
134
 
157
- ### 2. Create project config
135
+ ### 2. 创建项目配置
158
136
 
159
- 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.
137
+ 在项目根目录创建 `.ccb/ccb.config`。推荐使用 v2 `[windows]` 拓扑:window 内的 agent 排布由 `,` `;` 控制上下堆叠和左右分栏,例如 `A,B;C,D` 接近四宫格布局。
160
138
 
161
139
  ```toml
162
140
  version = 2
163
- entry_window = "main"
164
141
 
165
142
  [windows]
166
143
  main = "main:codex"
@@ -177,1359 +154,159 @@ tips_height = "35%"
177
154
  comms_limit = 3
178
155
  ```
179
156
 
180
- 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`. It is CCB's built-in self-agent: it understands CCB commands, config authority, roles, windows, reload behavior, and common recovery paths, and can design the config with its private `ccb-config` skill. Blank projects include `ccb_self`; existing custom configs can add it with `ccb roles add agentroles.ccb_self:codex`.
181
-
182
- Validate the config:
157
+ 验证配置并启动工作台:
183
158
 
184
159
  ```bash
185
160
  ccb config validate
186
- ```
187
-
188
- Start the workspace:
189
-
190
- ```bash
191
161
  ccb
192
162
  ```
193
163
 
194
- ### 3. Collaborate
164
+ ### 3. 开始协作
195
165
 
196
- Type directly in an agent pane, or route work between agents:
166
+ 你可以直接在某个 agent pane 里输入,也可以让 agent 之间协作:
197
167
 
198
168
  ```text
199
169
  /ask reviewer review the latest parser changes and list blocking issues.
200
170
  ```
201
171
 
202
- Agents can also call `/ask` from workflow orchestration to delegate and hand off work automatically.
172
+ 也可以在工作编排中让 agent 自动调用 `/ask` 完成委派和交接。建议通过修改 agent 记忆或项目共享记忆 `.ccb/ccb_memory.md` 进行编排。
203
173
 
204
174
  <a id="mobile-app"></a>
205
175
 
206
- ### CCB Mobile Has Arrived! (Android Alpha)
176
+ ## 手机远程控制(Android
207
177
 
208
- Use your phone as a remote CCB controller: switch projects and agents, speak input, open terminal views, and transfer files.
178
+ 推荐使用手机控制 CCB:可以接入所有 CCB 项目,控制每个 agent,语音输入,并传递文件。
209
179
 
210
180
  ```bash
211
181
  ccb update mobile
212
182
  ```
213
183
 
214
- The command walks through local setup and pairing.
184
+ 该命令会指导你完成安装和配置。
215
185
 
216
186
  <p align="center">
217
- <img src="assets/readme_v7/mobile-control-chat.jpg" alt="CCB Mobile agent conversation" width="180">
218
- <img src="assets/readme_v7/mobile-control-terminal.jpg" alt="CCB Mobile terminal control" width="180">
219
- <img src="assets/readme_v7/mobile-control-files.jpg" alt="CCB Mobile file transfer" width="180">
220
- <img src="assets/readme_v7/mobile-control-pairing.jpg" alt="CCB Mobile pairing and connection" width="180">
221
- </p>
222
-
223
- <p align="center">
224
- <sub>Mobile can switch projects and agents, inspect conversations, open terminals, transfer files, and connect through scoped pairing.</sub>
187
+ <img src="assets/readme_v7/mobile-control-chat.jpg" alt="CCB Mobile agent 对话" width="180">
188
+ <img src="assets/readme_v7/mobile-control-terminal.jpg" alt="CCB Mobile 终端控制" width="180">
189
+ <img src="assets/readme_v7/mobile-control-files.jpg" alt="CCB Mobile 文件传输" width="180">
190
+ <img src="assets/readme_v7/mobile-control-pairing.jpg" alt="CCB Mobile 配对和连接" width="180">
225
191
  </p>
226
192
 
227
193
  <details>
228
- <summary><b>Mobile App details, security boundaries, and source</b></summary>
229
-
230
- CCB 8.0.11 includes the Flutter CCB Mobile source under [`mobile/`](mobile/)
231
- and publishes an Android APK as a GitHub Release asset:
194
+ <summary><b>Mobile App 详情、安全边界和源码</b></summary>
232
195
 
233
- - [Download CCB Mobile v8.0.11 APK](https://github.com/bfly123/claude_code_bridge/releases/download/v8.0.11/ccb-mobile-v8.0.11.apk)
234
- - App source: [`mobile/app`](mobile/app)
235
- - Server/gateway source: [`lib/mobile_gateway`](lib/mobile_gateway)
196
+ CCB 8.0.13 已把 Flutter 版 CCB Mobile 源码放入 [`mobile/`](mobile/),并在 GitHub Release 中发布 Android APK:
236
197
 
237
- The mobile app is a remote controller for real server-side CCB projects. It can
238
- discover all mounted CCB projects exposed by the server-wide mobile gateway,
239
- switch windows and agents, render the agent transcript, send text as pane-native
240
- input, open terminal views, and upload/download image or document attachments
241
- through the authenticated gateway.
198
+ - [下载 CCB Mobile v8.0.13 APK](https://github.com/bfly123/claude_code_bridge/releases/download/v8.0.13/ccb-mobile-v8.0.13.apk)
199
+ - App 源码:[`mobile/app`](mobile/app)
200
+ - 服务端 gateway 源码:[`lib/mobile_gateway`](lib/mobile_gateway)
242
201
 
243
- Recommended first-time setup:
202
+ 手机端定位是远程控制真实服务器上的 CCB 项目。它可以从 server-wide mobile gateway 获取所有已挂载项目,切换 window/agent,渲染 agent 对话上下文,以 pane-native 输入方式发送文本,打开 terminal 视图,并通过认证 gateway 上传/下载图片和文档附件。
244
203
 
245
- ```bash
246
- ccb update mobile
247
- ```
248
-
249
- Then follow the printed steps:
204
+ 安全边界:
250
205
 
251
- 1. Install and sign in to Tailscale on the desktop/server and the phone.
252
- 2. Start the loopback-only CCB Mobile gateway and Tailscale Serve command shown
253
- by CCB.
254
- 3. Install the APK on Android.
255
- 4. Open CCB Mobile and scan the pairing QR.
256
-
257
- Security boundaries:
258
-
259
- - The CCB gateway remains bound to loopback, such as `127.0.0.1:8787`.
260
- - Tailscale Serve is used for tailnet access; Tailscale Funnel is not enabled.
261
- - CCB does not store Tailscale passwords, OAuth tokens, admin API tokens, or
262
- alter tailnet ACLs/grants.
263
- - The phone only receives the scopes granted by the pairing profile, such as
264
- view, content, terminal, file upload, and file download.
206
+ - CCB gateway 只绑定 loopback,例如 `127.0.0.1:8787`。
207
+ - 远程访问使用 Tailscale Serve,不启用 Tailscale Funnel。
208
+ - CCB 不保存 Tailscale 密码、OAuth token、admin API token,也不会自动修改 tailnet ACL/grants。
209
+ - 手机只获得 pairing profile 授权的 scope,例如 view、content、terminal、file upload 和 file download。
265
210
 
266
211
  </details>
267
212
 
268
- <a id="rich-mode-new"></a>
213
+ <a id="rich-mode"></a>
269
214
 
270
- ### Rich Mode (NEW!)
215
+ ## Rich 富媒体终端
271
216
 
272
- Browse files, open documents, edit text, and preview media from a richer terminal workspace.
217
+ 在终端查看文件结构、打开文件、编辑文档和预览媒体内容。
273
218
 
274
219
  <p align="center">
275
- <img src="assets/readme_v7/rich-workbench.png" alt="CCB rich workbench with Yazi preview in WezTerm" width="860">
220
+ <img src="assets/readme_v7/rich-workbench.png" alt="CCB rich 富媒体工作台在 WezTerm 中使用 Yazi 预览" width="860">
276
221
  </p>
277
222
 
278
223
  ```bash
279
224
  ccb update rich
280
225
  ```
281
226
 
282
- After rich is enabled, plain `ccb` opens the rich WezTerm launcher unless it is already running inside a CCB-managed rich WezTerm; use `ccb uninstall rich` to return to the normal terminal startup.
227
+ rich 启用后,普通 `ccb` 会自动打开 rich WezTerm launcher,只有当当前已经处于 CCB 自己拉起的 rich WezTerm 中时才不会再次跳转;运行 `ccb uninstall rich` 可退回普通终端启动。
283
228
 
284
- <details>
285
- <summary><b>Rich Mode details</b></summary>
229
+ <a id="agent-roles"></a>
286
230
 
287
- Run `ccb update rich` to install the optional rich workbench; it bundles Yazi where possible, uses WezTerm for the rich terminal surface, and gives Markdown rendering plus image/PDF/video previews. After installation, plain `ccb` automatically opens this rich launcher unless it is already running inside a CCB-managed rich WezTerm; `ccb rich` remains available as an explicit launcher.
231
+ ## Agent Roles Spec 规范和角色库
288
232
 
289
- </details>
233
+ CCB 支持 [Agent Roles Spec](https://github.com/SeemSeam/agent-roles-spec):这是一个 host-neutral 的专业 agent 封装规范,可把 skills、记忆和工具依赖打包成可安装、可挂载、可卸载的 Role Pack。该仓库同时也是公开角色库。
290
234
 
291
- ### Agent Roles Spec And Role Catalog
235
+ | Role | 基本功能 |
236
+ | :--- | :--- |
237
+ | `agentroles.ccb_self` | CCB 自维护、配置辅助、运行诊断、受保护恢复和工作流编排。 |
238
+ | `agentroles.archi` | 架构审查、边界检查、耦合分析、可维护性风险和后续 gate 建议。 |
239
+ | `agentroles.frontend_engineer` | 前端设计与实现、设计系统、可访问性、浏览器 QA 和受审查的 AGY 委派。 |
240
+ | `agentroles.mobile_app_engineer` | iOS、Android、React Native、Expo、Flutter、SwiftUI、Jetpack Compose 等移动端设计与实现。 |
241
+ | `agentroles.mother` | Role 创建、Role source 审计、角色研究、蓝图设计和 Agent Roles 规范合规检查。 |
242
+ | `agentroles.su_ccb` | SU-CCB 工作流操作,覆盖需求分析、计划、派发、审查 gate、归档和恢复。 |
292
243
 
293
- CCB supports the [Agent Roles Spec](https://github.com/SeemSeam/agent-roles-spec), a host-neutral way to package specialist agents as portable Role Packs. The same repository also acts as the public role catalog.
244
+ <a id="config-memory"></a>
294
245
 
295
- <details>
296
- <summary><b>Available catalog roles</b></summary>
246
+ ## 配置和共享记忆
297
247
 
298
- | Role | Basic function |
299
- | :--- | :--- |
300
- | `agentroles.ccb_self` | CCB self-maintenance, config help, runtime diagnosis, guarded recovery, and workflow orchestration. |
301
- | `agentroles.archi` | Architecture review, boundary checks, coupling analysis, maintainability risk, and practical next-step gates. |
302
- | `agentroles.frontend_engineer` | Frontend design and implementation, design-system work, accessibility, browser QA, and reviewed AGY delegation. |
303
- | `agentroles.mobile_app_engineer` | Mobile app design and implementation across iOS, Android, React Native, Expo, Flutter, SwiftUI, and Jetpack Compose. |
304
- | `agentroles.mother` | Role creation, role-source audit, role research, blueprinting, and Agent Roles spec compliance review. |
305
- | `agentroles.su_ccb` | SU-CCB workflow operation for requirement analysis, planning, dispatch, review gates, archive, and recovery. |
248
+ 如果你不确定应该如何分组、要几个 worker、哪些 agent worktree、哪些 agent 需要独立模型或 API,可以直接问当前工作台里的 `ccb_self`。它是 CCB 内置的 self-agent,理解 CCB 命令、配置权威层、roles、windows、reload 边界和常见恢复路径,并能用私有 `ccb-config` skill 和你讨论后生成配置方案。空白项目默认包含 `ccb_self`;已有自定义配置可以用 `ccb roles add agentroles.ccb_self:codex` 添加。
306
249
 
307
- </details>
250
+ `.ccb/ccb_memory.md` 是项目级共享记忆文档,适合记录团队协作规则、项目约束、长期上下文和 agent 交接约定。把跨 agent 的稳定信息放在这里,比把同一段说明复制到多个 provider 私有记忆里更可靠。
308
251
 
309
- ### Contact
252
+ <a id="contact"></a>
253
+
254
+ ## 联系方式
310
255
 
311
256
  - Email: `bfly123@126.com`
312
- - **[Telegram group & contact](https://t.me/+BKn03v8I_ehmYzRk)**
313
- - WeChat: `seemseam-com`
257
+ - [Telegram group & contact / TG 群与联系](https://t.me/+BKn03v8I_ehmYzRk)
258
+ - 微信: `seemseam-com`
314
259
 
315
260
  <p align="center">
316
- <img src="assets/weixin.jpg" alt="WeChat group" width="240">
261
+ <img src="assets/weixin.jpg" alt="微信群" width="240">
317
262
  </p>
318
263
 
319
- ---
320
-
321
- ## More Reading
322
-
323
- Start with Quick Start for first use. Open only the reference area you need.
324
-
325
- | Topic | When to open it |
326
- | :--- | :--- |
327
- | Concepts and positioning | What CCB is, why multi-agent workflows help, and how CCB compares with other approaches. |
328
- | Daily operation | Common commands and tmux basics for routine use. |
329
- | Configuration and roles | `.ccb/ccb.config`, Role Packs, and `ccb_self` configuration help. |
330
- | Collaboration and maintenance | Ask routes, install/update notes, FAQ, and credits. |
331
- | Release notes | Current v7 highlights and historical release entries. |
332
-
333
- <details open>
334
- <summary><b>Concepts and positioning</b></summary>
335
-
336
- ### What Is CCB?
337
-
338
- 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.
339
-
340
- - **Real CLI sessions, not fake panels**: every agent pane runs the actual provider CLI.
341
- - **Visible collaboration**: the sidebar shows windows, agents, status, and communication; users can switch panes by mouse.
342
- - **Mixed providers**: one project can run Codex, Claude, Gemini, Kimi (`kimi`), MiMo (`mimo`), Qwen (`qwen`), Cursor (`cursor`), Copilot (`copilot`), Crush (`crush`), Kiro (`kiro`), Pi (`pi`), Z.ai CLI (`zai`), OpenCode, Droid, and Antigravity (`agy`) together.
343
- - **Project config**: `.ccb/ccb.config` defines the team, layout, windows, worktrees, model, key, and url.
344
- - **Built-in CCB expert**: blank projects include `ccb_self`, a self-maintenance agent with deep CCB knowledge for usage guidance, config design, diagnostics, recovery, and workflow repair.
345
- - **Roles**: a new role packaging model that lets specialized agents carrying
346
- "heavy weapons" such as independent skills, memory, and tool dependencies
347
- instantly land in a target project as hot-loadable, removable agents, while
348
- leaving the main environment, user global config, and project runtime state
349
- unchanged.
350
- - **Recoverable runtime**: CCB supervises agent panes and supports attach, restore, and project-scoped cleanup.
351
- - **Explicit collaboration channel**: agents can delegate through `/ask`, `$ask`, callback, and silence routes.
352
-
353
- ### Why Multi Agents
354
-
355
- 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.
264
+ <a id="community"></a>
356
265
 
357
- | Value | Plain meaning |
358
- | :--- | :--- |
359
- | Role separation | `main` plans, `worker` implements, `reviewer` checks risk. |
360
- | Parallel progress | One agent can edit while another reads docs, validates, or reviews. |
361
- | Model and context layering | Different agents can use different providers, models, APIs, worktrees, and memory. |
362
-
363
- <details>
364
- <summary><b>Why one agent starts to struggle</b></summary>
365
-
366
- - Mixed roles reduce context focus: one conversation tries to architect, edit, test, and review itself.
367
- - Complex task execution has a ceiling: long work needs split points, handoffs, checks, and rollback boundaries.
368
- - Cost pressure is higher: if every step needs the strongest model, even simple sub-tasks become expensive.
369
- - Tool and skill management becomes harder: a "does everything" agent also accumulates too much authority and instruction load.
370
- - Serial waiting is inefficient: when one agent is reading logs or running tests, other independent work cannot naturally continue.
371
-
372
- </details>
373
-
374
- ### Which Multi-Agent Approach Should You Use?
375
-
376
- Multi-agent systems are not one fixed shape. Use the short table first; expand the details only if you are comparing tradeoffs.
377
-
378
- | Approach | One-line summary | Best fit |
379
- | :--- | :--- | :--- |
380
- | [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. |
381
- | [Hive / OpenHive](https://github.com/aden-hive/hive) | Production-oriented multi-agent workflow harness. | You need state, recovery, observability, cost controls, and graph workflows. |
382
- | CCB | Visible, controllable local CLI-agent workspace with mixed providers. | You want Codex, Claude, Gemini, Kimi, MiMo, Qwen, Cursor, Copilot, Crush, Kiro, Z.ai CLI, OpenCode, Antigravity, and other real CLIs in one project terminal. |
383
-
384
- <details>
385
- <summary><b>Details: model choice, control, context, and complex workflows</b></summary>
386
-
387
- | Question | Claude Code native | Hive / OpenHive | CCB |
388
- | :--- | :--- | :--- | :--- |
389
- | 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, Kimi, MiMo, Qwen, Cursor, Copilot, Crush, Kiro, Z.ai CLI, OpenCode, Droid, Antigravity, and per-agent model/key/url. |
390
- | 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. |
391
- | 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. |
392
- | 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. |
393
- | Best landing zone | Fast delegation inside Claude Code. | Business automation, long-running workflows, production reliability. | Local development with visible cross-provider CLI agents. |
394
-
395
- 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.
396
-
397
- </details>
398
-
399
- </details>
400
-
401
- <details>
402
- <summary><b>Daily operation</b></summary>
403
-
404
- ### Daily Operation
405
-
406
- | Goal | Command |
407
- | :--- | :--- |
408
- | Start or reattach the current project workspace | `ccb` |
409
- | Safe start, keeping configured/manual permission behavior | `ccb -s` |
410
- | Rebuild runtime state while keeping config and same-name managed agent history | `ccb -n` |
411
- | Stop this project's background runtime | `ccb kill` |
412
- | Force cleanup before rebuilding | `ccb kill -f` then `ccb -n` |
413
- | Update to the latest stable release | `ccb update` |
414
- | Install or refresh the optional rich workbench | `ccb update rich` |
415
- | Remove rich mode and return normal startup | `ccb uninstall rich` |
416
- | Open the rich workbench | `ccb rich` |
417
- | Inspect the active config layer | `ccb config validate` |
418
- | Preview a config reload plan without changing tmux | `ccb reload --dry-run` |
419
- | Apply supported config changes without restarting other agents | `ccb reload` |
420
-
421
- ### tmux Basics
422
-
423
- 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.
424
-
425
- 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.
426
-
427
- | Goal | Function key | Notes |
428
- | :--- | :--- | :--- |
429
- | Move to an adjacent pane | `h` / `j` / `k` / `l` or Arrow keys | CCB-managed tmux sessions enable Vim-style pane focus keys. |
430
- | Resize current pane | `H` / `J` / `K` / `L` | Repeatable resize keys in Vim directions. |
431
- | Move to the next pane | `o` | Fast rotation when direction does not matter. |
432
- | Zoom / unzoom current pane | `z` | Useful for long output, diffs, and logs. |
433
- | Open window / pane list | `w` | Pick a target in larger layouts. |
434
- | Next window | `n` | Switch to the next tmux window. |
435
- | Previous window | `p` | Switch to the previous tmux window. |
436
- | Jump to numbered window | `0` to `9` | Jump directly by tmux window number. |
437
- | Enter copy / scroll mode | `[` | Review history, scroll, and select text. |
438
- | Exit copy / scroll mode | `q` or `Esc` | Return to normal input. |
439
- | Paste tmux buffer | `]` | Paste content copied into tmux's own buffer. |
440
- | Detach session | `d` | Leave the display without stopping CCB; you can reattach later. |
441
-
442
- Copy and paste tips:
443
-
444
- - **Mouse copy**: in most terminals, drag with the left mouse button to copy; if tmux captures the drag, enter copy / scroll mode first.
445
- - **Bypass tmux selection**: many terminals support `Shift + mouse drag` for native terminal selection.
446
- - **System paste**: Linux/Windows terminals usually use `Ctrl+Shift+V`; macOS terminals usually use `Cmd+V`.
447
- - **tmux paste**: if the content is in the tmux buffer, use function key `]`.
448
-
449
- <details>
450
- <summary><b>More common tmux operations</b></summary>
451
-
452
- | Goal | Function key | Notes |
453
- | :--- | :--- | :--- |
454
- | Scroll in copy / scroll mode | `PageUp` / `PageDown` / `Arrow keys` | Terminal support can vary. |
455
- | Start selection in copy / scroll mode | `v` | CCB uses tmux vi copy mode. |
456
- | Copy selection in copy / scroll mode | `y` | Copies to the tmux buffer and exits copy mode. |
457
- | Search in copy / scroll mode | `Ctrl-s` / `Ctrl-r` | Commonly forward / backward search. |
458
- | Create a window | `c` | Use only when you intentionally need another shell. |
459
- | Rename a window | `,` | Helps identify multi-window workflows. |
460
- | Show tmux key help | `?` | Useful when you forget a shortcut. |
461
-
462
- 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.
463
-
464
- </details>
465
-
466
- </details>
467
-
468
- <details>
469
- <summary><b>Configuration and roles</b></summary>
470
-
471
- ### Configure Your Agent Team
472
-
473
- CCB resolves config in three layers, from lowest to highest priority:
474
-
475
- 1. Built-in default config.
476
- 2. User config at `~/.ccb/ccb.config`.
477
- 3. Project config at `.ccb/ccb.config`.
478
-
479
- 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.
480
- The built-in default is a v2 `[windows]` config with `agent1`, `agent2`, `agent3`, and `ccb_self`. The optional rich workbench can be installed with `ccb update rich`; once enabled, normal `ccb` startup uses the rich launcher unless you run `ccb uninstall rich`. The default `ccb_self` agent uses `codex` and is bound to `agentroles.ccb_self`.
481
-
482
- `.ccb/ccb.config` mainly controls:
483
-
484
- | Config area | Syntax or location | Notes |
485
- | :--- | :--- | :--- |
486
- | Window grouping | `[windows]` | Group agents into tmux windows such as `main`, `work`, `review`, or `research`. |
487
- | Agent name and provider | `main:codex`, `reviewer:claude` | Names are used by the UI, ask routing, and memory files; provider decides which CLI starts. |
488
- | Workspace isolation | `worker1:codex(worktree)` | Gives implementation agents isolated git worktrees to reduce accidental overlap. |
489
- | Sidebar behavior | `[ui.sidebar]` | Controls whether the sidebar appears in every window, its left/right position, width, and Comms height. |
490
- | Tool windows | `[tool_windows.<name>]` | Add managed non-agent windows such as the rich workbench; they appear as one sidebar row and are not `ask` targets. |
491
- | Per-agent model/API | `[agents.<name>]` | Configure `model`, `key`, `url`, and related agent-local overrides. |
492
- | 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. |
493
- | Role description | `[agents.<name>] description = "..."` | Give an agent a short responsibility note; longer workflow rules belong in memory. |
494
-
495
- 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.
496
-
497
- 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.
498
-
499
- #### Role Packs
500
-
501
- Role Packs define reusable agent roles through the
502
- [Agent Roles Spec](https://github.com/SeemSeam/agent-roles-spec). The spec is a
503
- host-neutral package format for specialist agents: a Role carries a stable
504
- identity, responsibilities, non-goals, memory, skills, prompts, references,
505
- tools, plugin content, validation notes, and host adapter metadata as one
506
- reviewable unit.
507
-
508
- The practical value is separation. Role source stays portable and versioned;
509
- project bindings decide where that Role is mounted; runtime provider state,
510
- credentials, task progress, and generated projection output stay outside the
511
- Role. That makes specialist agents easier to install, update, audit, migrate,
512
- and remove without copying long prompts into every project or mutating user
513
- global configuration.
514
-
515
- The recommended default catalog roles are `agentroles.ccb_self`, the CCB
516
- self-maintenance role, and `agentroles.archi`, an architecture reviewer role
517
- from `agent-roles-spec` backed by Architec. `install.sh install` automatically
518
- attempts to install or refresh these recommended roles by default; `ccb update`
519
- refreshes installed roles and installs missing recommended roles in the user
520
- environment. You can also refresh manually:
521
-
522
- ```bash
523
- ccb roles list
524
- ccb roles show agentroles.archi
525
- ccb roles install agentroles.archi
526
- ccb roles update agentroles.ccb_self
527
- ccb roles update agentroles.archi
528
- ```
529
-
530
- Project role bindings stay pinned by `.ccb/role-lock.json`. `ccb update` does
531
- not rewrite project locks. When you run `ccb` inside a project, CCB checks
532
- bound role locks against the current installed roles; interactive starts ask
533
- whether to refresh stale project locks in place, and non-interactive starts
534
- print a warning only.
535
-
536
- `ccb_self` is strongly recommended for CCB projects because it is the built-in
537
- CCB expert agent. It carries CCB-specific knowledge about project config,
538
- command usage, role binding, reload boundaries, runtime diagnostics, guarded
539
- recovery, workflow repair, and single-agent restart assistance without taking
540
- over product work. Blank projects include it in the built-in default. Existing
541
- projects, and projects with user or project config that replace the built-in
542
- default, should add it explicitly where they want that maintenance agent:
543
-
544
- ```bash
545
- ccb roles add agentroles.ccb_self:codex
546
- ccb reload
547
- ```
548
-
549
- To use `agentroles.archi` in a project, add it as a window leaf:
550
-
551
- ```bash
552
- ccb roles add agentroles.archi:codex
553
- ccb reload
554
- ```
555
-
556
- This writes the compact form `agentroles.archi:codex`. At runtime CCB resolves
557
- it to the project-local agent `archi`, then projects the role memory and skills
558
- into that agent's managed provider home.
559
-
560
- <details>
561
- <summary><b>Config format examples: single window, multi-window, per-agent model/API</b></summary>
562
-
563
- #### Single-window compact config
564
-
565
- ```text
566
- cmd; main:codex, worker1:codex(worktree); reviewer:claude
567
- ```
266
+ ## 社区和致谢
568
267
 
569
- Meaning:
268
+ 感谢 [Linux.do 社区](https://linux.do) 在测试、反馈和讨论中的支持。
570
269
 
571
- - `cmd` is a shell pane, not an agent.
572
- - `main`, `worker1`, and `reviewer` are agent names.
573
- - `codex` and `claude` are providers.
574
- - `;` splits left-to-right; `,` stacks top-to-bottom.
575
- - `(worktree)` means that agent uses an isolated git worktree.
270
+ 感谢 [tmux-agent-sidebar](https://github.com/hiroppy/tmux-agent-sidebar) 提供的 sidebar 思路和启发。
576
271
 
577
- #### Multi-window topology
272
+ <a id="release-notes"></a>
578
273
 
579
- When you want planning, implementation, review, and research in different tmux windows, use `version = 2` and `[windows]`:
580
-
581
- ```toml
582
- version = 2
583
- entry_window = "main"
584
-
585
- [windows]
586
- main = "main:codex"
587
- work = "worker1:codex(worktree), worker2:claude(worktree)"
588
- review = "reviewer:claude, qa:gemini"
589
-
590
- [ui.sidebar]
591
- mode = "every_window"
592
- width = "15%"
593
- bottom_height = 20
594
- agents_height = "50%"
595
- comms_height = "15%"
596
- tips_height = "35%"
597
- comms_limit = 3
598
- ```
599
-
600
- Note: `cmd` belongs to compact/hybrid single-window layouts. Do not put `cmd` inside `[windows]`.
601
-
602
- #### Rich workbench tool window
603
-
604
- 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.
605
-
606
- ```toml
607
- version = 2
608
- entry_window = "main"
609
-
610
- [windows]
611
- main = "main:codex"
612
-
613
- [tool_windows.rich]
614
- command = "CCB_WORKBENCH_PROFILE=rich CCB_WORKBENCH_FORCE_RICH=1 ccb-workbench files"
615
- label = "rich"
616
- ```
617
-
618
- `ccb update rich` prepares the optional workbench bundle under CCB-owned XDG paths, downloads and validates bundled binaries where available, and uses the platform package manager only for required rich dependencies such as WezTerm, Markdown/PDF/image/video helpers, and recommended fonts. Under WSL, CCB can launch Windows-native `wezterm.exe` while running the rich tools inside the current Linux distro. Normal `ccb update` keeps this bundle untouched; rerun `ccb update rich` to install, repair, or refresh it. Run `ccb uninstall rich` to remove the bundle and return plain `ccb` to normal terminal startup. Set `CCB_RICH_DOWNLOAD_BINARIES=0` to skip bundled binary downloads, or `CCB_RICH_INSTALL_DEPS=0` to skip system package installation.
619
-
620
- #### Per-agent model, API key, or base URL
621
-
622
- Use compact format when layout is enough. If some agents need separate models or API routes, keep the compact header and add TOML overlays:
623
-
624
- ```toml
625
- cmd; fast:codex, deep:codex; reviewer:claude
626
-
627
- [agents.fast]
628
- model = "gpt-5-mini"
629
-
630
- [agents.deep]
631
- key = "sk-..."
632
- url = "https://api.example.com/v1"
633
- model = "gpt-5"
634
-
635
- [agents.reviewer]
636
- model = "sonnet"
637
- ```
638
-
639
- 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.
640
-
641
- </details>
642
-
643
- ### Use ccb_self For CCB Config
644
-
645
- 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.
646
-
647
- `ccb_self` is more than a config helper: it is designed as CCB's self-understanding agent. Use it when you need help using CCB, explaining the active layout, choosing an agent topology, migrating `.ccb/ccb.config`, diagnosing project runtime state, or repairing a CCB workflow.
648
-
649
- 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.
650
-
651
- Example:
652
-
653
- ```bash
654
- 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."
655
- ```
656
-
657
- For an existing project that does not already configure `ccb_self`, run
658
- `ccb roles add agentroles.ccb_self:codex` and `ccb reload` first.
659
-
660
- <details>
661
- <summary><b>ccb-config write flow and boundaries</b></summary>
662
-
663
- 1. Describe the project and team goal in natural language.
664
- 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.
665
- 3. It proposes one complete config before writing.
666
- 4. You confirm the proposal, then it edits only `.ccb/ccb.config`.
667
- 5. It validates the config and tells you to use `ccb reload --dry-run` / `ccb reload` when the change can be applied dynamically.
668
-
669
- 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.
670
-
671
- </details>
672
-
673
- </details>
674
-
675
- <details>
676
- <summary><b>Collaboration and maintenance</b></summary>
677
-
678
- ### Agent Collaboration
679
-
680
- Normal `ask` is submit-and-return: after handing work to the target agent, the current agent should not poll and wait.
681
-
682
- | Scenario | Recommended route |
683
- | :--- | :--- |
684
- | Human directly targets an agent | `/ask reviewer ...` or `$ask reviewer ...` |
685
- | Current agent is inside an active CCB task and needs a child result before replying | `ask --callback reviewer` |
686
- | Current agent sends independent work whose successful result does not need to return | `ask --silence worker1` |
687
- | Queue or status diagnostics | `pend`, `watch`, `ping`, and similar commands are diagnostics only |
688
-
689
- When an agent submits a child task, choose flags from the result intent first,
690
- then add dependency and artifact preservation only when needed:
691
-
692
- | Need | Recommended flags |
693
- | :--- | :--- |
694
- | Publish or execute work; successful result is not useful | `--silence` |
695
- | Get a short outcome: status, findings, risks, blockers, or next steps | `--compact` |
696
- | Get full consultation, analysis, report, generated doc, or structured findings | `--artifact-reply` |
697
- | Continue an active parent task only after the child result arrives | add `--callback` |
698
- | Preserve exact pasted logs, diff, JSON/YAML, table, or copied text | add `--artifact-request` |
699
- | Preserve exact input and full output | `--artifact-io` |
700
- | Short question or short handoff where inline text is enough | plain `ask` |
701
-
702
- `--callback` and `--silence` control task relationship. Artifact flags control
703
- content preservation. The automatic long-message spill is only a fallback, so
704
- use artifact flags proactively when exact input or full output matters.
705
-
706
- <details>
707
- <summary><b>Why callback matters</b></summary>
708
-
709
- 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.
710
-
711
- </details>
712
-
713
- ### Install And Update
714
-
715
- #### Requirements
716
-
717
- - Node.js and npm for the recommended npm install path
718
- - Python 3.10+
719
- - `tmux`
720
- - At least one agent CLI you plan to use, such as Codex, Claude, Gemini, Kimi, MiMo, Qwen, Cursor, Copilot, Crush, Kiro, Z.ai CLI, OpenCode, Droid, or Antigravity
721
- - Linux, macOS, or WSL
722
-
723
- 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.
724
-
725
- #### npm first
726
-
727
- For first install, prefer npm:
728
-
729
- ```bash
730
- npm install -g @seemseam/ccb
731
- ```
732
-
733
- For later updates:
734
-
735
- ```bash
736
- ccb update
737
- ```
738
-
739
- [GitHub Releases](https://github.com/SeemSeam/claude_codex_bridge/releases) remain available for environments where npm is unavailable. Source checkout install is for development, fix validation, or temporary fallback.
740
-
741
- #### Uninstall
742
-
743
- ```bash
744
- ccb uninstall
745
- ccb reinstall
746
-
747
- # Fallback from the package or source directory:
748
- ./install.sh uninstall
749
- ```
750
-
751
- ### FAQ
752
-
753
- <details>
754
- <summary><b>The expected agents did not appear</b></summary>
755
-
756
- 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.
757
-
758
- </details>
759
-
760
- <details>
761
- <summary><b>Copy/paste is awkward</b></summary>
762
-
763
- 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`.
764
-
765
- </details>
766
-
767
- <details>
768
- <summary><b>I want to migrate an old compact config to multi-window</b></summary>
769
-
770
- 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.
771
-
772
- </details>
773
-
774
- <details>
775
- <summary><b>The sidebar helper is unavailable</b></summary>
776
-
777
- 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.
778
-
779
- </details>
780
-
781
- ### Community And Credits
782
-
783
- Thanks to the [Linux.do community](https://linux.do) for testing, feedback, and discussion.
784
-
785
- Thanks to [tmux-agent-sidebar](https://github.com/hiroppy/tmux-agent-sidebar) for the sidebar ideas and inspiration.
786
-
787
- </details>
788
-
789
- <details>
790
- <summary><b>Release notes</b></summary>
791
-
792
- ### Release Notes
793
-
794
- v7 highlights:
795
-
796
- - Native CCB sidebar with per-window project view, agent status, and mouse switching.
797
- - Comms split from agent activity, making communication status and provider pane activity clearer.
798
- - `version = 2` `[windows]` topology for workflow-oriented tmux window grouping.
799
- - Explicit `ccb reload` support for dynamic agent/window load and idle unload without restarting unrelated agents.
800
- - Compact / hybrid config compatibility, so single-window teams do not need forced migration.
801
- - Hardened tmux, Ghostty, release helper, Codex trust, and provider session restore paths.
274
+ ## 新版本记录
802
275
 
803
276
  <details open>
804
- <summary><b>v8.0.0</b> - CCB Mobile Monorepo Release</summary>
277
+ <summary><b>v8.0.12</b> - Release CI 可移植性与 README 多语言同步</summary>
805
278
 
806
- - Ships the Flutter CCB Mobile source inside this repository and publishes the
807
- Android APK as a GitHub Release asset.
808
- - Adds server-wide mobile project discovery, pairing, authenticated gateway
809
- routes, pane-native message input, transcript rendering, terminal access, and
810
- image/document upload and download support.
811
- - Promotes `ccb update mobile` as the guided setup entry for Tailscale Tailnet
812
- onboarding while preserving loopback-only gateway binding and avoiding Funnel,
813
- token storage, or ACL/grant automation.
279
+ - mobile host registry 测试现在把临时 Unix socket 放到短的 `/tmp/ccb-sock-*` 路径,避免 macOS CI 触发 `AF_UNIX path too long`。
280
+ - `ccb update mobile`、README 链接、package metadata 和 mobile release manifest 对齐到 8.0.12 APK。
281
+ - 中文 README 现在是 GitHub README;英文迁移到 `readme_en.md`,并新增日语、法语、德语、阿拉伯语、西班牙语、葡萄牙语、韩语和俄语版本,所有语言保持同一章节结构。
814
282
 
815
283
  </details>
816
284
 
817
285
  <details>
818
- <summary><b>v7.7.0</b> - Runtime Accelerator Release Hardening</summary>
286
+ <summary><b>v8.0.0</b> - CCB Mobile Monorepo 发布</summary>
819
287
 
820
- - Ships the optional Rust `ccb-runtime-accelerator` in release artifacts, so
821
- installed Codex agents can use the sidecar hotpath instead of falling back to
822
- Python when the binary is expected.
823
- - Adds short runtime socket fallback for long project paths that would exceed
824
- Unix socket path limits.
825
- - Hardens callback repair and Codex binding cache invalidation, then records
826
- full regression, long-idle Codex soak, Claude callback, and mixed-provider
827
- integration evidence.
288
+ - Flutter CCB Mobile 源码正式进入本仓库,并在 GitHub Release 中发布 Android APK。
289
+ - 新增 server-wide mobile 项目发现、配对、认证 gateway 路由、pane-native 消息输入、对话上下文渲染、terminal 访问,以及图片/文档上传下载能力。
290
+ - `ccb update mobile` 提升为 Tailscale Tailnet onboarding 的统一入口,同时保持 gateway 仅监听 loopback,不启用 Funnel、不保存 token、不自动修改 ACL/grants。
828
291
 
829
292
  </details>
830
293
 
831
294
  <details>
832
- <summary><b>v7.6.19</b> - Long-Running Ask Wait Policy</summary>
295
+ <summary><b>v7.7.0</b> - Runtime Accelerator 发布加固</summary>
833
296
 
834
- - Keeps ordinary long-running `ask` jobs waiting by default instead of
835
- terminalizing them as `incomplete/heartbeat_timeout` from heartbeat
836
- diagnostics alone.
837
- - Makes Codex, Claude, and Gemini pane-backed no-terminal timeouts opt-in by
838
- default while preserving explicit reliability timeout policies.
839
- - Validated with a 32-minute source-runtime ask smoke: the job stayed running
840
- past 30 minutes, then completed with `result_message` and no
841
- `heartbeat_timeout`/`incomplete` evidence.
297
+ - Release artifacts 现在会携带可选 Rust `ccb-runtime-accelerator`,安装版 Codex agent 在预期存在 sidecar 时不再静默退回 Python 热路径。
298
+ - 当项目路径导致 Unix socket 路径过长时,accelerator socket 会自动落到短的 per-user runtime socket root。
299
+ - 加固 callback repair 和 Codex binding cache invalidation,并记录完整回归、长 idle Codex soak、Claude callback 和混合 provider 集成测试证据。
842
300
 
843
301
  </details>
844
302
 
845
303
  <details>
846
- <summary><b>v7.6.18</b> - CCB UI Theme Preference</summary>
847
-
848
- - Adds `ccb theme` as the top-level theme switch for CCB-owned tmux/sidebar UI,
849
- with `+` and `-` cycling across dark and light palettes.
850
- - Adds readable light-mode tmux status, pane border, sidebar, activity, and
851
- comms status colors for light terminal backgrounds.
852
- - Makes generated rich WezTerm profiles follow the same global CCB theme
853
- preference on the next launch/reload.
304
+ <summary><b>v7.6.19</b> - 长任务 ask 默认等待策略</summary>
854
305
 
855
- </details>
856
-
857
- <details>
858
- <summary><b>v7.6.17</b> - Codex Log Symlink Target Repair</summary>
859
-
860
- - Repairs managed Codex `logs_2.sqlite` temp symlink targets when
861
- `/tmp/ccb-codex-logs-*` cleanup removes the target directory between starts.
862
- - Falls back by removing an unrecoverable broken symlink and restoring the local
863
- backup before Codex initializes its SQLite databases.
864
- - Adds regression coverage for the missing symlink target parent startup path.
865
-
866
- </details>
867
-
868
- <details>
869
- <summary><b>v7.6.16</b> - Codex SQLite Migration Recovery</summary>
870
-
871
- - Fixes the managed Codex `logs_2.sqlite` redirect so CCB no longer
872
- pre-creates Codex-owned SQLite schema; Codex runs its own migrations first.
873
- - Installs the CCB diagnostic insert-block trigger only after Codex has created
874
- the log database and `_sqlx_migrations` records.
875
- - Repairs bad temporary log databases left by the intermediate policy by moving
876
- them aside and letting Codex recreate them through the normal migration path.
877
-
878
- </details>
879
-
880
- <details>
881
- <summary><b>v7.6.15</b> - Codex Diagnostics And Sidebar Focus</summary>
882
-
883
- - Redirects managed Codex `logs_2.sqlite` diagnostic writes to temporary
884
- storage by default and blocks diagnostic log inserts, while diagnostics mode
885
- can restore the original database path for troubleshooting.
886
- - Falls back to the in-place diagnostic trigger path when the temporary SQLite
887
- symlink cannot be installed.
888
- - Fixes sidebar clicks for agents in other tmux windows by selecting the target
889
- window before selecting the pane, with pane-id fallback when window metadata
890
- is missing.
891
-
892
- </details>
893
-
894
- <details>
895
- <summary><b>v7.6.14</b> - Mobile Gateway Alpha And Codex Diagnostics</summary>
896
-
897
- - Adds the mobile gateway alpha surface: authenticated pairing, focus routes,
898
- terminal open/resume/history routes, websocket terminal frames, public route
899
- metadata, and device revocation commands.
900
- - Adds right-side sidebar placement and flattened `[ui.sidebar]` rendering while
901
- keeping legacy `[ui.sidebar.view]` input compatible.
902
- - Supports multiple local agents sharing one Role Pack role id without
903
- collapsing them into a single runtime identity.
904
- - Reduces Codex diagnostic SQLite churn by filtering TRACE/DEBUG log rows by
905
- default while preserving INFO/ERROR rows; `CCB_CODEX_DIAGNOSTIC_LOGS=1`
906
- disables the filter.
907
-
908
- </details>
909
-
910
- <details>
911
- <summary><b>v7.6.13</b> - Provider Profile Overlay Fixes</summary>
912
-
913
- - Codex plugin overrides now resolve in the intended order: inherited source
914
- config, `provider_profile.plugins`, then `CCB_CODEX_PLUGIN_OVERRIDES_JSON` /
915
- `CCB_CODEX_PLUGIN_OVERRIDES`.
916
- - Codex agents without an inherited `config.toml` now still materialize
917
- `provider_profile.plugins` into managed `config.toml`.
918
- - Claude `provider_profile.mcp_servers` now works even when the source
919
- `.claude.json` does not exist, and `enabled = false` clears stale managed MCP
920
- servers from the agent trust file.
921
- - Callback continuations now preserve the upstream finalization target, and
922
- inherited ask skills remind agents not to answer callback continuations before
923
- upstream results are available.
924
-
925
- </details>
926
-
927
- <details>
928
- <summary><b>v7.6.12</b> - Claude MCP And Hook Inheritance</summary>
929
-
930
- - Managed Claude agents now inherit Claude Code MCP configuration from the
931
- source `.claude.json`, including global `mcpServers` and current
932
- project/workspace MCP server state.
933
- - Project-level MCP state is mapped only onto the current managed workspace key,
934
- so unrelated source project records are not copied into the agent home.
935
- - Source-home Claude Code hooks are merged with CCB-managed finish/activity
936
- hooks, so installed user hook tools stay visible after agent restart.
937
- - Managed Claude `.claude.json` is treated as secret provider state because MCP
938
- definitions may include environment variables or auth-adjacent launch data.
939
-
940
- </details>
941
-
942
- <details>
943
- <summary><b>v7.6.11</b> - Layout Percent And Codex MCP Overlays</summary>
944
-
945
- - Adds explicit pane split ratios in layout tokens, such as
946
- `agent1:codex@30`, while preserving the existing even-split default when no
947
- suffix is present.
948
- - Adds source-controlled per-agent Codex MCP overlays through
949
- `provider_profile.mcp_servers`; same-name MCP servers override inherited
950
- Codex config and different names are additive.
951
- - Preserves trusted Codex command hooks during managed Codex home projection,
952
- improves sidebar Comms/Tips scrolling and resizing, and exposes more reply
953
- artifact evidence in `ccb trace`.
954
-
955
- </details>
956
-
957
- <details>
958
- <summary><b>v7.6.10</b> - Z.ai Provider Support</summary>
959
-
960
- - Adds managed optional Z.ai CLI provider support with `provider = "zai"`,
961
- visible `zai --directory` panes, and per-job `zai --prompt` execution.
962
- - Uses Z.ai's native subprocess completion boundary: process exit plus
963
- assistant stdout extraction from JSONL output, without model-printed
964
- `CCB_DONE`.
965
- - Adds `ZAI_START_CMD`, provider session/pathing support, deterministic stubs,
966
- focused execution tests, and README/provider list updates.
967
-
968
- </details>
969
-
970
- <details>
971
- <summary><b>v7.6.9</b> - Kimi And AGY Provider Reliability</summary>
972
-
973
- - Kimi execution now records receipt, no-captured-output diagnostics, trace,
974
- and resume metadata so missing replies and recovered turns are easier to
975
- diagnose.
976
- - AGY prompt delivery now waits for ready evidence, handles pane fallback and
977
- ambiguous tmux send outcomes, and reports coalesced request diagnostics more
978
- clearly.
979
- - Dispatcher, mailbox trace, and text artifact diagnostics now expose the
980
- provider details needed to investigate Kimi/AGY delivery and completion edge
981
- cases.
982
-
983
- </details>
984
-
985
- <details>
986
- <summary><b>v7.6.8</b> - Role Pack Current Store</summary>
987
-
988
- - Role Pack runtime lookup now follows the installed current package under
989
- `.roles/installed/<role-id>/current`; legacy multi-version stores remain
990
- compatibility input only.
991
- - Project `.ccb/role-lock.json` files are now legacy diagnostics: CCB no
992
- longer writes them, adopts from them, or suppresses role memory and skills
993
- because of stale lock residue.
994
- - Provider launch sessions record role id, version, and digest; restart now
995
- fails explicitly when the launch digest differs from installed current instead
996
- of silently resuming an old provider conversation.
997
- - Release artifact metadata patching now targets `ccb.py` after the bash
998
- launcher split, keeping built tarballs on the intended version.
999
-
1000
- </details>
1001
-
1002
- <details>
1003
- <summary><b>v7.6.7</b> - Rich Workbench Closure</summary>
1004
-
1005
- - Plain `ccb` and `ccb rich` now launch the CCB-managed rich WezTerm unless
1006
- already inside that managed rich session; ordinary external WezTerm sessions
1007
- no longer suppress rich auto-start.
1008
- - Runtime entrypoints share the `_ccb-python` launcher, keeping installed and
1009
- source command execution pinned to the intended Python interpreter.
1010
- - Built-in defaults keep `ccb_self` in its own `claude` window, while ordinary
1011
- default startup still avoids standalone Neovim tool windows.
1012
-
1013
- </details>
1014
-
1015
- <details>
1016
- <summary><b>v7.6.6</b> - Role Store Home Pinning</summary>
1017
-
1018
- - Pins role store lookup outside managed provider homes so provider session
1019
- `HOME` rewrites no longer make role checks search provider-local `.roles`
1020
- directories.
1021
- - Preserves `AGENT_ROLES_STORE` through CCB launch boundaries and falls back to
1022
- the real source/account home role store when no explicit store is set.
1023
- - Missing role diagnostics now print the resolved role store path, making
1024
- provider-home drift easier to identify.
1025
-
1026
- </details>
1027
-
1028
- <details>
1029
- <summary><b>v7.6.5</b> - Rich WezTerm IME</summary>
1030
-
1031
- - Enables IME support in the generated rich WezTerm config and maps
1032
- `XMODIFIERS=@im=...` into WezTerm's XIM name so X11 fcitx/ibus input works
1033
- for Chinese and other IME-backed text.
1034
- - Generated `ccb-workbench` wrappers now detect running or installed
1035
- `fcitx5`, `fcitx`, or `ibus-daemon` before launching WezTerm, while
1036
- preserving any user-provided input-method environment.
1037
- - Keeps the v7.6.4 green release surface and all v7.6.2 rich/tmux fixes intact
1038
- for npm latest install testing.
1039
-
1040
- </details>
1041
-
1042
- <details>
1043
- <summary><b>v7.6.4</b> - macOS Release Install Smoke</summary>
1044
-
1045
- - Keeps the 7.6.3 macOS temporary-root hardening and updates the CI release
1046
- install smoke to use the explicit temporary-bin override for its isolated
1047
- sibling `CODEX_BIN_DIR`.
1048
- - Leaves user-facing installer safety intact while allowing the release
1049
- workflow to validate macOS package installation from a temporary smoke root.
1050
- - Keeps the v7.6.2 rich workbench and tmux single-status-row fixes intact for
1051
- user install testing.
1052
-
1053
- </details>
1054
-
1055
- <details>
1056
- <summary><b>v7.6.3</b> - macOS CI Green Patch</summary>
1057
-
1058
- - Fixes macOS temporary-root detection for install guards by recognizing the
1059
- resolved `${TMPDIR:-/tmp}` parent used by GitHub Actions runners.
1060
- - Aligns doctor temporary implementation detection with macOS `/tmp` symlink
1061
- behavior, preventing false red CI on `/private/tmp` and
1062
- `/private/var/folders/...` paths.
1063
- - Keeps the v7.6.2 rich workbench and tmux single-status-row fixes intact for
1064
- user install testing.
1065
-
1066
- </details>
1067
-
1068
- <details>
1069
- <summary><b>v7.6.2</b> - Rich Workbench Hotfix</summary>
1070
-
1071
- - Allows `rich` in `.ccb/ccb.config` as a tool/layout alias without requiring
1072
- a provider runtime; it materializes as a managed tool pane/window and is not
1073
- an `ask` target.
1074
- - After `ccb update rich` enables the bundle, plain `ccb` can use the rich
1075
- launcher outside an existing rich/WezTerm session while avoiding recursive
1076
- WezTerm launches.
1077
- - Adds `ccb uninstall rich`, `ccb rich uninstall`, and `ccb rich disable` for
1078
- returning to normal CCB startup without changing full `ccb uninstall`
1079
- behavior.
1080
- - Rich updates clean only CCB-owned legacy editor roots and links, leaving
1081
- user-owned editor installs and personal config untouched.
1082
-
1083
- </details>
1084
-
1085
- <details>
1086
- <summary><b>v7.6.1</b> - Rich Workbench Binary Packaging</summary>
1087
-
1088
- - `ccb update rich` now bundles verified Yazi/ya binaries where possible before
1089
- falling back to package managers.
1090
- - Linux rich installs prefer official Yazi musl builds before GNU builds to
1091
- avoid newer glibc requirements on older stable distributions.
1092
- - Downloaded Yazi binaries must pass `--version` validation before activation,
1093
- and invalid managed binaries are removed so fallback paths remain available.
1094
- - Under WSL, rich launchers can use Windows-native `wezterm.exe` while keeping
1095
- CCB, Yazi, and preview helpers inside the current Linux distro.
1096
-
1097
- </details>
1098
-
1099
- <details>
1100
- <summary><b>v7.6.0</b> - Rich Workbench Lifecycle</summary>
1101
-
1102
- - Makes rich workbench an explicit optional bundle installed with
1103
- `ccb update rich`.
1104
- - Keeps ordinary `install.sh install` and `ccb update` focused on CCB itself;
1105
- they no longer auto-provision standalone Neovim.
1106
- - Public `ccb tools ... neovim` routes now refuse standalone provisioning and
1107
- point users to `ccb update rich`; `ccb rich` launches only an installed and
1108
- enabled rich bundle.
1109
- - Restores the CCB tmux status bar to one line by removing the old second-line
1110
- copy hint.
1111
-
1112
- </details>
1113
-
1114
- <details>
1115
- <summary><b>v7.5.3</b> - Kimi Runtime Reliability And Hindsight Compatibility</summary>
1116
-
1117
- - Adds Kimi runtime hardening without changing other provider execution paths:
1118
- Kimi can fall back to stable pane evidence for K2.7 Code when the native turn
1119
- log does not expose a completed reply in time.
1120
- - Makes Kimi Hindsight memory opt-in at the CCB execution boundary. It activates
1121
- only when `.hindsight/kimi.json`, `.hindsight/codex.json`,
1122
- `HINDSIGHT_API_URL`, or `HINDSIGHT_BANK_ID` is configured, and failures remain
1123
- non-blocking provider diagnostics.
1124
- - Preserves trusted Codex command hooks, including Hindsight Codex hooks, when
1125
- CCB materializes managed Codex homes. Operators can extend the allowlist with
1126
- `CCB_CODEX_INHERITED_HOOK_EVENTS` and
1127
- `CCB_CODEX_INHERITED_COMMAND_HOOK_MARKERS`; arbitrary root hooks remain
1128
- filtered out.
1129
- - Accepts both `HINDSIGHT_API_KEY` and `HINDSIGHT_API_TOKEN` for the Kimi
1130
- bridge and the `scripts/hindsight` helper.
1131
- - Documents the supported provider surface more clearly in the README while
1132
- keeping unrelated provider behavior unchanged.
1133
-
1134
- </details>
1135
-
1136
- <details>
1137
- <summary><b>v7.5.2</b> - Native CLI Provider Wave</summary>
1138
-
1139
- - Adds built-in optional provider ids for Qwen Code (`qwen`), Cursor Agent
1140
- (`cursor`), GitHub Copilot CLI (`copilot`), Crush (`crush`), Kiro CLI
1141
- (`kiro`), Pi (`pi`), and Z.ai CLI (`zai`).
1142
- - Uses native per-job CLI execution and provider-owned completion signals:
1143
- stream-json / JSON result events for Qwen, Cursor, Copilot, and Pi; process
1144
- exit plus stdout for Crush, Kiro, and Z.ai CLI. These adapters do not require
1145
- model-printed `CCB_DONE`; Pi terminalizes on native `turn_end`.
1146
- - Adds `QWEN_START_CMD`, `CURSOR_START_CMD`, `COPILOT_START_CMD`,
1147
- `CRUSH_START_CMD`, `KIRO_START_CMD`, `PI_START_CMD`, and `ZAI_START_CMD`
1148
- command overrides plus provider session bindings, runtime launchers,
1149
- deterministic stubs, and focused
1150
- execution tests.
1151
-
1152
- </details>
1153
-
1154
- <details>
1155
- <summary><b>v7.5.1</b> - MiMo Provider Release Surface</summary>
1156
-
1157
- - Adds MiMo Code to the public README provider strip with a Xiaomi-branded
1158
- MiMo badge and updates the top-level positioning to eight CLI families.
1159
- - Publishes the committed MiMo native provider integration in the 7.5 line:
1160
- managed `mimo` panes, `MIMO_START_CMD`, generated MiMo instructions, and
1161
- `mimo run --pure --format json` completion parsing.
1162
- - Synchronizes npm package metadata and release workflow defaults with the
1163
- new patch release.
1164
-
1165
- </details>
1166
-
1167
- <details>
1168
- <summary><b>v7.5.0</b> - Native CLI Providers And Homepage Sync</summary>
1169
-
1170
- - Adds managed native CLI provider support for Kimi plus broader native CLI
1171
- runtime groundwork, including runtime specs, session bindings, command
1172
- overrides, and cleanup coverage.
1173
- - Moves Kimi and Antigravity completion detection toward provider-owned
1174
- session or transcript evidence instead of requiring model-printed `CCB_DONE`.
1175
- - Uses Kimi's current `--auto-approve` flag for CCB auto-permission while
1176
- recognizing legacy/alias flags such as `--auto`, `--yes`, `-y`, and `--yolo`.
1177
- - Synchronizes the English and Chinese README homepages with refreshed hero
1178
- assets and the seven public CLI-family positioning.
1179
-
1180
- </details>
1181
-
1182
- <details>
1183
- <summary><b>v7.4.4</b> - Claude End-Turn And npm Release Surface</summary>
1184
-
1185
- - Completes Claude pane-backed asks promptly when a primary assistant response
1186
- emits `stop_reason=end_turn` with an observed request anchor and non-empty
1187
- reply, avoiding the previous 900-second timeout path.
1188
- - Treats empty session-boundary terminal events with no prior assistant reply
1189
- as `incomplete/task_complete_empty_reply` with empty-provider diagnostics.
1190
- - Restores the `@seemseam/ccb` npm release surface with package metadata, CLI
1191
- runner wrappers, and tag-triggered Trusted Publishing after GitHub release
1192
- assets are available.
1193
- - Refreshes the v7 README homepage around canonical hero assets, npm-first
1194
- install, and clearer `ccb_self` guidance.
1195
-
1196
- </details>
1197
-
1198
- <details>
1199
- <summary><b>v7.4.3</b> - PR #225 Reliability Follow-Up</summary>
1200
-
1201
- - Restores the Claude launcher contract: inline `--settings` now reflects the
1202
- materialized settings overlay without injecting provider env into settings
1203
- JSON.
1204
- - Fixes Claude WSL Windows-executable environment forwarding so path variables
1205
- use `/p` translation while `ANTHROPIC_*` API values pass through as raw env
1206
- names.
1207
- - Hardens Antigravity resume lookup for SQLite `bytes`, `str`, and
1208
- `memoryview` metadata and falls back to `--continue` if lookup fails.
1209
- - Adds regression tests for the Claude settings contract, WSL API env
1210
- forwarding, and AGY resume fallback behavior.
1211
-
1212
- </details>
1213
-
1214
- <details>
1215
- <summary><b>v7.4.2</b> - Self-Supervision And Empty Reply Guards</summary>
1216
-
1217
- - Hardens CCB self-supervision with bounded provider-runtime snapshots,
1218
- project-view activity evidence, suspicion envelopes, and a self-first
1219
- diagnosis path.
1220
- - Treats empty Claude/Gemini hook replies, Codex protocol `task_complete`
1221
- empty replies, and AGY done-marker empty replies as `incomplete` with
1222
- diagnostics.
1223
- - Preserves intentional no-reply behavior: `--silence` success remains
1224
- completed, callback parent `callback_pending` remains legal, and abnormal
1225
- silent completions stay diagnosable.
1226
- - Tightens default Role Pack install and project role-lock refresh handling for
1227
- `agentroles.archi` and `agentroles.ccb_self`.
1228
-
1229
- </details>
1230
-
1231
- <details>
1232
- <summary><b>v7.4.1</b> - Maintenance Heartbeat And ccb_self Defaults</summary>
1233
-
1234
- - Hardens the project-scoped maintenance heartbeat runner, schedule handling,
1235
- activation suppression, and diagnostics evidence paths while keeping
1236
- heartbeat opt-in.
1237
- - Adds `ccb_self:codex` bound to canonical `agentroles.ccb_self` in the
1238
- built-in blank-project default and refreshes the recommended role during
1239
- install/update provisioning without rewriting existing custom configs.
1240
- - Aligns CCB source with the `agent-roles-spec` role id
1241
- `agentroles.ccb_self`; `agentrole.ccb_self` is accepted only as legacy input
1242
- compatibility.
1243
- - Tightens generated config authority, Role Pack hook paths, and Codex prompt
1244
- delivery acceptance guards.
1245
- - Adds the `ccb_self` expert manual, plan decisions, and tests for expert
1246
- reference and communication recovery guidance.
1247
-
1248
- </details>
1249
-
1250
- <details>
1251
- <summary><b>v7.4.0</b> - ccb_self Maintenance Role</summary>
1252
-
1253
- - Adds the `agentroles.ccb_self` self-maintenance Role Pack path for CCB config
1254
- ownership, diagnostics, guarded recovery, chain repair, and single-agent
1255
- restart assistance.
1256
- - Moves full `ccb-config` into the private `ccb_self` Role skill instead of a
1257
- globally inherited skill.
1258
- - Installs or refreshes recommended default Role Packs, including
1259
- `agentroles.ccb_self`, during install/update Role Pack provisioning.
1260
- - Adds `ccb_self:codex` bound to `agentroles.ccb_self` in the built-in blank
1261
- project default; existing custom configs can still add
1262
- `agentroles.ccb_self:codex` explicitly.
1263
-
1264
- </details>
1265
-
1266
- <details>
1267
- <summary><b>v7.3.8</b> - AGY Adapter And Project Tmux History</summary>
1268
-
1269
- - Adds the Antigravity (`agy`) `pane_quiet` execution adapter with protocol parsing, command dispatch, polling, and docs for managed provider operation.
1270
- - Preserves 50000 lines of scrollback history for CCB-managed project tmux sessions, including project namespace create/reuse and detached runtime fallback paths.
1271
- - Keeps tmux mouse, vi key, clipboard, focus, and history policies consistently reapplied after the authoritative project session exists.
1272
- - Hardens Claude startup by passing inline `--settings` JSON when possible, preserving non-ASCII source paths through provider launch.
1273
-
1274
- </details>
1275
-
1276
- <details>
1277
- <summary><b>v7.3.7</b> - Ask Parameter Policy And Skill Guidance</summary>
1278
-
1279
- - Updates inherited Claude, Codex, and Droid ask skills to choose flags from result intent first: `--silence`, `--compact`, `--artifact-reply`, or plain `ask`.
1280
- - Keeps dependency handling explicit by adding `--callback` only when an active parent job must wait for a child result.
1281
- - Separates artifact transport from task relationship: use `--artifact-request` and `--artifact-io` when exact input or input/output preservation matters.
1282
- - Adds the Agent Collaboration ask-parameter quick reference to README and README_zh.
1283
- - Adds the ask-parameter-policy plan tree, decision records, parameter matrix, and validation notes.
1284
-
1285
- </details>
1286
-
1287
- <details>
1288
- <summary><b>v7.3.6</b> - Provider Memory Ownership Cleanup</summary>
1289
-
1290
- - 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.
1291
- - Filters legacy CCB install marker blocks and old collaboration sections only from provider user memory, without rewriting user-owned memory files.
1292
- - Updates the default `.ccb/ccb_memory.md` template to v5 and removes the duplicate Ask Communication block already supplied by managed CCB memory.
1293
- - Adds seed-aware shared memory migration, upgrading only unedited old generated templates while preserving edited project memory.
1294
- - 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.
1295
- - Keeps source runtime startup import-safe by avoiding the tmux UI version detection cycle under `ccb_test`.
1296
-
1297
- </details>
1298
-
1299
- <details>
1300
- <summary><b>v7.3.5</b> - Tmux Border Hook Hotfix</summary>
1301
-
1302
- - 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.
1303
- - Makes border hooks use `run-shell -b` with an executable guard, so stale script paths do not spam tmux errors.
1304
- - 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.
1305
- - v7.3.4 is withdrawn/prerelease; use v7.3.5 or newer as the stable upgrade target.
1306
-
1307
- </details>
1308
-
1309
- <details>
1310
- <summary><b>v7.3.4</b> - Withdrawn Prerelease</summary>
1311
-
1312
- - 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.
1313
- - Aligns `ccb roles install/update/doctor agentroles.archi` with the npm-provided `archi` CLI and bundled Hippo/llmgateway capabilities.
1314
- - Updates `bin/ccb-arch` to forward to `archi`, with a clear `npm install -g @seemseam/archi` hint when the CLI is missing.
1315
- - Fixes sidebar focus/refresh handling so selecting agents from the sidebar no longer restarts panes unnecessarily.
1316
- - Withdrawn because tmux border hooks could persist temporary release paths and later report `ccb-border.sh ... returned 127`; use v7.3.5 or newer.
1317
- - Adds the guarded `ccb_test` source entrypoint for isolated source-checkout validation without affecting installed CCB.
1318
- - Disables OpenCode autoupdate for managed panes through `opencode.json` and `OPENCODE_DISABLE_AUTOUPDATE=true`.
1319
- - Refreshes inherited `ccb-config` skills for config-only use, language-following behavior, YAML description quoting, clearer menu grouping, and sidebar pane restart guidance.
1320
- - Adds the config-designer UI plan tree and includes the main-branch `@percent` layout token plus Antigravity lifecycle cleanup updates.
1321
-
1322
- </details>
1323
-
1324
- <details>
1325
- <summary><b>v7.3.3</b> - Withdrawn Draft</summary>
1326
-
1327
- - 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.
1328
-
1329
- </details>
1330
-
1331
- <details>
1332
- <summary><b>v7.3.2</b> - First-Install Role Pack Provisioning Hotfix</summary>
1333
-
1334
- - Fixes a blank-environment first install bug where `install.sh` tried to update `agentroles.archi` before it was installed, leaving Role Pack provisioning incomplete.
1335
- - 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.
1336
- - Aligns optional Role Pack skip messaging with the install path.
1337
- - 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.
1338
-
1339
- </details>
1340
-
1341
- <details>
1342
- <summary><b>v7.3.1</b> - Agent Roles, Artifact Ask, And Shared Workspace Release</summary>
1343
-
1344
- - Adds daemon-managed ask artifact transport with `--artifact-request`, `--artifact-reply`, and `--artifact-io`, including callback-compatible artifact replies for long outputs.
1345
- - Finalizes the Agent Roles store path around the external `agent-roles` manager and `.roles/installed`, while preserving `ccb.archi` compatibility for `agentroles.archi`.
1346
- - 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.
1347
- - Fixes Claude startup under root, OpenCode `ccb clear` submit timing after restored sessions, and managed Neovim activation so the original runtime path is preserved.
1348
- - Refreshes inherited `ask` and `ccb-config` skills for submit-only ask rules, artifact modes, windows-first config, shared workspaces, and provider command templates.
1349
- - Stabilizes WSL/root release tests by making non-root Claude command assertions independent from the runner UID.
1350
-
1351
- </details>
1352
-
1353
- <details>
1354
- <summary><b>v7.3.0</b> - Superseded Prerelease</summary>
1355
-
1356
- - 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.
1357
-
1358
- </details>
1359
-
1360
- <details>
1361
- <summary><b>v7.2.12</b> - Agent Roles Store Migration Release</summary>
1362
-
1363
- - Uses the external `agent-roles` package manager by default for Role Pack install, update, and sync.
1364
- - Writes Role Pack payloads into the spec-owned `.roles/installed` store.
1365
- - Copies existing legacy installed role snapshots into `.roles/installed` without deleting the old store; runtime lookup reads the spec-owned store only after migration.
1366
- - Routes `ccb roles update --path ...` through the Agent Roles manager so path updates also write `.roles/installed`.
1367
- - Supersedes v7.2.11, which was an incomplete opt-in preview release and should not be used as the recommended release.
1368
-
1369
- </details>
1370
-
1371
- <details>
1372
- <summary><b>v7.2.11</b> - Superseded Agent Roles Opt-In Preview</summary>
1373
-
1374
- - 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.
1375
-
1376
- </details>
1377
-
1378
- <details>
1379
- <summary><b>v7.2.10</b> - Role Pack Post-Update Hotfix</summary>
1380
-
1381
- - 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.
1382
- - 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.
1383
- - 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.
1384
- - Keeps new config guidance on `agentroles.archi`; `ccb.archi` remains a legacy input alias only.
1385
-
1386
- </details>
1387
-
1388
- <details>
1389
- <summary><b>v7.2.9</b> - Agent Roles Catalog Release</summary>
1390
-
1391
- - Moves the production architecture role out of the CCB source tree and consumes `agentroles.archi` from `agent-roles-spec`.
1392
- - Adds catalog-backed role list/install/update/sync/add/doctor behavior with installed-role metadata, project locks, digest pinning, and explicit re-add updates.
1393
- - Projects role memory, CCB adapter memory, provider skills, and Architec adapter hooks into managed provider homes.
1394
- - Keeps `ccb.archi` as a compatibility alias while writing canonical `agentroles.archi` bindings and locks.
1395
- - Fixes the source runtime guard so `ccb --project <allowed-test-dir> ...` smoke commands launched from the source checkout pass the release gate.
1396
- - Passes generated soak, fastpath, and storage cleanup smoke roots through `CCB_SOURCE_ALLOWED_ROOTS`.
1397
- - Passes the WSL mounted startup smoke project under `/mnt/c/Temp` through `CCB_SOURCE_ALLOWED_ROOTS`.
1398
- - Hardens the Claude restart provider blackbox test to wait for the running partial reply before asserting it.
1399
- - Hardens Role Pack CI fixtures so full GitHub Actions tests do not require a sibling `agent-roles-spec` checkout.
1400
-
1401
- </details>
1402
-
1403
- <details>
1404
- <summary><b>v7.2.8</b> - Superseded Role Fixture Hotfix</summary>
1405
-
1406
- - 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.
1407
-
1408
- </details>
1409
-
1410
- <details>
1411
- <summary><b>v7.2.7</b> - Superseded WSL Mounted Smoke Hotfix</summary>
1412
-
1413
- - Superseded by v7.2.8 after the release gate found a provider blackbox timing race in the Claude restart partial-reply assertion.
1414
-
1415
- </details>
1416
-
1417
- <details>
1418
- <summary><b>v7.2.6</b> - Superseded Official Smoke Root Hotfix</summary>
1419
-
1420
- - 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`.
1421
-
1422
- </details>
1423
-
1424
- <details>
1425
- <summary><b>v7.2.5</b> - Superseded Source Runtime Guard Hotfix</summary>
1426
-
1427
- - 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`.
1428
-
1429
- </details>
1430
-
1431
- <details>
1432
- <summary><b>v7.2.4</b> - Superseded Agent Roles Catalog Release</summary>
1433
-
1434
- - 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.
1435
-
1436
- </details>
1437
-
1438
- <details>
1439
- <summary><b>v7.2.3</b> - Root Install Support Validation Hotfix</summary>
1440
-
1441
- - Keeps the root install confirmation behavior from v7.2.2: root installs require explicit confirmation, while uninstall remains ungated.
1442
- - Preserves install identity metadata and `ccb doctor` runtime user/owner/root diagnostics.
1443
- - Fixes WSL release validation by making install metadata tests explicitly simulate non-root identity where required.
1444
-
1445
- </details>
1446
-
1447
- <details>
1448
- <summary><b>v7.2.2</b> - Root Install Confirmation Release</summary>
1449
-
1450
- - 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.
1451
- - Keeps uninstall cleanup outside the root confirmation gate, so root-owned installs can still be removed.
1452
- - Records install identity metadata including root status, install user, and sudo user details.
1453
- - Extends `ccb doctor` with runtime user, owner, root state, and a warning when root runs inside a non-root project.
1454
- - Fixes the non-blocking build-info type hygiene issue by returning `dict[str, object]` from `read_build_info()`.
1455
-
1456
- </details>
1457
-
1458
- <details>
1459
- <summary><b>v7.2.1</b> - Antigravity Runtime Follow-Up</summary>
1460
-
1461
- - Completes `agy` / Google Antigravity runtime and session plumbing with provider runtime specs, client specs, public provider-core exports, and `.agy-<agent>-session` naming.
1462
- - Adds regression coverage for named Antigravity pane launches using `AGY_START_CMD`, auto-permission, restore continuation, and prepared-state compatibility.
1463
- - Aligns README provider lists and release surface so Antigravity is visible alongside Codex, Claude, Gemini, OpenCode, and Droid.
1464
- - Clarifies no-change reload semantics: non-dry-run `ccb reload` with no config delta returns `noop` / `no_op` without publishing a graph.
1465
- - Adds Agent Roles public specification planning notes for the future host-neutral RolePack project.
1466
-
1467
- </details>
1468
-
1469
- <details>
1470
- <summary><b>v7.2.0</b> - Role Packs And Managed Tools Release</summary>
1471
-
1472
- - Adds the Role Pack surface with the built-in `ccb.archi` architecture role, role memory, Codex/Claude skill projection, and project role locks.
1473
- - 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.
1474
- - 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.
1475
- - Adds managed tool windows, sidebar rows, and safe reload add/remove behavior for non-agent tools.
1476
- - Includes the new `agy` / Google Antigravity provider support from `main`.
1477
-
1478
- </details>
1479
-
1480
- <details>
1481
- <summary><b>v7.1.1</b> - Sidebar View Height Release</summary>
1482
-
1483
- - Adds three configurable sidebar sections under `[ui.sidebar.view]`: `agents_height`, `comms_height`, and `tips_height`.
1484
- - Changes the default native sidebar split to Agents `50%`, Comms `15%`, and Tips `35%`.
1485
- - Carries the height settings through config parsing, project_view payloads, reload planning, and the Rust sidebar TUI.
1486
- - 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.
1487
- - Updates the inherited Codex/Claude `ccb-config` skill docs and references so generated or migrated windows topology exposes all three values.
1488
-
1489
- </details>
1490
-
1491
- <details>
1492
- <summary><b>v7.1.0</b> - Dynamic Reload Release</summary>
1493
-
1494
- - Adds explicit hot reload for `.ccb/ccb.config`: use `ccb reload --dry-run` to preview and `ccb reload` to apply supported changes.
1495
- - Dynamically mounts append-only agents and new windows under the existing ccbd daemon without interrupting unrelated panes.
1496
- - Dynamically unloads idle removed agents and idle removed windows while preserving remaining agent panes.
1497
- - Treats config signature drift as reload-pending instead of a daemon restart trigger; busy unloads and unsafe replacements still fail closed.
1498
- - Starts the Role Pack surface with `ccb.archi`, `ccb roles ...`, project role
1499
- locks, role memory inclusion, and provider skill projection.
1500
-
1501
- </details>
1502
-
1503
- <details>
1504
- <summary><b>v7.0.11</b> - Provider Activity And Sidebar Focus Release</summary>
1505
-
1506
- - Records provider-native activity evidence from hook artifacts so sidebar status can reflect active, pending, idle, and failed provider work more accurately.
1507
- - Refreshes sidebar panes immediately after project focus changes by invalidating the cached project view and sending an in-session refresh.
1508
- - Restores fast tmux pane click focus with direct `select-pane -t = ; send-keys -M`, avoiding the slower hidden subprocess path for ordinary pane clicks.
1509
- - Hardens namespace config, provider hook install settings, clipboard/runtime launch paths, and Codex managed trust handling with focused regression coverage.
1510
-
1511
- </details>
1512
-
1513
- <details>
1514
- <summary><b>v7.0.10</b> - Sidebar Tips And Tmux Controls Release</summary>
1515
-
1516
- - Keeps the native sidebar as a stable three-panel view: Tree `1/3`, compact Comms `1/4`, and Tips `5/12`.
1517
- - Expands default Tips for projects without custom tips, covering pane movement and resize, window switching, copy mode, paste, and help.
1518
- - Preserves the top-right `↻` and `×` controls: `×` runs project-level `ccb kill`, while `q` and `Esc` exit only the sidebar.
1519
- - 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`.
1520
-
1521
- </details>
1522
-
1523
- <details>
1524
- <summary><b>v7.0.9</b> - README v7 Redesign Release</summary>
1525
-
1526
- - 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.
1527
- - Adds real v7 terminal screenshots under `assets/readme_v7/` for the public README walkthrough.
1528
- - Preserves the README redesign plan and supporting notes under `docs/plantree/`.
1529
- - Keeps the v7.0.8 runtime, `ccb clear`, config overlay, and sidebar fixes intact while refreshing the GitHub-facing documentation package.
1530
-
1531
- </details>
306
+ - 普通长时间 `ask` 默认继续等待真实 provider/completion 结果,不再仅因 heartbeat 诊断自动 terminalize 为 `incomplete/heartbeat_timeout`。
307
+ - Codex、Claude、Gemini 的 pane-backed no-terminal timeout 默认改为显式 opt-in,仍保留显式 reliability timeout 策略。
308
+ - 已用 32 分钟 source-runtime ask smoke 验证:任务超过 30 分钟仍保持 running,随后以 `result_message` 完成,未出现 `heartbeat_timeout` 或 `incomplete` 证据。
1532
309
 
1533
310
  </details>
1534
311
 
1535
- See [CHANGELOG.md](CHANGELOG.md) for the full history.
312
+ 完整历史请看 [CHANGELOG.md](CHANGELOG.md)