36 lines
1.5 KiB
Markdown
36 lines
1.5 KiB
Markdown
---
|
|
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 尚未接入,属于后续迭代范围。
|