Files

36 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

---
id: T-203
title: 实现 CLI 合约和本地事件推送
phase: 2
deps: [T-103]
status: DONE
created: 2026-07-22
owner: codex
---
## 需求与背景
脚本需要稳定的机器可读入口,UI 和进程监控需要共享浏览器状态事件,同时不能把敏感凭证写入输出。
## 方案与边界
- CLI 默认 JSON 输出;`list` 返回配置实例,`events` 返回当前本地配置快照。
- 预留 `start/stop/restart` 命令形状和退出码,未接入 BrowserManager 时明确返回 `service_unavailable`,不伪造成功。
- `application.EventBus` 提供带缓冲的进程内订阅通道,发布不阻塞进程监控,取消订阅会关闭通道。
- 事件和 CLI 输出禁止包含密码、Cookie、Token、完整代理认证和原始系统堆栈。
## 验收要点
- `list`、`events` 可输出有效 JSON。
- 未知命令返回退出码 2 和稳定错误码。
- 事件总线可发布、接收和取消订阅。
- `go test ./...`、`go vet ./...`、`go build -o build/chub.exe ./cmd/chub` 通过。
## 执行记录
- 状态:DONE
- 变更:新增 `application.EventBus` 及测试;`cmd/chub` 增加 list/events JSON 输出、稳定错误码和 start/stop/restart 预留合约;同步 API 文档。
- 验证:`gofmt`、`go test ./...`、`go vet ./...`、`go build -o build/chub.exe ./cmd/chub` 均通过。
- 阻塞:无。
- 残余风险:跨进程实时事件流和 BrowserManager CLI adapter 尚未接入,属于后续迭代范围。