diff --git a/docs/client/02-architecture.md b/docs/client/02-architecture.md index 71c9924..9b5a508 100644 --- a/docs/client/02-architecture.md +++ b/docs/client/02-architecture.md @@ -85,14 +85,29 @@ client/ | 项目 | 目标(文档描述) | 现状(代码实际) | |---|---|---| -| 顶级导航 | 2 个:PDD 任务、设置 | 3 个:pdd、设备、设置(`src/ui_main.py`) | -| 主窗口文件 | `src/ui/main_window.py` | `src/ui_main.py` | -| 目录分层 | domain / application / infrastructure / workers / ui | 只有 `src/`、`src/util/`、`src/demo1/` | -| PDD 任务页 | 任务表格 + 搜索 + 状态栏 | 单个商品的输入表单(链接/颜色/尺码 + 开始按钮) | -| 主按钮文案 | 「获取任务」⇄「停止获取」 | 构造时是「获取任务」,但状态机(`pdd_ui.py` 485/487 行)仍写着「开始自动获取」/「停止自动获取」,会覆盖掉,**待修** | -| 页面与事件层 | `ui/` 下按页面分文件 | `src/pdd_ui.py`、`src/pdd_ui_event.py`、`src/settings_ui.py`、`src/settings_ui_event.py`,目前只有约束 docstring,尚无实现 | -| SQLite / Admin / Outbox / 任务协调器 | 见 §4 | 尚未实现 | -| PDD 自动化 | `infrastructure/pdd/` 适配层 | `src/util/` 下的独立函数 + `src/demo1/auto_v1.py` 演示脚本 | +| 主窗口文件 | `src/ui/main_window.py` | `src/ui_main.py`。**注意**:`client/AGENTS.md` 已按 `src/ui_main.py` 写规则,两处不一致,见下方说明 | +| 目录分层 | domain / application / infrastructure / workers / ui | 平铺在 `src/` 下:`db.py`、`db_schema.py`、`task_repository.py`、`settings_repository.py`、`task_models.py` 等,另有 `src/util/`、`src/demo1/` | +| 主按钮文案 | 「获取任务」⇄「停止获取」 | 构造时是「获取任务」,但状态机(`pdd_ui.py` 470/472 行)仍是「开始自动获取」/「停止自动获取」,会覆盖掉,**待修** | +| Admin 网关 | `AdminGateway` + Mock/HTTP 两实现 | 尚未实现 | +| 任务协调器 | `TaskCoordinator` / `TaskDispatcher` / `ResultSubmissionService` | 尚未实现 | +| Outbox 提交 | 从 `outbox_events` 取件重试 | 表已建好,提交逻辑尚未实现 | +| PDD 自动化 | `infrastructure/pdd/` 适配层 | `src/util/` 下的独立函数 + `src/demo1/` 演示脚本 | + +已经对齐、不再是差异的(保留在这里做个记录,下次可删): + +- **顶级导航**:已改为 2 个(pdd任务 / 参数设置),与 [05 界面规范](05-ui-specification.md) §2 一致。 +- **PDD 任务页**:已有任务表格(`TaskTableModel` + `TableView`)、类型/状态筛选、 + 关键词搜索和底部状态条,并实现了 `canFetchMore` 增量加载。 +- **SQLite 表结构**:`db_schema.py` 已建好 `pdd_tasks`、`task_runs`、 + `outbox_events`、`app_settings` 四张表;`status` 的 8 个取值与 + [03 数据模型](03-data-model.md) §3 完全一致,也没有残留已废弃的 + `sync_state` / `lease_token` / `admin_status`。 + +> **关于「主窗口文件」这一行:** 目标写的是 `src/ui/main_window.py`(本文 §3 建议目录), +> 但 `client/AGENTS.md` 的代码分层规则写的是 `src/ui_main.py`,而代码按后者在走。 +> **两处文档自相矛盾,需要定一个。** 考虑到代码已经形成了 `src/` 平铺的组织方式 +> (`pdd_ui.py` / `settings_ui.py` / `task_repository.py` …), +> 建议把 §3 的建议目录改成与之一致,而不是反过来搬代码。这属于会改基线的决定,要走工单。 处理原则: