更新日志
September 4, 2026 · View on GitHub
本文件记录 cs-agent-mcp 的用户可见变更。
0.3.4 - 2026-09-04
ACP 启动超时清理与 Codex adapter 固定
- Runtime probe 超时会先关闭并等待正在进行的 ACP 启动完成,且从 spawn 瞬间跟踪子进程,避免 超时后留下孤儿 adapter 进程。
- Codex ACP adapter 固定为精确版本并作为运行时依赖预安装,优先使用包内绝对 bin,避免每次
通过
npm exec动态解析和触发 npm audit/lockfile 延迟。
0.3.3 - 2026-08-21
Codex warning 与回复内容隔离
- Codex ACP 初始化现在协商 typed session failure 能力,运行时 warning 作为
turn.status诊断事件 保留,不再降级为agent_message_chunk并污染 Agent reply content 或严格 JSON 输出。 - 内置 Codex adapter 最低范围升级到
^1.6.2;^1.1.5创建的持久会话仍按同一内置 Agent 兼容迁移。
0.3.2 - 2026-08-17
原子结构化 Agent 执行
- 新增第 15 个 MCP 工具
cs_agent_run_structured:原子完成 oneshot Agent 的创建、发送、等待、 deadline 取消和最终销毁,并以严格 JSON parse 与 JSON Schema 校验返回 typed result。 - 同一 actor 的幂等 key 会持久化成功的
operationId和结构化结果;相同输入重试返回同一结果, 不同输入复用 key 明确失败。解析失败、schema 失败和 deadline 均保证进入取消/销毁路径。 - 支持 per-run MCP、环境和权限策略;关闭 MCP 继承仍保留认证 loopback 控制面。filesystem/network
强隔离不在当前能力内,相关或其他未知
isolation字段会 fail closed,不会静默忽略。 - capabilities、README、架构文档、tarball smoke 和 stdio E2E 均更新为 15 tools;Facade snapshot v1
以可选
structuredIdempotency扩展保持旧 snapshot 可读。
0.3.1 - 2026-08-01
maxTurns 委派引导
- MCP instructions、工具 schema 和 README 现在明确将
sessionOptions.maxTurns定义为可选的严格 失败预算;普通代码实现、审查、调试和工具密集任务默认省略,仅在调用方接受达到上限即失败时设置, 不再推荐容易让复杂任务提前失败的统一低数值。
0.3.0 - 2026-07-29
ACP v0.13.0 上游同步
- 内置 adapter 范围同步到稳定版
acpx v0.13.0:Pi^0.0.31、Codex^1.1.5、Claude^0.60.0、Mux^0.28.0;新增 Pool (pool acp) 和 ZeroClaw (zeroclaw acp) 命令映射。 - 升级前由旧内置 adapter 命令创建的持久会话,会在恢复时按同一 Agent 的显式迁移表更新为当前 命令;未知自定义命令和跨 Agent 命令仍按不兼容处理,保持恢复 fail-closed。
- ACP SDK 升级到
1.3.0,MCP SDK 升级到1.30.0;生产依赖固定使用已修复的fast-uri 3.1.4与@hono/node-server 2.0.12,消除已知 high/moderate 审计告警。 - 本次不引入上游 Windows structured argv、filesystem capability opt-out、CLI queue/flow/timer 行为;Facade snapshot v1、Workspace owner 和受管 Agent 权限边界保持兼容。
受管 Claude 递归身份修复
- 受管 Claude 现在会把用户配置中直接或通过常用 package-exec 命令启动
cs-agent-mcp的 MCP 别名安全覆盖为当前 Agent 的 bearer loopback 入口,避免子 Agent 被错误创建为 sibling。 - 其他 Claude 用户设置、skills、hooks、plugins 和无关 MCP 继续保留;用户配置不会被修改或复制。
0.2.5 - 2026-07-20
Agent Wait Many
- 新增
cs_agent_wait_many,支持先异步 fan-out 多个 Turn,再按any或all一次 fan-in;any返回当前全部 ready 项,all支持权限/timeout 中断后通过pendingTurnIds续等并跨轮累计。 - Facade 提供
waitMany、waitAny、waitAll,批量等待使用单 snapshot 原子鉴权和单个 revision waiter,不修改 Facade snapshot v1 或既有 13 个工具的行为。 - tarball smoke 现在通过实际临时安装验证 15 tools,并调用 wait-many 完成 Agent 生命周期。
Prompt 超时完整性修复
cs_agent_send.timeoutMs不再被错误地用作整个 Agent Turn 的执行期限,长时间代码审查不会因 提交 timeout 提前取消;同一幂等任务仅timeoutMs不同时也会复用原 receipt,升级前包含 timeout 的旧 fingerprint 会在首次成功重试时惰性迁移。- ACP prompt 真正超时时现在返回
failed/TIMEOUT;已到达的过程事件仍可用于诊断,但不会再把 部分文本或 tool result 伪装成最终 Message 和completed/end_turn。
Agent Top 会话可读性
agents top|ps的 Attach 现在可读取并按时间合并 oneshot Agent 的原生 session records;历史 session 不存在时显示 conversation unavailable 和已有错误,不再无限停在 waiting。- 用户、助手、thinking、tool call、tool result 和 tool error 使用独立类型标题与缩进正文;滚动 视口继续按渲染行稳定定位,paused 未读数改为按新增消息计算。
0.2.4 - 2026-07-19
Workspace 共享控制面
- 多个 Codex、Claude 等独立 stdio 根客户端现在通过机器级按需 Broker 共享同一 Workspace 的唯一 Facade/runtime owner 和 Agent 树;规范 roots 顺序不同仍可交叉管理任务,不同 Workspace 继续隔离。
- stdio 前端使用有状态 Streamable HTTP bridge 和按 session 隔离的 reverse SSE channel;roots 通道
405、断开或超时会返回
BROKER_REVERSE_CHANNEL_UNAVAILABLE,不再被误判为 roots 非法。 - 根连接使用 lease 与 grace 收束。单个前端退出或被 SIGKILL 不影响其他根;grace 内重连保持原 lock token,最后连接离开后才关闭 runtime、释放 lock,并让空闲 Broker 自动退出。
- Broker descriptor、认证、版本握手和 stale recovery 均 fail closed;活跃旧协议 Broker 不会被新版 前端终止,Broker crash 后下一连接恢复 snapshot/session 且不静默创建丢失上下文的新 session。
- 初始化中的 root session 同样参与活跃判断并暂停 grace;关闭按 HTTP listener、session、 Facade/runtime、Workspace lock 顺序收束,进程锁可识别 PID 复用并串行化 stale recovery。
agents list|status|attach|top保持只读并跨 Workspace 扫描,不连接 Broker;13 tools、Facade snapshot v1、diagnostics v1 和通用 ACP runtime 支持面不变。agents top的 Attach 现在直接只读已有 runtime session record,以对话顺序展示用户消息、Agent 文本、thinking、tool call/result;长内容换行且 paused/live 按实际行计数,不为 TUI 复制历史。
产品边界
- 明确保留通用 ACP runtime 与 Pi、OpenClaw、Gemini 等内置 Agent 映射;公开入口聚焦 stdio MCP、
13 个
cs_agent_*工具和agents只读诊断命令。 - 运行时错误改为提供可直接通过 MCP 执行的恢复建议,并统一使用
cs-agent-mcp日志前缀。
0.2.3 - 2026-07-18
MCP 生命周期修复
- stdio 客户端关闭 stdin 或异常退出后,MCP 服务现在会关闭 loopback server、Facade 和 runtime, 并释放 workspace lock,避免孤儿进程阻止后续 Codex/Claude 会话启动子 Agent。
0.2.2 - 2026-07-18
实时诊断 TUI
- 新增交互式
cs-agent-mcp agents top和等价别名agents ps,支持实时列表、稳定选择、过滤、--all范围切换、键盘和 SGR 鼠标导航,以及在同一终端内进入 managed Agent 的 Attach 视图。 - Attach 子视图支持有界历史、live/paused、未读计数和终态提示;root 身份保持可见但不会启动 runtime Attach。
- 所有 DTO 文本在终端边界剥离控制序列;q、Ctrl-C、SIGTERM、resize 和异常路径都会恢复 raw、 mouse、cursor 与 alternate screen。非 TTY 会明确失败并保持 stdout 无 ANSI。
诊断 CLI 修复
- 诊断 CLI 文本输出现在明确区分
root调用者身份与managedruntime;attach 到 root 时会 解释其没有受管 runtime 输出,并避免重复显示agent.created agent.created。
0.2.1 - 2026-07-18
MCP 编排提示
- 增加 MCP server instructions、13 个工具的使用时机与流程描述、完整输入字段说明,以及只读、 幂等和破坏性 annotations,帮助调用 Agent 主动判断何时采用多 Agent、异构 Agent 或独立审查。
0.2.0 - 2026-07-18
诊断 CLI
- 新增只读诊断命令
cs-agent-mcp agents list|status|attach,可从终端查看本机 Facade snapshot 中的 Agent 状态并按 cursor 跟随事件。 - 诊断 JSON 使用
cs-agent-mcp.diagnostics.v1,只输出 allowlist 字段,避免泄露 thought、 identity、Permission request 和 raw tool payload。
错误处理
- Claude 达到显式
sessionOptions.maxTurns上限时返回可识别的MAX_TURNS_EXCEEDED错误和 恢复建议,不再将该配置边界仅报告为通用内部错误。
0.1.1 - 2026-07-17
修复
- Codex ACP 在未设置
CODEX_PATH时自动复用本机codex可执行文件,避免回退到适配器内置 的旧版 Codex;显式路径配置仍保持优先。
0.1.0 - 2026-07-16
新增
- 发布独立 npm 包和
cs-agent-mcp可执行命令,无需依赖 npm 包acpx。 - 提供 13 个
cs_agent_*MCP 工具,覆盖能力探测、Agent 生命周期、消息、Turn、事件、权限、 取消和销毁。 - 支持 Codex、Claude 等本机 Agent,并复用现有 CLI 登录状态和 Claude 用户设置。
- 支持受管 Agent 通过带身份认证的 loopback MCP 连接递归创建子 Agent。
- 支持每个 Agent 的 FIFO Turn、跨 Agent 并发、幂等发送、结构化事件和有界等待。
- 支持 workspace roots 隔离、权限回传、级联取消和级联销毁。
- 持久化 Message、Turn、Event 和 ACP 会话;服务重启后恢复原会话,无法恢复时明确失败。