CLI Runtime 当前实现(0.166.30 生产推荐 / npm latest)
更新时间:2026-09-07。完整门禁的生产推荐版与 npm
latest均为 Agent Platform0.166.30,以不可变 tagv-npm-0-166-30的精确 SHA87ddf8b126为准。该提交的 Linux/Windows/macOS CLI CI、Strict Sandbox、IDE、Trusted Publishing 与公共安装回读均已闭环。TypeScript/Python Agent SDK0.2.8、Agent Protocol0.1.8、Session Core0.3.12、Open VSX0.37.87与 JetBrains Marketplace0.4.113已公开。
2026-09-07 增量:模型连接与页面化工作台
cc llm configure 现在通过有界 stdin JSON 原子保存 provider、model、base URL、vision model 与密钥,密钥不进入 argv;端点改变时不会复用旧密钥。cc llm test 使用 OpenAI-compatible、Anthropic、Gemini 与 Ollama 的原生协议探测,拒绝重定向并在 20 秒后超时。
VS Code 0.37.87 提供页面优先的 Workbench、可分页筛选的只读 Skill Library 与自定义模型连接;CLI 承接读取游标恢复、重复输出抑制、聚焦恢复和可靠 Stop。当前 main@5db62db246 的 Desktop 模型治理是源码能力,不属于 0.166.30 npm tarball 或已公开 Desktop 安装包。
2026-09-06 增量:长任务与治理恢复
交互式流式 Agent 不再因默认 50 次模型调用上限中断长任务;显式轮次、费用和会话预算继续生效,无人值守任务仍保留默认上限。大文件读取按字节/行游标分页,压缩后保留最新读取位置,未变化页避免重复注入;慢命令期间 IDE 会话继续保活。
受治理演进补齐持久 Workbench 审核/回滚与启动恢复、知识候选独立隔离/拒绝、跨 Wiki 多级来源撤销和 tombstone 恢复、Skill/Prompt/Hook 制品发布与受控市场候选安装。启动仅补记已发生的效果,未执行计划保持待处理;候选安装不会直接激活 Skill。真实身份、签名、策略、KMS/PKI、witness、grader 和目标环境验收仍由部署方提供。
Open VSX 0.37.84 已公开,新增 chainlesschain.chat.maxTurns(0 跟随 CLI 交互默认;正整数限制每条消息的模型轮次)。JetBrains Marketplace 0.4.111 已公开,其内置 CLI 推荐仍为 0.166.22;源码中的 v2 批审回执支持尚未随新的 JetBrains 制品发布。Session Core 0.3.12、Core DB 0.1.5 已公开,TS/Python SDK 0.2.8 与 Protocol 0.1.8 保持独立版本。
概述
本文是当前 CLI 运行时的实现快照,适合部署、排障和集成方阅读。设计取舍详见运行时设计核对。
安装版本怎么选
| 用途 | 版本 | 说明 |
|---|---|---|
| 生产 / 日常稳定使用 | 0.166.30 | v-npm-0-166-30@87ddf8b126 已完成 Linux、Windows、macOS CLI CI、Strict Sandbox、制品与发布门 |
npm latest | 0.166.30 | registry、tag、provenance、tarball 与 public-install workflow 已交叉回读 |
| Agent SDK / Protocol | TS 0.2.8 / Python 0.2.8 / Protocol 0.1.8 | npm/PyPI 均已公开并完成安装回读 |
| IDE 工作台 | CLI 0.166.30 + VS Code 0.37.87 / JetBrains 0.4.113 | Open VSX 与 JetBrains Marketplace 公共制品分别回读 |
| Agent Platform | CLI 0.166.30 | 原子模型连接、原生协议探测、页面化 Workbench/Skill Library 与长任务恢复 |
| 独立发行边界 | Desktop/iOS 源码、signed native、产品 cutover、长期 campaign | 不因 npm/SDK/IDE 上传而自动成为对应产品已发行能力 |
生产安装建议显式固定:
npm i -g chainlesschain@0.166.30已安装旧版的用户可固定升级到 0.166.30。TypeScript SDK 固定 @chainlesschain/agent-sdk@0.2.8,Python SDK 固定 chainlesschain-agent-sdk==0.2.8,Agent Protocol 固定 @chainlesschain/agent-protocol@0.1.8;三者与 CLI 独立安装和发版。
核心特性
cc serve --app-server:默认启动 stdio JSON-RPC 产品集成入口;加--app-server-websocket可显式使用固定路径/子协议、强 token/TLS 与慢消费者断路的实验网络传输。- Agent Kernel:
agent、exec、SDK stream、WebSocket、UI 与 App Server 复用模型/工具循环、权限、沙箱、预算、中断和有界 cleanup。 cc team graph inspect|diff|eval:只读 GraphRun 投影、时间旅行、阻塞根因、差异和 CI 阈值门;敏感正文默认不输出。- Agent Protocol
0.1.8/ SDK TS、Python0.2.8:canonical Schema 生成 TypeScript、Python、Kotlin、Swift 的 Agent stream payload union 与严格 validator;Context/Memory 与 App Server 有界消息已进入公开组合。 - Desktop / VS Code App Server pilot:默认关闭,只开放固定 Thread/Turn 操作;Desktop 经 Process Broker 启动,审批 UI 未接入前一律 canonical decline。
- 跨端 causal conformance:协议、TS/Python SDK、CLI、Desktop、VS Code 与 JetBrains 对同一并行工具交错 fixture 保持因果顺序、审批 binding 与终态投影一致。
- 有界 transport:legacy WS、Desktop MCP、浏览器控制、P2P、权限弹窗、媒体桥与 U-Key 签名已补数量/字节 admission;
0.166.15继续承接全局/per-agent cap 与 timeout,并以真实 Playwright UI replay 验证审阅后的 observe/click/type/select/assert 词汇和 network escape 拒绝。 0.166.12–0.166.14:Context/Memory Kernel、耐久 rollout store 与 Hooks v2 收敛进入公开版;renderer IPC 固定 capability manifest、默认 sandbox/审批和持久进程审计完成 P0 失败闭合;Windows 普通 Agent 启动不探测 Docker,显式隔离仍拒绝静默降级。0.166.15:formal quality control/candidate 共用冻结的 read/list/search/write/edit 工具契约,失败评测保留有界证据并允许 soak 达到正式时长;不开放 shell、网络、Git、MCP、插件、IDE 或子 Agent 工具。0.166.20:持久 Agent ingress、Wiki/Memory/review、旧状态迁移与 registry transition 已进入公开 CLI;Session Core0.3.10修复全新公共安装的cc agent命令图。GitHubmain@c681e2b91d与 npm tag SHA 不同,不能改写已发布 tarball 身份。0.166.21:公开 Evolution Workbench、canonical digest-bound Skill Retrieval,以及加密知识冲突的删节审核、认证合并、trust ledger、撤销依赖 settlement 和 crash/response-loss recovery;客户端不获得 active/knowledge writer authority。- TeamMailbox v3:真实
cc team --agent子进程获得私有team_send|receive|ack|followup宿主工具;普通 shell worker、prompt 文本和 IDE 不获得消息 authority。 cc agent --bg:后台启动长任务,返回可持久化的会话 ID。cc attach <id>:通过本机控制通道继续提问、停止或查看后台 Agent;通道不可用时自动改为日志跟随。cc logs <id>、cc daemon status|view|resume|stop:查看和管理后台会话。- 后台提问、审批与副作用确认:重连后继续等待原问题,并按会话/回合/操作指纹校验,避免重复执行。
Setup/Notificationhooks:在命令开始前注入环境并发送会话通知。- 安全配置写入:schema secret 必须经
cc config set-secret的隐藏输入与 OS store/owner-only fallback,普通config set会拒绝敏感字段;显式workspace-write/strictsandbox 在不可用时失败闭合。 - MCP
ws/wss、可信动态 header、timeout notification 与不确定结果恢复:REPL、stream、Cowork/host、WebSocket 使用共享 recovery authority,结果不明确时要求核验或裁决,不盲目 replay。 - Canonical session 与持久预算:REPL、stream、WebSocket、headless 使用可验证 transcript projection 与事务化 summary/compaction;后台/Team adapter 使用 fenced token、USD 与 wall-clock 预算。
- Agent 工作流:plan/todo revision 与 authority ceiling、受控 Skill 子 Agent、后台 launch profile、semantic handoff、
/btw临时旁路、manifest-driven help 与 shell completion 已进入当前源码。 0.162.200会话与 MCP 权威:session host lease、anti-rollback witness、持久化失败分类与有界 cleanup 已公开;npm-backed MCP 固定精确版本和完整传递依赖闭包,物化为内容寻址的受守护 capsule;POSIX/Windows installer/OTA generation recovery 已进入稳定版。0.163.0安装与原生宿主:macOS postinstall 窄范围修复并验证node-ptyhelper 执行位且拒绝 symlink;Linux、Windows、macOS x64/ARM64 六个目标改由匹配架构 runner 执行验证;命令生命周期进入第二个观察周期,25 个兼容 alias 继续保留。0.163.1可靠性与打包:live session tail 在 transcript 路径检查与异步stat/open之间遇到删除或恢复时,改由 durable session witness 重新分类并失败闭合;长会话摘要和 compacted tool record 改为有界折叠;Windows 严格沙箱在挂起创建到恢复前持有并复核 MCP runtime/entry identity;矩阵覆盖 EROFS/ENOSPC、原生 TTY、多语言键盘、Unicode 剪贴板、SSH 断线、超大 MCP 输出、并发 Agent与两小时资源核算。CLI pack 还从干净、lockfile 驱动的 Web Panel 依赖图构建,固定 Vite/Rollup/Intlify 运行链、限制 Rollup 文件并发,并使用 Node 22 standalone 基座。上述能力已随v-npm-0-163-1公开。0.163.2MCP capsule:stdio MCP 可用--runtime-kind声明七类 runtime 语义;Linux 固定 npm/Node runtime、entry、参数以 descriptor 绑定到启动,Windows restricted-token/AppContainer plan 使用一次性内建 Broker authority,macOS 在公共 API 无法证明 atomic final-image binding 时类型化失败闭合。恶意宿主证据 v4 分别记录 Linux 路径替换、Windows strict gate 与 macOS fail-closed。0.163.3后台隔离与 source policy:干净 Git checkout 中的非stream-jsoncc agent --bg默认从 committedHEAD创建隔离 worktree;--worktree显式请求同一路径,只有--no-worktree共享当前 checkout,脏工作区拒绝启动。generation/token fence、原子状态、durable turn intent 与 grammar-safe detached argv 阻止过期 worker 复活、误删 live worktree 或把 prompt 当成权限参数。sandboxPolicy.requiredBoundaries与可信cwd已从 local/project/user/managed、Skill 和 Cowork 定义贯通到 Broker。0.163.3平台封存:Linux strict plugin/native 路径逐目录 FD 遍历并拒绝 link、跨挂载、special file、hardlink 与超限树,把每个普通文件复制为 sealed snapshot;Windows helper/cache/test artifact 绑定可信非 reparse 临时根,身份不明或无法复验的残留会保留现场并使清理失败闭合。0.163.4capsule 与 scheduler store:exact-package 输入在有界 worker 的 immutable WASM VFS 中构建;scheduler SQLite store 提供 strict schema、revision CAS、logical-occurrence 去重、durable claim 与 history。0.163.5统一调度:Routine manual/cron/once、Agenda wakeup/cron 与 Cowork Cron 已接入共享 runtime。driver 领取 owner/fence lease、持续 heartbeat,并在执行前复验 definition snapshot 与 authority;只有可核验的 terminal evidence 才能在崩溃后补结算,start-only/outcome-unknown 不自动重放。0.163.5microcompact:压缩 checkpoint 持久化并可在 REPL/Agent 恢复;瞬态 runtime marker 不进入长期状态。0.163.6统一调度收敛:Agenda monitor、Loop、Automation cron、Routine GitHub、scope-checked channel event 与 standalone daemon 已接入共享 scheduler;Agenda/Cowork cron 支持规范 IANA timezone、DST gap/repeated minute 与 missed-run collapse。0.163.6共享 authority:Agenda、Routine、Cowork、Automation、Loop 在执行前复验 exact capability policy revision,并以同一事务 reservation/settlement 处理 run/unit 预算;缺失、过期、停用、耗尽或不一致的策略失败闭合,retry 不重复扣减。0.163.6Automation Center:CLI-owned versioned projection 暴露 scope、preflight 与 history;VS Code0.37.50/ JetBrains0.4.86通过 exact argv 与 revision CAS 执行 run-now、失败重试、pause/resume、disable/delete 及 Routine 创建/编辑。IDE 不直接写权威存储。0.163.7scheduler adjudication:只针对*_OUTCOME_UNKNOWN的dead_letter,以 evidence digest、attempt、fence 做 CAS。confirmed_applied只结算不重放;confirmed_not_applied只放行一次有界 claim。操作前必须停掉全部 scheduler host、排空已分发工作并核验外部结果。0.163.7migration/rollback:Agenda、Cowork Cron、Routine、Automation 与 Loop 以 schema-v5 journal 绑定 source/target digest、retirement fence 与恢复阶段;rollback 先处理 target,再经最新 evidence digest、交互 TTY 和 exact typed challenge 恢复 legacy source。0.163.7causal observability:session delivery graph 绑定精确 transcript head/event count 与 diff/gate/artifact/PR/merge revision;call-ledger@1对 model、retry、compaction、subagent、isolated Skill 与 tool call 的未知 settlement 失败闭合,而不是按零计费。0.163.8磁盘与 Automation 恢复:Agenda/Cowork 权威写入使用 private temp、完整 short-write、fsync 与 atomic rename,确定性 fault matrix 已关闭;Automation Center 另新增 exact fence/control revision/capability 约束的 checkpoint pause/resume,以及只对 scheduler-backed dead letter 安全开放的 incident retry/cancel。0.163.8merge review 与 MCP templates:cc team merge-review preview|show|apply|rollback以 revision/digest 绑定 file/hunk 选择、原子发布和受控回滚;list_mcp_resource_templates {server?}只读有界模板缓存,具体资源仍由read_mcp_resource读取。0.163.8scheduler soak framework:Linux/Windows/macOS workflow 已覆盖双 worker contention、higher-fence recovery、stale settlement、no-replay、heartbeat、DST、backlog、数据库完整性、后代回收和资源趋势;首次 formal run31807830251因 Windows worker 提前退出而无效,Ubuntu/macOS 随后取消。后继 exact-main run31821080101三平台及 aggregate 全部成功并定义新T0,正式计数为1/4;退出仍需其余三个 segment、至少 72 小时观察、最大段间隔 30 小时和最终 campaign verifier。0.164.0原生剪贴板图片:交互式 Agent REPL 的/paste-image可从受控 Windows/macOS/Linux 宿主桥读取 PNG/JPEG/GIF/WebP。单图 20 MiB、每轮 4 张/40 MiB、10 秒超时;该能力已进入当前稳定 tarball。0.164.0作用域执行权威:permissions activity|scoped|revoke展示实际资源、副作用、恢复覆盖和决策来源,并用 workspace、generation、revision 与 TTL 约束临时规则;session location current|show|compare|handoff显示已验证执行位置与安全交接预览。0.164.0受治理插件市场:plugin catalog|select|impact|evidence在安装/升级前绑定 registry、publisher、digest、signature、SBOM、license、capability、dependency、policy 与审批证据;partial 或过期投影不能授权 mutation。0.164.0keeper / capsule:后台 keeper 在用户代码前取得 Worker/后代清理权威;MCP capsule 绑定 Node builtin 与 execution-context sandbox 要求。Linux dynamic-native 和 macOS signed launcher 保持有限/禁用边界,不宣称完整 native closure。0.165.1动态准入与远程权威:Cowork workflow 在 dispatch 时重新核验 definition digest、execution-authority session、权限、sandbox、规模与成本门;CLI-hosted 审批和 relay membership/reconnect 绑定 durable epoch,过期或已撤销权威失败闭合。0.165.1canonical 执行与 keeper:后台run_shell、plugin-bin 与 delivery push 复核 canonical workspace/repository authority;supervisor lock、zombie/PID 复用、POSIX group、Worker loss、持久清理证据和 socket/path 上限完成三平台发布门。0.165.1依赖安全:CLI 固定修复后的js-yaml3.15.1 线,PDH 0.4.58 使用adm-zip0.6.0,避免恶意归档在适配器入口校验前触发已披露的 4 GB 分配路径。0.165.2耐久工作流与插件:Marketplace semantic payload/activation lifecycle 正式进入 tarball;provider/tool/child-call、timeout、semantic compaction 与 stage input 使用 durable receipt/checkpoint,response loss 不盲目 replay。0.165.2–0.165.6会话预算与结果回收:REPL/headless/WS 共享 turn/token/USD/tool-time/wall-time authority;cc session budget status|recover|receipts处理未知 usage。execution-location result bundle 先持久验证与 content-free review,再显式 preview/import/apply。0.165.2–0.165.6Artifact 结算:artifacts access|access-log在暴露路径前复核文件身份/大小/SHA-256/lineage;remove --deletion-id与clean --cleanup-id用 hash-chained ledger 支持 response-loss 重试,0.165.5再加入孤儿操作的有界恢复投影。0.165.3keeper retirement:持久退役 evidence、dead-owner lock reclaim、bootstrap release replay 与有界 Windows health probe 进入稳定版。0.165.4可移植首次安装:PDH0.4.59的 native SQLite addon 为 optional;没有 Python、编译器或 native prebuild 时仍可安装,并回退内置sql.jsWASM。0.165.5@11aef634aa:MCP package native addon 与 unsupported strict-native loader 失败闭合、durable workflow/orphan Artifact recovery 已进入 CLI/IDE 发行面,P1-5 Marketplace 与 ARM64 host aggregate 同 SHA 全绿。Desktop returned-artifact workbench 与 iOS transient remote-session recovery 仍只属于对应源码快照。0.165.6@ef4324349f:Remote Control 回环默认与 LAN 显式授权、canonical Marketplace source identity、摘要固定归档、Windows short-path authority、跨会话消息、MCP 重连/生命周期恢复,以及concise/readline交互已公开。后续 HEAD 的 session group、browser evidence 与 execution-location drain 不继承该 tag 的发布授权。0.165.8@28f92564f5:完整承接0.165.6,并修正 Agent SDK 发布门的运行目录隔离:模拟 OS HOME、CHAINLESSCHAIN_HOME、工作区与安全锚点分离,使生产 fail-closed 权限路径在真实 CLI 测试中得到验证。0.165.7未发布。0.166.0@40354eb432:Agent Platform 正式发布 canonical Protocol/codegen、CC App Server、Agent Kernel adapter、durable Graph Kernel、Graph trace/eval、受治理cc execfacade、Record & Replay 原型和签名 Webhook 边界。SDK/CLI 发布不代表全部 Desktop/IDE adapter cutover 或 Graph 唯一 writer 已完成。0.166.1:协同公开 Agent SDK0.2.1与 Agent Protocol0.1.1,保持 CLI、SDK、Protocol 的独立发布证据。0.166.2@f868e14206:真实 team agent 公开私有 send/receive/ack/followup 宿主工具;TeamMailbox v3 提供稳定 consumer、至少一次投递、幂等、read/processed/dead-letter 与 checkpoint。0.166.3@67fdfd2535:公开 custody handoff、idle followup、canonical message/handoff 投影、SessionMessageFabric 与结构化审批/exact grants;协议与 TS/Python SDK 协调升级到0.1.2/0.2.2。0.166.4@6b1619926c:公开 37 类 canonical Agent stream discriminator、typed envelope 与严格 known-event validator;TS SDK 升级到0.2.3,配套 Protocol/Python SDK0.1.4/0.2.3@e7a059d3ed,未知未来事件仍由 transport 无损保留。0.166.5@2f5b0f263a:公开 37-event payload-level union、四语言严格 validator、跨端 causal conformance、固定能力 Desktop/VS Code App Server pilot 与实验 WebSocket;App Server 1,800 秒 overload/RSS soak 通过,配套 SDK0.2.4、Protocol0.1.5、Open VSX0.37.70。0.166.6@f2a249bf3d:Agent IPC child/interaction/request/stdio/timeout 全面有界化,完成旧 WS、MCP、浏览器、P2P 与用户介入 backlog 普查,并串行化 Vitest worker 基础设施重试;三平台 CLI CI/Strict 与独立制品/provenance 回读均成功,后由0.166.7承接。0.166.7@19834a1845:通过 entry-scoped store、cutover ledger、migration/canary gate 与跨平台 journey 完成受支持 CLI 入口的 Graph authoritative writer 切换;legacy mutation 在已切换入口失败闭合。0.166.8(未单独发布的源码候选):新增耐久 Graph history、可恢复 quorum HumanTask、definition migration/retirement evidence、Team fairness、temporal message reliability 与跨端审批 single-winner CAS,全部由后续公开版承接。0.166.9@222396f6a8(历史完整门禁基线,已由0.166.15取代):承接0.166.8,新增真实 Playwright UI replay 与三平台 network-escape probe;可选 Codex App Server 使用 exact-version allow-list,未知或预发布版本在 turn admission 前回退稳定的codex exec --json。- 原生发行边界:unsigned 六目标 native validation 与三系统两小时可靠性门已在同一精确 SHA 成功,但 validation 固定
signed=false、releaseEligible=false;Windows Authenticode、macOS signing/notarization、updater key 与公开原生 fresh install/upgrade/rollback 回读仍未完成。 - 跨平台 sandbox 与 credential agent:前台、后台、hook、MCP、monitor、LSP、PTY 和插件 bin 都通过统一 broker 执行。
- 强执行路径补齐:插件异步/后台进程、通用后台任务、CLI PTY 与桌面项目 PTY 共用失败闭合边界;未经证明的项目根和远端 metadata 不能获得本机 PTY 权限。
- 技能执行边界:production
skill run不在 CLI 主进程导入生成的handler.js,也不向 Skill 注入 MCP client、Process Broker 或child_process;隔离 Skill 只获得与父级 ceiling 相交后的read_file、search_files、list_dir。历史shell-execmetadata 与 legacy handler 不产生当前运行权限。 - 插件治理:按 scope 启停、来源感知升级/回滚、当前会话热重载,并查看签名、SBOM、来源与组织策略摘要;升级在 staging 校验后原子激活,失败时恢复旧版本。
- 用量与重试归因:
cc session usage可按插件/版本归因 plugin-bin 与插件 MCP 调用,并显示有界工具耗时、观测重试及脱敏 LLM retry 原因,不记录工具参数、输出或凭据。 - IDE worktree 与协作任务:VS Code / JetBrains 显示 worktree、team 与 batch 的 owner、权限模式、预算、状态和副作用计数;协作单元不会因此获得后台进程 attach/stop 权限。
- P2-14 托管 workspace 回滚:Process Broker 为声明范围内的 managed writer 建立持久 checkpoint,成功时接受,失败、取消或超时时带 fence 恢复,并显式区分
full、partial与none覆盖。 - Checkpoint restore saga:direct/timeline restore 绑定 workspace prestate、生命周期锁、Git/copy 不可变目标、安全 checkpoint 与 hash-chained CAS journal;
cc checkpoint recovery list|show|abort|resume|rollback|release只对验证通过的恢复状态开放。 - P2-16 Agent Teams:
cc team run使用本地 schema v6 authority;cc team queue使用独立 queue schema v1、fenced lease、四维预算与共享可信本地文件系统协调,恢复和不明确副作用进入显式裁决。 cc session export <id>:默认扫描并脱敏会话中的 API Key、JWT、连接串等秘密;只有显式--no-redact才保留原文。CHAINLESSCHAIN_HOME=<dir>:把配置、会话、状态、日志和缓存统一隔离到指定目录,适合 CI、多项目或便携部署。
系统架构
cc
├─ lazy command dispatch (manifest + help/alias)
├─ agent runtime (foreground / background)
│ ├─ local attach (NDJSON/TCP)
│ └─ canonical transcript / compaction / resource budget
├─ process-execution-broker
│ ├─ platform sandbox + native attestation
│ ├─ credential agent
│ └─ managed workspace transaction + restore saga/recovery
├─ agent-team runtime
│ ├─ local authority schema v6
│ └─ shared-filesystem queue schema v1
├─ plugin runtime (policy + lifecycle + provenance)
├─ controlled Skill boundary
│ └─ isolated child → read_file / search_files / list_dir only
├─ durable event / interaction journal
├─ scheduler kernel
│ ├─ versioned SQLite + revision CAS + occurrence history
│ ├─ Routine / Agenda / Cowork / Automation / Loop adapters
│ ├─ exact capability policy + transactional budget authority
│ ├─ adjudication + migration/rollback evidence CAS
│ └─ source-only checkpoint control + incident requeue
├─ MCP ws/wss + uncertain-outcome recovery authority
│ └─ stdio runtime identity + source policy/workspace authority → Broker
├─ bounded usage / retry attribution
├─ async-hook supervisor (timeout + process-tree reap)
└─ Hooks v2 + session hooks (Setup/Notification)Scheduler 运维与发布后恢复命令
0.163.8 继续公开人工裁决与迁移检查。裁决前必须停掉所有 scheduler host、排空已分发工作,并在外部系统核验真实结果;不要直接编辑 SQLite/JSONL 绕过证据 CAS。
cc daemon scheduler adjudication list
cc daemon scheduler adjudication show <occurrence-id>
cc daemon scheduler adjudication decide <occurrence-id> \
--decision confirmed_applied \
--expected-evidence-digest sha256:<digest> \
--expected-attempt <attempt> \
--expected-fence <fence>
cc daemon scheduler migration list
cc daemon scheduler migration show <migration-id>
cc daemon scheduler migration rollback <migration-id> \
--expected-evidence-digest sha256:<digest>0.163.8 的 Automation Center 会在 center-projection 中给出 exact argv。以下 mutation 必须使用刚读取到的 fence/revision;投影过期就重新读取,不要猜值:
cc automation center-projection --json
cc automation center-runtime-action <occurrence-id> pause \
--expected-fence <fence> --expected-control-revision <revision> --json
cc automation center-runtime-action <occurrence-id> resume \
--expected-fence <fence> --expected-control-revision <revision> --json
cc automation center-incident-action <incident-id> retry \
--expected-revision <revision> --json
cc automation center-incident-action <incident-id> cancel \
--expected-revision <revision> --jsonpause 是合作式 checkpoint 控制,不是强杀;manual incident 不提供 retry,因为无法证明外部副作用未发生。上述 runtime/incident 命令已经进入 0.163.8,仍必须按投影给出的 exact fence/revision 操作。
受治理的多 Agent 合并审查
0.163.8 不要求直接合并 Agent 生成的完整 branch。先预览候选分支,读取输出中的 review id、revision、plan digest 以及稳定的 file/hunk id,再只发布审核通过的选择:
cc team merge-review preview \
--branch agent/api --branch agent/tests --json
cc team merge-review show <review-id> --json
cc team merge-review apply <review-id> \
--revision <next-revision> \
--plan-digest sha256:<plan-digest> \
--file-id <file-id> \
--hunk-id <hunk-id> \
--actor local-operator \
--reason "reviewed API and tests" \
--jsonshow 会给出当前状态下可执行的 exact argv。发生冲突、base/branch 漂移或发布后需要撤销时,重新 show,再按输出的 revision/evidence digest 与完整 review id 执行受控回滚:
cc team merge-review rollback <review-id> \
--revision <next-revision> \
--evidence-digest sha256:<evidence-digest> \
--confirm <review-id> \
--json状态默认保存在 CHAINLESSCHAIN_HOME/team-merge-reviews。自定义 --state-dir 必须位于 Agent 可写仓库之外并由当前用户私有;不要把 revision/digest 当签名,也不要绕过 Git 冲突或外部副作用核验。
MCP resource templates
连接的 MCP server 只暴露参数化资源模板时,Agent 可以先调用:
list_mcp_resource_templates {}
list_mcp_resource_templates {"server":"docs"}返回值来自连接阶段的有界 discovery cache。模型或用户选择参数并形成具体 URI 后,再调用 read_mcp_resource;CLI 不会自动枚举模板参数、订阅资源或因为列模板而发起额外网络请求。resource subscriptions、peer-controlled logging、completion 与 MCP sampling 仍不在该稳定契约中。
作用域权限、执行位置与工作流准入
先读取当前证据,再使用输出中的 generation/revision 做 mutation:
cc permissions activity --session <id> --json
cc permissions scoped ask "Bash(git push:*)" --expires-in 30m --reason "release review" --expected-generation <n> --json
cc permissions revoke <rule-id> --revision <n> --json
cc session location current --json
cc session location show <session-id> --json
cc session location compare --json
cc session location handoff <session-id> ssh --jsonworkspace-scoped 规则不会写回 .claude/settings.json,且只在 canonical workspace、TTL、store generation 与 record revision 全部匹配时生效。permissions activity 的 credential 只显示名称,不输出值;session location handoff 只给无密钥预览,不会自行迁移进程或秘密。
Cowork workflow 的保存版本、preflight 和 run 使用同一 definition digest 与 execution-authority session:
cc cowork workflow versions <workflow-id> --json
cc cowork workflow manifest <workflow-id> --json
cc cowork workflow preflight <workflow-id> --definition-digest sha256:<digest> --execution-authority-session <session-id> --json
cc cowork workflow run <workflow-id> --definition-digest sha256:<digest> --execution-authority-session <session-id>0.165.6 会在真正 dispatch 前重新验证保存的 definition digest、执行权威、权限、sandbox、规模与成本门;旧 preflight 不再被当作持续授权,并以 durable receipt 记录 provider/tool/child-call settlement、checkpoint 与恢复状态。
受治理插件市场
面向远程 registry 的推荐顺序是:审目录、选候选、看升级影响、执行安装/升级,再回读已安装 bytes:
cc plugin catalog search-term --registry https://registry.example/plugins --strict --json
cc plugin select plugin-name --registry https://registry.example/plugins --strict --json
cc plugin impact plugin-name --registry https://registry.example/plugins --scope user --json
cc plugin evidence plugin-name --scope user --strict --json--registry 可重复,早出现的源只在版本相同的 tie-break 中优先;选择结果绑定完整 registry set。--allow-insecure-registry 只适合明确受信的隔离网络。catalog/search/impact 输出是证据投影,不是永久授权;安装或升级时仍会复验 publisher、digest、signature、SBOM、license、capability、dependency、policy 与审批状态。
从系统剪贴板附图
0.164.0 的交互式 Agent REPL 支持以下流程:
- 在截图工具、浏览器或图片应用中复制图片。
- 在 Agent REPL 输入
/paste-image;看到Image attached from clipboard后继续输入问题。 - 提交 prompt;排队的图片只进入这一轮视觉模型请求,发送后清空。
支持 PNG、JPEG、GIF 与 WebP。每张最多 20 MiB,每轮最多 4 张且总计不超过 40 MiB,读取超时 10 秒。Windows 使用系统 PowerShell;macOS 使用系统 osascript;Linux 需要有效 Wayland/X11 display,并安装 wl-paste(Wayland)或 xclip(X11)。剪贴板为空、类型不支持、magic bytes 不匹配、宿主工具缺失或超过上限时会明确失败,不会把错误内容发送给模型。
原始实现 merge SHA affafa7f0f6fede3274e503d2387ce493e74bfd0 的专用三平台 host workflow 31813967006、CLI CI 31810849262 与 CLI Strict Sandbox 31810848956 均成功;后续 0.164.0 exact-SHA 发布与公网回读已把它纳入稳定安装契约。
关键文件
主要入口位于:
packages/cli/src/cli.js:启动与注册。packages/cli/src/lazy-dispatch.js:命令延迟分发。packages/cli/src/lib/background-agent-supervisor.js:后台会话监督。packages/cli/src/lib/session-host-runtime.js、session-resource-budget.js:canonical host 与持久资源预算。packages/cli/src/lib/process-execution-broker/:子进程安全执行。packages/cli/src/lib/checkpoint-restore-saga.js、checkpoint-restore-recovery*.js:持久 restore saga、投影与恢复控制器。packages/cli/src/commands/checkpoint-restore-recovery.js:保守的cc checkpoint recovery命令面。packages/cli/src/lib/mcp-call-recovery*.js:MCP 不确定结果记录、核验与裁决。packages/cli/src/lib/mcp-sandbox-policy.js、mcp-stdio-workspace-authority.js:MCP source policy 规范化、可信 cwd 与 workspace authority。packages/cli/src/lib/agent-team/、packages/cli/src/commands/team.js:Agent Team、本地 authority、分布式 queue 与人工裁决。packages/cli/src/commands/team-merge-review.js、lib/agent-team/team-merge-review*.js:0.163.8的 file/hunk 审查、持久证据、原子发布与受控回滚。packages/cli/src/lib/plugin-runtime/:插件安装、scope、来源与 sandbox 策略。packages/cli/src/lib/plugin-runtime/marketplace-*.js:目录、候选选择、升级影响、制品回读与远程 artifact 证据。packages/cli/src/lib/permission-side-effect-center.js、scoped-permission-store.js:实际副作用投影与 workspace-scoped 权威。packages/cli/src/lib/execution-location-*.js、dynamic-workflow-facade.js:执行位置、无密钥 handoff 与 workflow definition/preflight/run admission。packages/cli/src/lib/background-agent-keeper-*.js、workers/background-agent-keeper.js:后台 bootstrap/keeper cleanup authority。packages/cli/src/lib/plugin-usage-attribution.js:插件调用归因。packages/cli/src/lib/skill-execution-authority.js、skill-execution-identity.js:Skill 执行权威、外部 owner-private 状态与身份校验。packages/cli/src/lib/session-host-lease.js、session-anti-rollback-anchor.js:发布后源码中的单宿主租约与会话 anti-rollback witness。packages/cli/src/lib/mcp-stdio-executable-identity.js、mcp-stdio-package-materialization.js:MCP 可执行信任代际与 npm 依赖闭包物化。packages/cli/src/lib/async-hook-supervisor.cjs:异步 hook 并发、超时与进程树回收。packages/cli/src/lib/paths.js:CHAINLESSCHAIN_HOME与运行目录解析。packages/cli/src/lib/session-hooks.js:通知与会话钩子。packages/cli/src/lib/scheduler-kernel/{contract,store,runtime}.js:统一调度契约、SQLite 状态与 host-owned runtime。packages/cli/src/lib/scheduler-kernel/{routine,agenda,cowork-cron,automation,loop,automation-event}-adapter.js:0.163.6已发布 adapter,0.163.7已发布迁移/裁决接线。packages/cli/src/lib/scheduler-kernel/authority-resolver.js、service.js:共享权限/预算解析与常驻 scheduler service。packages/cli/src/commands/scheduler-daemon.js、scheduler store migration/adjudication tables:0.163.7的 typed challenge、证据 CAS、单调裁决与受治理 rollback。packages/cli/src/lib/automation-center-runtime.js、automation-center-incidents.js:0.163.8的脱敏 runtime/incident 投影、exact argv 与 fenced mutation。packages/cli/src/repl/clipboard-image.js、prompt-interactions.js:发布后/paste-image宿主探测、图片校验、队列上限与 vision content 合并。packages/cli/scripts/scheduler-kernel-soak*.mjs、.github/workflows/cli-scheduler-soak*.yml:三平台 formal segment 与 72 小时 campaign verifier。
平台注意
- Linux 严格原生插件路径只接受受支持的当前架构静态 ELF,并把解析、探测和启动绑定到同一插件树/文件描述符;动态 loader、可执行栈、畸形 segment、复制或过期 contract 会在启动前拒绝。
- Linux 上每个实际 bind source 都必须证明 private mount propagation;证明不足时拒绝启动。父进程 pinned descriptor 在 spawn 后关闭,避免 authority 泄漏。
- Windows AppContainer 路径绑定目标句柄、受信环境与策略摘要;跨 probe、spawn、IPC 和 detached 启动边界都会复核目标及插件身份。
- Windows 上
.cmd启动、hook 输出清理、后台 attach 路径已修复。 - Windows 异步 hook 优先使用
taskkill /T /F回收整棵进程树;当系统允许枚举但拒绝taskkill时,会先快照后代 PID 并从叶子向上兜底终止。受限沙箱若同时禁止枚举和终止,只能回收当前可控子进程并显式跳过真实树终止测试。 - raw PTY 在 close/error 后立即失效;attached session 停止时回收完整 POSIX process group 或 Windows process tree。
- Hooks v2 以 generation-aware opaque identity 绑定可信宿主根。晚到的 stdin
EPIPE不会吞掉已完成 hook 的 status 0 输出或 status 2 block;其它 spawn error 仍失败闭合。 - Hooks 与 Broker 共享单一 runtime graph,避免重复 CredentialTransport worker/listener 与稳态 FD。
- 本地控制通道优先使用 NDJSON/TCP fallback,需要本地会话凭据。
- 停止后台 Agent 时,supervisor 会校验 PID 与会话绑定关系,避免误杀。
MCP runtime identity 与沙箱策略
已发布版可以在新增 stdio server 时显式声明 runtime:
cc mcp add my-server --command node --args ./server.mjs \
--runtime-kind node --auto-connect0.163.8 允许在 .mcp.json、managed settings、Skill 或 Cowork 定义中声明 source-required boundary:
{
"mcpServers": {
"workspace-tools": {
"command": "node",
"args": ["./tools/server.mjs"],
"runtimeKind": "node",
"cwd": ".",
"sandboxPolicy": {
"requiredBoundaries": ["filesystem", "network"]
}
}
}
}source 配置中的 requiredBoundaries 当前只接受 filesystem 和 network。这不是“尽力而为”提示:配置会绑定可信 workspace/cwd 后进入 Process Broker;当前平台无法证明所需边界时 server 不启动。exact-package capsule 还会强制叠加内部的 code-snapshot 与 process-tree 宿主边界。
在 IDE 中查看质量、插件、Worktree 与 Agent Teams
Open VSX 当前公开 VS Code 0.37.87,JetBrains Marketplace 当前公开 0.4.113。生产建议搭配 CLI 0.166.30:
- 质量上下文只发送有界的测试结果、覆盖率与调试器快照,并标注新鲜度;VS Code Notebook 使用当前 notebook 的真实执行上下文。
- Installation Doctor 会同时检查 Node/Java、managed CLI 与插件 registry 离线恢复状态,不从工作区目录探测可执行文件。
- Plugin Manager 的 enable/disable、upgrade、reload、签名/SBOM 与策略来源都由 CLI runtime 执行;IDE 只在收到
activated后重载会话,扩大 capability 前必须显式确认。 - Worktree Tasks 和 team/batch 协作记录显示 durable owner/session、权限、预算、生命周期与副作用摘要;team/batch 仍不暴露后台进程控制按钮。
- Team Monitor 只读观察本地 v6 或 queue v1 原始状态;takeover、managed checkpoint recovery 与 side-effect adjudication 通过解析出的 CLI 执行,并绑定精确 authority digest、lease 和 evidence fence。IDE 不直接改写权威 JSON。
- TeamMailbox 健康投影只显示计数、最旧消息年龄、dead-letter 数量和有界状态;subject/body/digest、consumer key、失败原因、凭据及 attempt binding 均被排除,malformed/oversize/duplicate 可选字段失败闭合。
- 用量视图显示真实工具耗时、观测重试与实际 provider/model 的脱敏 retry 原因。
- Sessions Workbench 只消费 CLI-owned session projection,并按 exact revision 决定 resume、attach、delivery 与 remote-control 动作;可恢复 delivery 覆盖 GitHub、Gitee、configured remote 与 manual handoff,rewind/branch timeline 绑定 session、workspace、repository head、checkpoint revision 与 manifest digest。
- VS Code
0.37.87与 JetBrains0.4.113已公开消费 Schema 生成的 Agent event 类型,并延续 TeamMailbox 健康、durable workflow/Artifact recovery、Context/Side-effect/Automation Center、安全 Remote Control、跨会话消息、Focus View 与 browser evidence;VS Code 另提供页面化 Workbench、只读 Skill Library、自定义模型连接和默认关闭的固定 Thread/Turn App Server pilot。
托管回滚与 Agent Team 边界
--managed-checkpoint只覆盖 Process Broker 管理且位于声明 workspace 范围内的 writer;未托管进程、其他本地进程与范围外路径不在保证内。coverageTarget=full仍要求writerIsolation=exclusive-workspace;Agent Team 当前 checkpoint authority 为partial、writerIsolation=unknown、externalSideEffects=true。- 网络、数据库、消息、部署、支付和其他外部系统操作不能由 workspace checkpoint 回滚;需要业务幂等键、事务日志与结果核验。
- queue v1 依赖共享可信本地文件系统和文件锁,不提供复制、仲裁、BFT 或网络分区容错。状态是未签名的可信控制面,父目录与祖先必须可信。
- 10,000 task / 64 worker 结果来自单进程内 TeamRunner 异步 worker;三平台长期 soak 使用 2 个真实 OS worker 验证跨进程 DAG、故障与恢复,不等价于 64 个分布式进程或 live-model 质量保证。
配置参考
默认运行目录是 ~/.chainlesschain。设置 CHAINLESSCHAIN_HOME 时,该值就是运行目录本身,不会再追加一层 .chainlesschain:
CHAINLESSCHAIN_HOME=/tmp/cc-ci cc session list
# 会话文件:/tmp/cc-ci/sessions/<id>.jsonl
# 主配置: /tmp/cc-ci/config.jsoncredential agent 会保留运行所需的非秘密会话标识(如 CC_SESSION_ID、CLAUDE_CODE_SESSION_ID),但仍过滤未知的 *_SESSION 变量与长效凭据,避免把无关宿主环境透传给子进程。
Skill 执行边界
- production
skill run不导入handler.js;非隔离 direct handler 会返回CC_SKILL_DIRECT_HANDLER_BLOCKED。 - 隔离 Skill 只获得父级权限上限允许的
read_file、search_files、list_dir,没有 MCP client、Process Broker 或 Node.jschild_process。 capabilities: [shell-exec]目前只是历史 descriptor/template 元数据,不产生 runtime authority;CLI-Anything、CLI Pack 与 creator 生成的 legacy handler 仅供显式迁移和检查。- 不要通过修改 handler、恢复已删除 façade 或直接 import 来绕过边界。若未来恢复 handler 执行,必须重新证明 source/digest approval、可执行字节身份、完整进程树、固定 deadline、host-owned dispose 与三平台真实回归。
使用示例
# 后台启动 Agent,并用返回的会话 ID 接管或查看日志
cc agent --bg -p "重构 auth 模块并补测试"
cc attach <session-id>
cc logs <session-id>
# Git 仓库中后台任务默认使用 committed HEAD 的隔离 worktree;
# 只有明确接受共享 checkout 风险时才使用 --no-worktree
cc agent --bg --no-worktree -p "只读分析当前未提交修改"
# 使用隔离运行目录验证配置与会话
CHAINLESSCHAIN_HOME=/tmp/cc-ci cc session list
# 只预览 Agent Team DAG,不执行任务
cc team plan --tasks team-shell.json --json
# 查看 checkpoint 恢复状态;执行 resume/rollback 前先核验证据
cc checkpoint recovery list --json
# main 源码:只读列出 scheduler outcome-unknown 待裁决项
cc daemon scheduler adjudication list
cc daemon scheduler adjudication show <occurrence-id>decide 只能在交互式 TTY 中运行,并要求最新 evidenceDigest、attempt、fence。不要在 scheduler host 仍运行、已分发任务尚未排空或外部结果未核验时执行。决策落盘后重启一个 scheduler host 应用结果。
性能指标
当前 Runtime 不承诺跨机器固定延迟。模型响应时间取决于 provider、上下文和网络;本地性能主要受 CLI 冷启动、JSONL 会话大小、工具进程数量、Git/worktree 操作和磁盘性能影响。
| 指标/边界 | 当前口径 |
|---|---|
| 命令加载 | manifest + lazy dispatch,未使用命令不在启动阶段加载 |
| TeamRunner 容量验证 | 单进程异步 worker 场景覆盖 10,000 task / 64 worker;不等价于 64 个 OS 进程 |
| 跨进程长期验证 | Linux、Windows、macOS 各使用 2 个真实 OS worker 运行 120 分钟 soak |
| 资源预算 | token、USD、wall-clock 预算持久化并带 fencing;未知计量不会在启用 cap 时按零处理 |
| Hook 回收 | 受 timeout 管理;退出时回收已知子进程或进程树,并显式报告平台限制 |
性能回归应记录 CLI 版本、准确提交、操作系统、Node 版本、provider/model、输入规模和 sandbox 模式;不能把 fake-LLM 或单进程压力结果外推为线上模型质量或分布式吞吐保证。
安全考虑
- 所有前台、后台、Hook、MCP、PTY、插件和技能子进程应经统一 Process Broker;不要在生成的 handler 中直接绕过 Broker。
- 显式
workspace-write/strictsandbox 无法建立时失败闭合。配置值不等于隔离已经生效,应结合cc doctor和平台证明检查。 - secret 使用
cc config set-secret或受支持的环境/OS store;普通config set、argv、日志和会话导出不应用于保存明文凭据。 - 后台控制通道凭据、checkpoint authority、Team lease/fence 和恢复 evidence 都是本机能力边界,状态目录及其祖先必须可信。
- managed checkpoint 只回滚声明 workspace 内由 Broker 管理的 writer,不能撤销网络、数据库、部署、消息或支付等外部副作用。
cc session export默认脱敏;只有理解泄露风险时才使用--no-redact。
更细的平台约束见“平台注意”,回滚与队列限制见“托管回滚与 Agent Team 边界”。
故障排查
| 症状 | 排查与处理 |
|---|---|
cc 命令或帮助与源码不一致 | 比较 cc --version 与 packages/cli/package.json;源码运行使用 node packages/cli/bin/chainlesschain.js --help |
后台 attach 只能跟随日志 | 检查 session 状态与本地控制通道;worker 已退出或通道不可用时降级为日志跟随是预期行为 |
| strict sandbox 启动即拒绝 | 运行 cc doctor,检查 Docker/bubblewrap/AppContainer 与平台证明;不要通过降低策略掩盖生产配置错误 |
checkpoint 显示 partial / none | 检查 writer 是否由 Broker 管理、是否位于声明 workspace,以及是否存在外部副作用 |
| Team task 停在 adjudication | 重新读取 status、authority digest、attempt 和 evidence,再显式 retry、accept 或 cancel |
| Scheduler 出现 outcome-unknown 死信 | 0.163.7 先停全部 host、排空 dispatch、外部核验,再执行 adjudication show/decide;禁止盲目重跑或直接改存储 |
| pause/resume 提示 fence/revision conflict | 重新读取 center-projection 并使用最新 exact argv;不要复用旧投影或自行改 fence |
| incident retry 被拒绝 | 只有与 scheduler dead letter 的 occurrence/job/run/fence/error code 全部匹配才可重试;manual incident 只能 cancel |
CC_SKILL_DIRECT_HANDLER_BLOCKED | 当前 production 不执行 direct handler;改用受支持的隔离 Skill 工具,不要修改 handler 绕过检查 |
| 会话或预算状态异常 | 在同一 CHAINLESSCHAIN_HOME 下检查 session JSONL、状态日志和目录权限,避免混用多个运行目录 |
测试覆盖
在发布或本地验证前,建议执行:
cd packages/cli
npm run test:unit
npm run test:integration
npm run test:e2e0.166.9 的权威发布提交为 222396f6a8429d4b862292a2572067a5cacb1003。同一提交的 CLI CI、CLI Strict Sandbox、npm release/readback、IDE release、Record Replay、Codex compatibility 与 Desktop signed Skill qualification 均成功;registry tarball、不可变 workflow artifact 与 provenance 身份已交叉核对。
更晚的远端主线 5ae6fe2451 增加真实协作评估与 IDE ARM64 retry 等源码改动,但不继承 0.166.9@222396f6a8 的 npm 发布身份。签名 Desktop Skill qualification 证明该 exact SHA 的资格路径,不等同于公共 native 安装包已经发行。
