feat: complete T-105b account login reuse
This commit is contained in:
+18
@@ -1176,9 +1176,27 @@
|
||||
- 文档:同步 `AGENTS.md`、`docs/05-coding-rules.md`、`docs/current-state.md`。
|
||||
- 代码:同步修正 T-531 设置未保存离开确认框,改用自定义中文按钮“保存 / 放弃 / 取消”,避免系统默认按钮显示英文。
|
||||
- 验证:`python -m py_compile app\gui\main_window.py tests\test_gui.py` 通过;`python -m unittest discover -s tests -p test_gui.py` 通过(86 tests);`python -m compileall app main.py` 通过;`python -m unittest discover -s tests` 通过(195 tests);`git diff --check` 通过,仅有本机 LF/CRLF 提示。
|
||||
|
||||
## 【2026-07-06】运行修正 · ②AI生成失败状态分阶段提示
|
||||
|
||||
- 现象:在②AI生成选择一个批次,列表都是“失败”状态时点击「开始生成」,状态栏提示“当前筛选结果没有可生成任务”。
|
||||
- 排查:本地最新未删除批次 `20260702_171000_75bd2557` 的 5 条任务均为 `stage=imported/status=failed/collect_attempts=3/generate_attempts=0/apply_attempts=0`,属于①采集失败,不是 AI 生成失败;②没有旧标题/旧封面,不能直接生成。
|
||||
- 修正:新增 `ai.is_generatable_task()` 统一 GUI/Worker/底层批处理口径;②状态列把失败细分显示为“采集失败 / 生成失败 / 更新失败”;「开始生成」无可重试任务时提示先到①完成旧数据采集。AI 生成失败可重试,③更新失败不会被②误重试。文档补充 `docs/troubleshooting.md` 的同名排查条目。
|
||||
- 测试:新增 `test_generate_batch_retries_failed_generation_record_after_existing_result`、`test_generate_batch_does_not_retry_apply_failed_records`、`test_generate_tab_explains_collect_failed_records_are_not_generatable`。
|
||||
|
||||
|
||||
## 【2026-07-06】文档记录 · T-105b 启动登录复用已打开 Chrome
|
||||
|
||||
- 现象:④账号管理同一账号重复点击「启动登录」会再次打开 Chrome 窗口,而不是复用已打开账号 Chrome 创建/激活 tab。
|
||||
- 根因:当前链路 `AccountsTab.launch_login()` → `accounts.launch_for_login()` → `chrome.launch_chrome()` → `subprocess.Popen()` 每次直接启动进程,未使用已有 `chrome.is_running(debug_port)` 做幂等判断;界面上的“已启动”只是显示状态,不是保护逻辑。
|
||||
- 方案:新增 T-105b,要求④启动登录先检查账号 CDP 端口;已运行时不再 Popen,复用现有 Chrome/CDP 并打开/激活卖家中心登录 tab,写 `chrome_launch result=reused`;未运行时才启动并写 `result=launched`。不自动登录、不填密码、不改变①/③预检不自动启动 Chrome 的规则。
|
||||
- 文档:同步 `docs/06-tasks.md`、`docs/api.md`、`docs/routes.md`、`docs/04-architecture.md`、`docs/troubleshooting.md`、`docs/current-state.md`。
|
||||
- 验证:文档-only 更新,未运行单元测试。
|
||||
## 【2026-07-06】T-105b 完成 · 启动登录复用已打开 Chrome
|
||||
|
||||
- 状态:DONE
|
||||
- 代码:`app/accounts.py` 的 `launch_for_login()` 改为幂等入口,先用 `chrome.is_running(debug_port)` 检查账号 Chrome/CDP 是否已运行;已运行时复用现有 Chrome,通过 CDP 打开或激活卖家中心登录 tab,不再调用 `subprocess.Popen()`;未运行时才启动 Chrome、等待 CDP 就绪并打开登录 tab。`app/cdp.py` 新增 `activate_tab()` 复用浏览器 target 激活能力。
|
||||
- GUI:④账号管理启动登录运行日志区分 `result=launched` 与 `result=reused`;复用时状态栏提示“该账号 Chrome 已打开,已复用现有窗口”。
|
||||
- 边界:不自动登录、不填写密码、不绕过验证码;①/③账号预检仍只检测,不自动启动 Chrome。
|
||||
- 文档:`docs/06-tasks.md` 将 T-105b 标为 DONE;同步 `docs/api.md`、`docs/troubleshooting.md`、`docs/current-state.md`。
|
||||
- 验证:`python -m py_compile app\cdp.py app\accounts.py app\gui\tabs\accounts.py tests\test_accounts.py tests\test_gui.py` 通过;`python -m unittest discover -s tests -p test_accounts.py` 通过(9 tests);`python -m unittest discover -s tests -p test_chrome.py` 通过(6 tests);`python -m unittest discover -s tests -p test_gui.py` 通过(88 tests)。
|
||||
|
||||
Reference in New Issue
Block a user