Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
tag:
description: "Release tag to publish"
required: true
default: "v7.6.8"
default: "v7.6.9"
push:
tags:
- "v*.*.*"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
tag:
description: "Release tag to build and upload"
required: true
default: "v7.6.8"
default: "v7.6.9"
push:
tags:
- "v*"
Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## v7.6.9 (2026-06-17)

### Kimi And AGY Provider Reliability

- **Kimi Completion Evidence Hardened**: Kimi execution now records receipt,
no-captured-output diagnostics, trace, and resume metadata so missing replies
and recovered turns are easier to diagnose.
- **AGY Delivery Reliability Improved**: AGY prompt delivery now waits for
ready evidence, handles pane fallback and ambiguous tmux send outcomes, and
reports coalesced request diagnostics more clearly.
- **Provider Trace Diagnostics Expanded**: dispatcher, mailbox trace, and text
artifact paths now expose the provider diagnostics needed to investigate
Kimi/AGY delivery and completion edge cases.
- **Release Surface Synchronized**: VERSION, CLI version constants,
package.json, release workflow defaults, README release notes, and npm
packaging metadata are aligned for 7.6.9.

## v7.6.8 (2026-06-17)

### Role Pack Current Store
Expand Down
22 changes: 21 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
**Visible, controllable multi-agent cooperative TUI workspace**

<p>
<img src="https://img.shields.io/badge/version-7.6.8-orange.svg" alt="version">
<img src="https://img.shields.io/badge/version-7.6.9-orange.svg" alt="version">
<img src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-lightgrey.svg" alt="platform">
<img src="https://img.shields.io/badge/providers-14%20CLI%20families-0B7285.svg" alt="providers">
</p>
Expand Down Expand Up @@ -641,6 +641,21 @@ v7 highlights:
- Hardened tmux, Ghostty, release helper, Codex trust, and provider session restore paths.

<details open>
<summary><b>v7.6.9</b> - Kimi And AGY Provider Reliability</summary>

- Kimi execution now records receipt, no-captured-output diagnostics, trace,
and resume metadata so missing replies and recovered turns are easier to
diagnose.
- AGY prompt delivery now waits for ready evidence, handles pane fallback and
ambiguous tmux send outcomes, and reports coalesced request diagnostics more
clearly.
- Dispatcher, mailbox trace, and text artifact diagnostics now expose the
provider details needed to investigate Kimi/AGY delivery and completion edge
cases.

</details>

<details>
<summary><b>v7.6.8</b> - Role Pack Current Store</summary>

- Role Pack runtime lookup now follows the installed current package under
Expand Down Expand Up @@ -779,6 +794,11 @@ v7 highlights:
only when `.hindsight/kimi.json`, `.hindsight/codex.json`,
`HINDSIGHT_API_URL`, or `HINDSIGHT_BANK_ID` is configured, and failures remain
non-blocking provider diagnostics.
- Preserves trusted Codex command hooks, including Hindsight Codex hooks, when
CCB materializes managed Codex homes. Operators can extend the allowlist with
`CCB_CODEX_INHERITED_HOOK_EVENTS` and
`CCB_CODEX_INHERITED_COMMAND_HOOK_MARKERS`; arbitrary root hooks remain
filtered out.
- Accepts both `HINDSIGHT_API_KEY` and `HINDSIGHT_API_TOKEN` for the Kimi
bridge and the `scripts/hindsight` helper.
- Documents the supported provider surface more clearly in the README while
Expand Down
18 changes: 17 additions & 1 deletion README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
**可见、可控的多 Agent 合作TUI工作台**

<p>
<img src="https://img.shields.io/badge/version-7.6.8-orange.svg" alt="version">
<img src="https://img.shields.io/badge/version-7.6.9-orange.svg" alt="version">
<img src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-lightgrey.svg" alt="platform">
<img src="https://img.shields.io/badge/providers-14%20CLI%20families-0B7285.svg" alt="providers">
</p>
Expand Down Expand Up @@ -630,6 +630,18 @@ v7 线重点:
- 加固 tmux、Ghostty、release helper、Codex trust 和 provider 会话恢复路径。

<details open>
<summary><b>v7.6.9</b> - Kimi / AGY Provider 可靠性</summary>

- Kimi execution 现在记录 receipt、无捕获输出诊断、trace 和 resume
metadata,便于定位缺失回复和恢复 turn。
- AGY prompt delivery 现在等待 ready evidence,处理 pane fallback 和
ambiguous tmux send 结果,并更清楚地报告合并请求诊断。
- dispatcher、mailbox trace 和 text artifact 诊断现在会暴露排查 Kimi/AGY
delivery 与 completion 边界所需的 provider 细节。

</details>

<details>
<summary><b>v7.6.8</b> - Role Pack Current Store</summary>

- Role Pack 运行时现在跟随 `.roles/installed/<role-id>/current` 下的当前安装包;
Expand Down Expand Up @@ -753,6 +765,10 @@ v7 线重点:
- Kimi Hindsight 记忆改为 CCB 执行边界上的显式 opt-in:只有配置
`.hindsight/kimi.json`、`.hindsight/codex.json`、`HINDSIGHT_API_URL` 或
`HINDSIGHT_BANK_ID` 时才启用,失败时只记录 provider diagnostics,不阻塞任务。
- CCB 物化 managed Codex home 时会保留可信 Codex command hook,包括
Hindsight Codex hooks。运维可通过 `CCB_CODEX_INHERITED_HOOK_EVENTS` 和
`CCB_CODEX_INHERITED_COMMAND_HOOK_MARKERS` 扩展 allowlist;任意 root hook
仍会被过滤。
- Kimi bridge 和 `scripts/hindsight` helper 同时兼容 `HINDSIGHT_API_KEY` 与
`HINDSIGHT_API_TOKEN`。
- README 更明确展示支持的 provider surface,同时保持无关 provider 行为不变。
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7.6.8
7.6.9
2 changes: 1 addition & 1 deletion ccb.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
if backend_env and not os.environ.get("CCB_BACKEND_ENV"):
os.environ["CCB_BACKEND_ENV"] = backend_env

VERSION = "7.6.8"
VERSION = "7.6.9"
GIT_COMMIT = "release"
GIT_DATE = "2026-06-17"

Expand Down
26 changes: 25 additions & 1 deletion docs/ccb-config-layout-contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,31 @@ and then log in that agent's managed Codex home directly. With no explicit
agent API authority, `inherit_auth = false` means "do not inherit global
Codex credentials"; it must preserve an existing agent-local `auth.json`.

### 4.3 Agent Model Shortcut
### 4.3 Provider Profile MCP Overlay

Provider profiles may declare agent-local MCP server overrides:

```toml
[agents.agent1.provider_profile.mcp_servers.codegraph]
command = "/usr/local/bin/codegraph"
args = ["serve", "--mcp"]
```

Contract:

- The overlay is keyed by MCP server name.
- For Codex, CCB merges the overlay into the managed agent-local
`config.toml` under `mcp_servers`. Same-name servers override inherited
source config; different names are additive.
- The overlay is preserved in provider profile records and config rendering.
- This is source configuration, not provider runtime state. Running providers
may need the normal CCB reload/restart flow before a changed MCP set is
visible.
- Claude may still use provider-native `.claude.json` / `claude mcp` scoping
for user-level MCP configuration; this overlay is not a replacement for
provider-native Claude plugin management.

### 4.4 Agent Model Shortcut

For the common case where an agent only needs a provider model override, rich or
hybrid `ccb.config` may use an agent-local model shortcut:
Expand Down
12 changes: 12 additions & 0 deletions docs/plantree/plans/native-cli-providers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ override the shipped contracts.
package, install, command, and auth findings.
- [topics/integration-design.md](topics/integration-design.md): CCB provider
architecture, completion detection, configuration, and testing plan.
- [topics/kimi-receipt-and-diagnostics-hardening.md](topics/kimi-receipt-and-diagnostics-hardening.md):
landed Kimi-only receipt, no-captured-reply, trace, and restore-diagnostics
hardening notes with explicit non-impact constraints for other providers.
- [topics/agy-delivery-stability-hardening.md](topics/agy-delivery-stability-hardening.md):
AGY ready-gated prompt delivery, late transcript/pane fallback, and
coalesced-request diagnostics needed to approach OpenCode-style reply
attribution stability.
- [history/next-wave-cli-lab-2026-06-13.md](history/next-wave-cli-lab-2026-06-13.md):
local install/source lab record for Qwen, Copilot, Cursor, Kiro, and Crush.
- [history/pi-provider-landing-2026-06-13.md](history/pi-provider-landing-2026-06-13.md):
Expand Down Expand Up @@ -80,8 +87,13 @@ In scope:
with assistant message content as completion evidence.
- AGY completion alignment to Antigravity transcript logs, so AGY no longer
relies on `CCB_DONE` as its primary completion signal.
- AGY prompt delivery hardening so CCB waits for an input-ready Antigravity pane
before sending, avoids coalescing multiple CCB jobs into one AGY turn, and
falls back to stable pane evidence when transcript writes lag.
- Empty-reply and timeout diagnostics aligned with existing pane-backed
providers.
- Kimi-specific receipt hardening, no-captured-reply diagnostics, trace
visibility, and execution-resume metadata clarification.
- Unit and isolated source-runtime validation in `/home/bfly/yunwei/test_ccb2`.
- Local install/source research under
`/home/bfly/yunwei/test_ccb2/cli-integration-lab` before source integration.
Expand Down
69 changes: 69 additions & 0 deletions docs/plantree/plans/native-cli-providers/implementation-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,20 @@ Copilot CLI, Cursor Agent, Kiro CLI, Charm Crush, and Pi. Source implementation
landed for the minimal built-in provider path, and the stub-backed
source-runtime smoke plus real CLI version smoke have passed.

Kimi follow-up receipt and diagnostics hardening has landed in source. This work
is explicitly Kimi-only: it does not change default provider behavior for Codex,
Claude, Gemini, OpenCode, DeepSeek, MiMo, AGY, or next-wave native CLI
providers. Topic:
[topics/kimi-receipt-and-diagnostics-hardening.md](topics/kimi-receipt-and-diagnostics-hardening.md).

AGY delivery stability hardening has landed in source after a real
`main -> frontend_engineer:agy` empty-reply investigation. AGY now defers prompt
delivery until the Antigravity pane is input-ready, keeps busy-pane jobs running
instead of stacking retries into one native turn, records coalesced native
`USER_INPUT` diagnostics, keeps observing after ambiguous tmux send errors, and
can use stable pane fallback when transcript flushes lag. Topic:
[topics/agy-delivery-stability-hardening.md](topics/agy-delivery-stability-hardening.md).

## Last Landed

- Shared pane-quiet support and Kimi/DeepSeek provider backends were added in
Expand Down Expand Up @@ -81,6 +95,30 @@ source-runtime smoke plus real CLI version smoke have passed.
- Storage classification now recognizes Qwen, Cursor, Copilot, Crush, Kiro,
and Pi provider-state contents as native CLI provider-owned session/cache
or projected skill evidence instead of leaving them as unknown paths.
- Kimi receipt and diagnostics hardening:
- Kimi inherited ask skill now projects a structured receipt contract with
`status`, inspected files, findings, reject cases, required tests, no-open,
and blockers fields.
- Kimi native timeout with no captured reply emits `no_captured_reply`,
`provider_no_reply`, `receipt_valid=false`, and
`receipt_class=no_captured_reply`.
- Forced `--artifact-reply` on a no-captured Kimi reply now stores the empty
artifact as metadata while the visible reply says no Kimi provider reply was
captured.
- `ccb trace` job summaries expose Kimi terminal reason, reply chars, elapsed
seconds, forced-artifact status, and receipt class.
- Kimi provider manifest now reports `supports_resume=false` for CCB
in-flight execution restore, matching adapter restore diagnostics.
- AGY delivery stability hardening:
- AGY prompt delivery now waits for an input-ready Antigravity prompt before
sending, storing pending prompts while the pane is busy.
- AGY polling no longer treats old anchor-missing windows as terminal while
the pane remains busy.
- AGY can emit stable pane fallback evidence when transcript writes lag.
- AGY preserves ambiguous tmux send errors as diagnostics and still accepts
native transcript evidence instead of failing before attribution is known.
- Coalesced native `USER_INPUT` rows with multiple `CCB_REQ_ID` anchors are
diagnosed as `agy_request_coalesced` for superseded jobs.

## Active TODO

Expand All @@ -98,8 +136,39 @@ Kimi/DeepSeek/MiMo/Qwen/Copilot/Cursor/Kiro/Crush/Pi credentials; CCB integratio
can still be validated with provider command templates, installed CLI
help/version checks, and source-backed parser tests.

Kimi hardening source work is unblocked. Remaining Kimi prompt-mode and auth
diagnostic ideas stay deferred/open until real usage needs them.

## Last Verified

AGY delivery stability focused verification:

- `PYTHONPATH=lib python -m pytest -q test/test_agy_execution_polling.py test/test_native_cli_completion.py -k agy`:
`8 passed, 12 deselected`.
- `PYTHONPATH=lib python -m pytest -q test/test_agy_execution_polling.py test/test_native_cli_completion.py test/test_native_cli_providers.py test/test_v2_provider_catalog.py test/test_opencode_execution_polling.py`:
`34 passed`.
- Isolated source-runtime smoke from
`/home/bfly/yunwei/test_ccb2/native_provider_smoke` with
`/home/bfly/yunwei/ccb_source/ccb_test`, stub AGY, isolated `HOME` and
`CCB_SOURCE_HOME`: completed `job_74d4989cca04` with
`agy_transcript_response_done`.

Kimi hardening focused verification:

- `PYTHONPATH=lib python -m pytest -q test/test_ask_skill_templates.py`:
`3 passed`.
- `PYTHONPATH=lib python -m pytest -q test/test_native_cli_completion.py -k kimi`:
`8 passed, 5 deselected`.
- `PYTHONPATH=lib python -m pytest -q test/test_v2_message_bureau_dispatcher_integration.py -k artifact`:
`7 passed, 54 deselected`.
- `PYTHONPATH=lib python -m pytest -q test/test_v2_cli_render.py -k trace`:
`3 passed, 21 deselected`.
- `PYTHONPATH=lib python -m pytest -q test/test_v2_provider_catalog.py`:
`4 passed`.
- `PYTHONPATH=lib python -m py_compile` for touched Kimi, artifact, trace, and
catalog modules: passed.
- `git diff --check`: passed.

Historical first-slice verification:

- `node --version` returned `v22.20.0`.
Expand Down
13 changes: 13 additions & 0 deletions docs/plantree/plans/native-cli-providers/open-questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,16 @@ Date: 2026-06-13
- Kiro first adapter decision: use `kiro-cli chat --no-interactive --wrap
never` with subprocess exit/stdout until stable structured chat output is
confirmed.
- Kimi receipt contract decision: project the structured receipt contract in
the inherited Kimi ask skill first. CCB prompt injection remains unchanged for
other providers and can be reconsidered only if Kimi ignores the projected
skill.
- Kimi no-captured timeout decision: keep `kimi_native_turn_timeout` as
`failed`, but add explicit `no_captured_reply`, `provider_no_reply`,
`receipt_valid=false`, and `receipt_class=no_captured_reply` diagnostics.
- Kimi resume semantics decision: `supports_resume` describes CCB in-flight
execution restore. Kimi manifest now reports `supports_resume=false`, matching
adapter restore diagnostics and resubmit-only behavior.
- Kimi routing decision: keep `sl_ki` task sizing and receipt acceptance as an
operator convention enforced by `mn_c` for now. Do not add role/config routing
policy until there is repeated evidence that convention is insufficient.
35 changes: 33 additions & 2 deletions docs/plantree/plans/native-cli-providers/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ Date: 2026-06-13
`CCB_DONE` as their primary completion signal. Kimi and OpenCode inherited
ask skill injection landed in commit `a4395c2`; MiMo inherited ask
instruction injection and native `mimo run --format json` execution landed
in commit `fce17c3`.
in commit `fce17c3`. Kimi receipt/diagnostics hardening has landed in source
with Kimi-only guarded behavior. AGY delivery stability hardening has landed
in source with ready-gated prompt delivery, pane fallback, and coalesced
request diagnostics.
- Last verified: focused native completion tests, provider catalog tests,
Kimi/OpenCode skill projection tests, and a real MiMo CCB ask passed after
switching CCB MiMo execution to `mimo run --pure --format json`; full
Expand Down Expand Up @@ -222,6 +225,31 @@ Date: 2026-06-13
add-on smoke passed with `pi_run_stop`; full source test gate passed with
`2621 passed, 2 skipped, 21 deselected`;
`git diff --check` passed.
- Landed Kimi-only receipt and diagnostics hardening:
- Kimi inherited ask skill projects the structured receipt contract:
`status`, `inspected`, `exact_files`, `findings`, `reject_cases`,
`required_tests`, `no_open`, and `blockers`.
- Kimi no-captured timeout decisions emit machine-readable
`receipt_class=no_captured_reply` diagnostics.
- Forced Kimi empty artifact replies no longer instruct callers to read an
empty artifact as task evidence.
- `ccb trace` surfaces Kimi terminal reason, reply chars, elapsed seconds,
artifact-forced status, and receipt class.
- Kimi manifest `supports_resume=false` now matches CCB in-flight execution
restore semantics.
- Landed AGY delivery stability hardening:
- AGY start stores pending prompts while the Antigravity pane is busy and
sends only after the empty input prompt is observed.
- AGY poll keeps busy-pane jobs running past the old anchor-missing window
instead of terminalizing and allowing later retries to merge into the same
native turn.
- AGY poll can use stable pane fallback when transcript writes lag.
- AGY preserves ambiguous tmux send errors as diagnostics and continues
observing transcript/pane evidence before deciding failure.
- AGY transcript parsing detects multiple `CCB_REQ_ID` anchors in one native
`USER_INPUT` and reports superseded requests as `agy_request_coalesced`.
- Focused AGY/native provider verification passed with `34 passed`; isolated
stub source-runtime smoke completed with `agy_transcript_response_done`.

## In Progress

Expand All @@ -235,7 +263,10 @@ Date: 2026-06-13
2. Decide whether to keep
`/home/bfly/yunwei/test_ccb2/next_wave_provider_smoke` as a reusable smoke
fixture.
3. Review the full dirty source diff, excluding unrelated managed-tool/neovim
3. Run a real source-runtime AGY smoke in `/home/bfly/yunwei/test_ccb2` when an
authenticated AGY account is available; unit coverage currently validates
the delivery and parsing mechanics without provider login.
4. Review the full dirty source diff, excluding unrelated managed-tool/neovim
changes already present in the worktree.

## Deferred
Expand Down
Loading
Loading