目标模式执行版
目标:把 Context Watch 做成稳定的本地观测工具,辅助调试 LLM 视角、pool 和用户可见 transcript;它不是 release-ready 的核心阻塞项。
当前状态基线
以当前代码为准:
- 已有
src/cli/watch.ts。
- 已有
ma watch [sessionId] --host --port。
- 已有
buildContextWatchSnapshot()。
- 已有
test/context-watch.test.ts 覆盖三类视图映射。
本 issue 剩余目标
完成 Context Watch v1 硬化:
- 非交互模式:
ma watch --latest --once 输出当前 snapshot JSON 后退出。
- WS 协议:连接后先发
hello,再发 snapshot;事件里明确 channel 或 snapshot 类型。
- session 选择:支持显式 session、
--latest,session 不存在时返回非 0 和清晰错误。
- 安全边界:默认只绑定
127.0.0.1;不输出 API key、secret、环境变量原值。
- 鲁棒性:缺失 sidecar、损坏 JSONL、空 pool、空 active context 都不能崩。
非目标
- 不做远程访问/鉴权系统。
- 不做复杂前端产品化。
- 不在本 issue 改 agent/UI 写入侧车文件的架构;如缺写入点,另开 issue。
- 不让 watch 依赖 Ink 或交互终端。
执行切片
- 补
--once 和 --latest。
- 补 session 不存在、端口非法、host 安全提示。
- 补 WS
hello / snapshot 协议测试。
- 补缺失/损坏 sidecar 单测。
- 最后再考虑文件监听/debounce;如果继续用轮询,也要写清楚设计取舍。
验收标准
本 issue 是观测辅助。核心稳定性目标应先完成测试门禁、工具协议、上下文主线,再推进 watch 硬化。
目标模式执行版
目标:把 Context Watch 做成稳定的本地观测工具,辅助调试 LLM 视角、pool 和用户可见 transcript;它不是 release-ready 的核心阻塞项。
当前状态基线
以当前代码为准:
src/cli/watch.ts。ma watch [sessionId] --host --port。buildContextWatchSnapshot()。test/context-watch.test.ts覆盖三类视图映射。本 issue 剩余目标
完成 Context Watch v1 硬化:
ma watch --latest --once输出当前 snapshot JSON 后退出。hello,再发 snapshot;事件里明确 channel 或 snapshot 类型。--latest,session 不存在时返回非 0 和清晰错误。127.0.0.1;不输出 API key、secret、环境变量原值。非目标
执行切片
--once和--latest。hello/ snapshot 协议测试。验收标准
ma watch --latest --once可在非交互 shell 输出 JSON snapshot。ma watch <sessionId>启动本地服务,WS 连接收到hello和 snapshot。127.0.0.1。npm test、npm run build通过。与 #21 的关系
本 issue 是观测辅助。核心稳定性目标应先完成测试门禁、工具协议、上下文主线,再推进 watch 硬化。