feat: add local cdp startup and external association
This commit is contained in:
+6
-6
@@ -3,7 +3,7 @@ id: T-302
|
||||
title: 本地 CDP 启动、外部关联与实例端口展示
|
||||
phase: 3
|
||||
deps: [T-102, T-301]
|
||||
status: DOING
|
||||
status: DONE
|
||||
created: 2026-07-25
|
||||
owner: codex
|
||||
---
|
||||
@@ -17,7 +17,7 @@ Chub 需要为新启动的 Chrome/Edge 分配仅限 loopback 的 remote debuggin
|
||||
## 方案与边界
|
||||
|
||||
- `LaunchSpec` 将 remote debugging port 作为受控领域字段;`BuildArgs` 固定生成 `--remote-debugging-address=127.0.0.1` 和 `--remote-debugging-port=<port>`,额外参数继续不得覆盖。
|
||||
- 平台端从保存的起始端口开始,在最多 100 个端口范围中探测可用候选;启动后等待 `DevToolsActivePort` 并请求 loopback `/json/version`,只有验证成功才把该端口写入运行时结果。端口探测与浏览器绑定之间存在竞争时,不自动杀死或重复启动浏览器。
|
||||
- 平台端从保存的起始端口开始,在最多 100 个端口范围中探测可用候选;启动后直接请求该已知 loopback 端口的 `/json/version`,只有验证成功才把该端口写入运行时结果。端口探测与浏览器绑定之间存在竞争时,不自动杀死或重复启动浏览器。
|
||||
- 启动前先合并 Chub launcher registry 与 Windows 外部 profile inspector 结果。目录被外部占用时,只读取该目录的 `DevToolsActivePort`,不扫描全系统 Chrome/Edge 进程或端口。
|
||||
- 外部端点验证失败、端口文件过期、权限不足或浏览器类型不匹配时,保守报告外部/未知占用并拒绝启动;不得借此接管外部 PID。
|
||||
- Gio 设置增加带 Label 和帮助文本的“远程调试起始端口”数字输入;空值在保存时归一化为 `9666`,有效值为 `1024` 至 `65535`。
|
||||
@@ -36,8 +36,8 @@ Chub 需要为新启动的 Chrome/Edge 分配仅限 loopback 的 remote debuggin
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 状态:DOING
|
||||
- 变更:已建立需求、架构、API、交互、原型和任务契约;待实现。
|
||||
- 验证:文档待实现验证。
|
||||
- 状态:DONE
|
||||
- 变更:`LaunchSpec` 新增受控 remote debugging port 并固定生成 loopback 参数;设置持久化并恢复起始端口(空值/旧配置默认 9666);新增端口递增、`DevToolsActivePort` 解析和 `/json/version` 浏览器类型校验。GUI 启动链路会拒绝未验证的外部占用、关联可验证的外部实例、展示 PID/端口/来源,并将端口作为列表边框内的独立字段。真实 smoke 以已知端口校验 Chrome/Edge CDP,并在任意失败路径按 profile 清理测试进程。
|
||||
- 验证:`gofmt`、`go test ./...`、`go vet ./...`、`go build -o build/chub.exe ./cmd/chub`、`scripts/smoke-browser.ps1`(真实 Chrome/Edge loopback CDP)和 `scripts/smoke-windows.ps1` 均通过。
|
||||
- 阻塞:无。
|
||||
- 残余风险:Chrome 默认用户目录可能忽略 remote debugging 开关;端口预探测存在不可消除的短暂竞争,最终以端点验证为准。
|
||||
- 残余风险:Chrome 默认用户目录可能忽略 remote debugging 开关;端口预探测存在不可消除的短暂竞争,最终以端点验证为准。外部浏览器未留下 `DevToolsActivePort` 时,Chub 不会猜测或扫描端口以避免把其他 profile 的 CDP 端点错误关联,只报告外部占用。
|
||||
|
||||
Reference in New Issue
Block a user