Skip to content

Commit f268f54

Browse files
committed
Release v6.3.0 native sidebar control
1 parent bbac32a commit f268f54

166 files changed

Lines changed: 14429 additions & 167 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Release Sidebar Helper
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
tags:
7+
- 'v*'
8+
9+
permissions:
10+
contents: write
11+
12+
jobs:
13+
linux-x86_64:
14+
name: Linux x86_64 sidebar helper
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
21+
- name: Set up Rust
22+
uses: dtolnay/rust-toolchain@stable
23+
24+
- name: Test sidebar crate
25+
run: cargo test --manifest-path tools/ccb-agent-sidebar/Cargo.toml
26+
27+
- name: Build release sidebar helper
28+
run: bin/build-ccb-agent-sidebar
29+
30+
- name: Stage artifact
31+
run: bin/package-ccb-agent-sidebar-release
32+
33+
- name: Upload artifact
34+
uses: actions/upload-artifact@v4
35+
with:
36+
name: ccb-agent-sidebar-linux-x86_64
37+
path: |
38+
dist/ccb-agent-sidebar-linux-x86_64.tar.gz
39+
dist/ccb-agent-sidebar-linux-x86_64.tar.gz.sha256
40+
41+
- name: Attach to GitHub Release
42+
if: startsWith(github.ref, 'refs/tags/')
43+
uses: softprops/action-gh-release@v2
44+
with:
45+
files: |
46+
dist/ccb-agent-sidebar-linux-x86_64.tar.gz
47+
dist/ccb-agent-sidebar-linux-x86_64.tar.gz.sha256

.github/workflows/test.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,23 @@ jobs:
8282
export TERM=xterm-256color
8383
python -m pytest -q -m provider_blackbox test/test_v2_phase2_entrypoint.py
8484
85+
rust-sidebar:
86+
name: Rust sidebar
87+
runs-on: ubuntu-latest
88+
89+
steps:
90+
- name: Checkout
91+
uses: actions/checkout@v4
92+
93+
- name: Set up Rust
94+
uses: dtolnay/rust-toolchain@stable
95+
96+
- name: Run sidebar tests
97+
run: cargo test --manifest-path tools/ccb-agent-sidebar/Cargo.toml
98+
99+
- name: Build sidebar binary
100+
run: bin/build-ccb-agent-sidebar
101+
85102
macos-install-smoke:
86103
name: macOS install smoke
87104
runs-on: macos-latest

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
__pycache__/
22
*.pyc
3+
target/
34
.venv/
45
.pytest_cache/
56
.architec/

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
## Unreleased
44

5+
## v6.3.0 (2026-05-22)
6+
7+
### Native Sidebar Control Release
8+
9+
- **Native CCB Sidebar Added**: adds a Rust `ccb-agent-sidebar` helper with per-window project view, fixed gray sidebar identity, colored agent status symbols, mouse/keyboard focus switching, and release packaging hooks.
10+
- **Project Topology Added**: `.ccb/ccb.config` now supports window/sidebar topology while preserving the default three-agent `main` window layout when no project config is present.
11+
- **Comms Recovery Added**: the sidebar and ccbd now expose comms retry, cancel, and clear flows through ccbd-owned RPCs with project-view recoverability metadata and shared dismissed-row state.
12+
- **Window-Aware Runtime Metadata Added**: runtime attach, startup results, `ps`, project view, and tmux identity now carry window names/ids so focus and sidebar state remain stable across tmux windows.
13+
- **Reset History Inheritance Added**: `ccb -n` now clears runtime/mail/pane residue while preserving `.ccb/ccb.config`, project memory, and same-name managed provider-state/session history.
14+
515
## v6.2.9 (2026-05-22)
616

717
### Callback Visibility And Diagnostics Release

README.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<img src="https://img.shields.io/badge/Every_Model_Controllable-CF1322?style=for-the-badge" alt="Every Model Controllable">
88
</p>
99

10-
[![Version](https://img.shields.io/badge/version-6.2.9-orange.svg)]()
10+
[![Version](https://img.shields.io/badge/version-6.3.0-orange.svg)]()
1111
[![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey.svg)]()
1212

1313
**English** | [Chinese](README_zh.md)
@@ -89,7 +89,7 @@ See [Release Notes](#release-notes) for the full history.
8989
```bash
9090
ccb # Start default agents from .ccb/ccb.config
9191
ccb -s # Safe start: keep configured/manual permission behavior
92-
ccb -n # Rebuild .ccb except ccb.config, then start fresh
92+
ccb -n # Rebuild runtime state; keep config and managed agent history
9393
ccb kill # Stop this project's background runtime
9494
ccb kill -f # Force cleanup before rebuilding state
9595
```
@@ -338,6 +338,16 @@ Thanks to the [Linux.do community](https://linux.do) for testing, feedback, and
338338
Historical note: older release notes below may mention `askd`, legacy flags, or removed commands. Those references are kept only as changelog history and do not redefine the current CLI surface.
339339

340340
<details open>
341+
<summary><b>v6.3.0</b> - Native Sidebar Control Release</summary>
342+
343+
- Adds the native Rust `ccb-agent-sidebar` helper with per-window project view, fixed gray sidebar identity, colored agent status symbols, and mouse/keyboard focus switching.
344+
- Adds window/sidebar topology support while keeping the default no-config layout as one `main` window with `agent1`, `agent2`, and `agent3`.
345+
- Adds comms retry, cancel, and clear actions through ccbd-owned RPCs, with recoverability metadata in `project_view`.
346+
- Carries tmux window names and ids through runtime attach, startup results, `ps`, project view, and pane identity for stable cross-window focus.
347+
348+
</details>
349+
350+
<details>
341351
<summary><b>v6.2.9</b> - Callback Visibility And Diagnostics Release</summary>
342352

343353
- Shows `callback_pending` for delegated callback root jobs while the child chain is still running, then resolves `ask get` and `watch` to the final message-bureau reply after continuation.
@@ -927,7 +937,7 @@ Historical note: older release notes below may mention `askd`, legacy flags, or
927937
- **Safe Agent Churn**: Adding agents no longer disturbs existing worktrees; removing or renaming worktree agents retires clean branches and blocks on dirty or unmerged ones
928938

929939
**🛠 Recovery & Reset Hardening:**
930-
- **Config-Preserving Reset**: `ccb -n` rebuilds project runtime state while keeping `.ccb/ccb.config`
940+
- **History-Preserving Reset**: `ccb -n` rebuilds project runtime state while keeping `.ccb/ccb.config`, project memory, and same-name managed agent history
931941
- **Stale Registration Cleanup**: Start and reset now prune missing registered git worktrees before rematerialization
932942
- **Kill Warnings**: `ccb kill` warns clearly when a worktree agent still has unmerged or dirty state
933943

README_zh.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<img src="https://img.shields.io/badge/模型皆可控-CF1322?style=for-the-badge" alt="模型皆可控">
88
</p>
99

10-
[![Version](https://img.shields.io/badge/version-6.2.9-orange.svg)]()
10+
[![Version](https://img.shields.io/badge/version-6.3.0-orange.svg)]()
1111
[![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey.svg)]()
1212

1313
[English](README.md) | **中文**
@@ -89,7 +89,7 @@
8989
```bash
9090
ccb # 按 .ccb/ccb.config 启动默认 agent
9191
ccb -s # 安全启动:保留 agent 自身配置的权限策略
92-
ccb -n # 重建 .ccb(保留 ccb.config),再重新启动
92+
ccb -n # 重建运行态,保留配置和同名 managed agent 历史
9393
ccb kill # 停止当前项目相关后台
9494
ccb kill -f # 强制清理项目残留后再配合 ccb -n 使用
9595
```
@@ -329,6 +329,16 @@ ccb reinstall
329329
历史说明:下面较旧的发布记录里仍可能出现 `askd`、旧 flag 或已移除命令。这些内容仅作为 changelog 历史保留,不代表当前 CLI 入口。
330330

331331
<details open>
332+
<summary><b>v6.3.0</b> - Native Sidebar Control Release</summary>
333+
334+
- 新增 Rust `ccb-agent-sidebar` 原生侧边栏 helper,支持每个 window 的 project view、固定灰色侧边栏身份、彩色 agent 状态符号,以及鼠标/键盘 focus 切换。
335+
- 新增 window/sidebar topology 支持,同时保留无配置时默认一个 `main` window,包含 `agent1``agent2``agent3`
336+
- 新增 comms retry、cancel、clear 操作,统一通过 ccbd RPC 执行,并在 `project_view` 中提供可恢复状态元数据。
337+
- runtime attach、startup results、`ps`、project view、pane identity 现在携带 tmux window name/id,让跨 window focus 更稳定。
338+
339+
</details>
340+
341+
<details>
332342
<summary><b>v6.2.9</b> - Callback Visibility And Diagnostics Release</summary>
333343

334344
- 委派式 callback root job 在子链路运行期间显示 `callback_pending`,continuation 完成后 `ask get``watch` 会解析到最终 message-bureau reply。
@@ -918,7 +928,7 @@ ccb reinstall
918928
- **Agent 变更更稳**:新增 agent 不再影响已有 worktree;删除或改名 worktree agent 时,干净分支会自动退休,脏分支或未合并分支会阻断并提醒
919929

920930
**🛠 重建与恢复加固:**
921-
- **保留配置重建**`ccb -n` 会重建项目运行时状态,但保留 `.ccb/ccb.config`
931+
- **保留历史重建**`ccb -n` 会重建项目运行时状态,但保留 `.ccb/ccb.config`、项目记忆和同名 managed agent 历史
922932
- **陈旧注册清理**:启动与重建前会先清理已注册但路径丢失的 git worktree
923933
- **Kill 提醒**`ccb kill` 在发现 worktree agent 仍有未合并或脏状态时会显著提醒用户
924934

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.2.9
1+
6.3.0

bin/build-ccb-agent-sidebar

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5+
CRATE_DIR="$REPO_ROOT/tools/ccb-agent-sidebar"
6+
TARGET_BIN="$CRATE_DIR/target/release/ccb-agent-sidebar"
7+
OUT_BIN="$REPO_ROOT/bin/ccb-agent-sidebar"
8+
9+
if [[ ! -f "$CRATE_DIR/Cargo.toml" ]]; then
10+
echo "ERROR: missing $CRATE_DIR/Cargo.toml" >&2
11+
exit 1
12+
fi
13+
14+
if ! command -v cargo >/dev/null 2>&1; then
15+
echo "ERROR: cargo is required to build ccb-agent-sidebar" >&2
16+
exit 1
17+
fi
18+
19+
cargo build --release --manifest-path "$CRATE_DIR/Cargo.toml"
20+
cp -f "$TARGET_BIN" "$OUT_BIN"
21+
chmod +x "$OUT_BIN"
22+
echo "Built $OUT_BIN"

bin/ccb-agent-sidebar

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
# CCB_AGENT_SIDEBAR_WRAPPER
5+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
6+
TARGET_BIN="$REPO_ROOT/tools/ccb-agent-sidebar/target/release/ccb-agent-sidebar"
7+
8+
if [[ -x "$TARGET_BIN" ]]; then
9+
exec "$TARGET_BIN" "$@"
10+
fi
11+
12+
printf '%s\n' 'CCB sidebar helper binary is not built.'
13+
printf '%s\n' 'Run: bin/build-ccb-agent-sidebar'
14+
while :; do sleep 3600; done
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5+
ARTIFACT_NAME="${CCB_AGENT_SIDEBAR_ARTIFACT_NAME:-ccb-agent-sidebar-linux-x86_64}"
6+
SOURCE_BIN="$REPO_ROOT/bin/ccb-agent-sidebar"
7+
STAGE_DIR="$REPO_ROOT/dist/$ARTIFACT_NAME"
8+
OUT_TAR="$REPO_ROOT/dist/$ARTIFACT_NAME.tar.gz"
9+
OUT_SHA="$OUT_TAR.sha256"
10+
11+
if [[ ! -x "$SOURCE_BIN" ]]; then
12+
echo "ERROR: missing executable $SOURCE_BIN" >&2
13+
exit 1
14+
fi
15+
16+
rm -rf "$STAGE_DIR" "$OUT_TAR" "$OUT_SHA"
17+
mkdir -p "$STAGE_DIR/bin"
18+
cp -f "$SOURCE_BIN" "$STAGE_DIR/bin/ccb-agent-sidebar"
19+
chmod +x "$STAGE_DIR/bin/ccb-agent-sidebar"
20+
tar -C "$REPO_ROOT/dist" -czf "$OUT_TAR" "$ARTIFACT_NAME"
21+
sha256sum "$OUT_TAR" > "$OUT_SHA"
22+
echo "Packaged $OUT_TAR"
23+
echo "Checksum $OUT_SHA"

0 commit comments

Comments
 (0)