--- id: T-002 title: 固化浏览器领域、启动配置、实例状态和事件合约 phase: 0 deps: [T-001] status: DONE created: 2026-07-22 owner: codex --- ## 需求与背景 UI 原型和 API 文档需要稳定的 Go 类型,后续平台适配不能自行定义浏览器类型、状态和错误语义。 ## 方案与边界 - `internal/domain/browser.go` 定义浏览器类型、启动配置、实例视图、状态、事件和稳定错误码。 - `LaunchSpec.Normalize()` 只做基础安全校验:浏览器类型、绝对 user data dir、无 userinfo 的 http/https URL和字段规范化。 - `internal/application/browser_manager.go` 定义 BrowserManager、进程启动、进程身份、profile 检查和事件端口。 - 本任务不启动真实浏览器,不实现 Windows API 和实例 registry。 ## 验收要点 - `go test ./...` 通过。 - `go vet ./...` 通过。 - 非法浏览器类型、相对 user data dir、非 http/https URL 和 URL userinfo 被拒绝。 - 业务层不依赖 `os/exec` 或 Windows handle。 ## 执行记录 - 状态:DONE - 变更:新增 domain/application 浏览器合约、Normalize 校验和回归测试,API 文档指向代码权威类型。 - 验证:`gofmt`、`go test ./...`、`go vet ./...` 均通过。 - 阻塞:无。 - 残余风险:代理 URL 和额外参数的完整校验留给 T-003。