docs: capture mainland result sync prerequisite

This commit is contained in:
Your Name
2026-04-19 02:44:30 +08:00
parent 6c4e995f84
commit 3a55db94f8
3 changed files with 269 additions and 165 deletions

View File

@@ -1,138 +1,127 @@
# TASK_BOARD
更新时间2026-04-19 02:40 CST
更新时间2026-04-19 02:43 CST
## 当前主批次
唯一主批次:`H1-检测账本统一最小落地批`
唯一主批次:`J1-大陆逐条结果同步前置批`
目标:
- 不进入新功能实现
- 不进入新页面
- 不扩展控制面
-把 Detect 主账本口径从“双轨显示”收敛到“统一后的有效口径”
-解决 item 级统一前的唯一前置缺口:
- 大陆节点当前没有把逐条检测结果同步回中央
## 本轮已完成
本轮完成了最小统一落地
本轮完成的是结论确认,不是新功能扩展
- `detect_job_service.py`
- 新增统一账本聚合逻辑:
- `_build_effective_node_stats`
- `_build_effective_summary`
- `active_job` 主字段已切换为统一后的有效值:
- `items_pending`
- `items_claimed`
- `items_running`
- `items_completed`
- `items_failed`
- `items_terminal`
- `node_stats`
- 保留中央原始账本供追溯:
- `raw_items_total`
- `raw_items_pending`
- `raw_items_claimed`
- `raw_items_running`
- `raw_items_completed`
- `raw_items_blacklisted`
- `raw_items_failed`
- `raw_items_terminal`
- `raw_node_stats`
- 新增单测:
- `domain-api/tests/test_detect_job_service.py`
- 已核查 `detect_result_projection`
- 已核查 `detect_run_events`
- 已确认当前 item 级回写为什么做不了
## 当前结果快照
## 关键证据
接口验证结果:
### 证据 1`detect_result_projection` 只有聚合数据
- `detect/job/active`
- 主字段已统一为:
- `items_total = 1000`
- `items_pending = 931`
- `items_claimed = 34`
- `items_running = 14`
- `items_completed = 21`
- 原始中央账本仍可追溯:
- `raw_items_pending = 950`
- `raw_items_claimed = 25`
- `raw_items_running = 4`
- `node_stats` / `distributed_node_stats` 已统一为:
- `mainland-controller-01`
- `mainland-worker-01`
- `overseas-control-01`
- `unassigned = 680`
- `detect/queue-summary`
- 主字段已统一为:
- `pending = 931`
- `claimed = 34`
- `running = 14`
最新 `detect_result_projection` 当前只包含:
验证结果:
- `job`
- `latest_event`
- `queue`
- `phase`
- `python3 -m py_compile`
- 通过
- `/opt/domaincheck/domainCheck/.venv/bin/python -m unittest tests.test_detect_job_service`
- 通过
- `domaincheck-api`
- 已重启并验证通过
不包含:
- `domain_id`
- `job_item_id`
- `domain`
- `status` 的逐条结果列表
### 证据 2中央 `detect_run_events` 的逐条事件只有海外
当前中央库里可见:
- `overseas-control-01`
- `domain_started`
- `domain_completed`
当前不可见:
- `mainland-controller-01`
- 无逐条 `domain_*` 事件
- `mainland-worker-01`
- 无逐条 `domain_*` 事件
### 证据 3大陆当前只同步了“聚合参与态”没有同步“逐条结果”
所以当前能做到:
- 主统计统一
- 节点参与统一
当前还做不到:
- 把大陆执行结果逐条映射回 `detect_job_items`
## 当前结论
这轮已经把“中央账本原值”和“分布式 display 附加值”进一步收敛成一套主展示账本。
`I1-检测结果逐条回写设计批` 的结论已经明确:
现在的口径变成:
- 现在还不能直接做 item 级回写
- 不是逻辑没写
- 是中央当前缺少大陆逐条结果输入
- 主字段:
- 直接反映当前统一后的有效检测账本
- 原始字段:
- 仍保留中央派发账本,供排障和审计
## 下一步唯一主批次
这意味着:
唯一主批次:`J1-大陆逐条结果同步前置批`
- Detect 页面不再只是“看起来对”
- Runtime / Queue / Detect 主视图开始吃同一套有效统计
范围:
## 当前唯一剩余问题
- 不做最终 item 回写
- 先补“大陆逐条结果进入中央”的最小数据通道
唯一剩余问题
本批次唯一目标
- 这 still 是“聚合统一”,还不是“逐条 item 真正回写统一”
也就是说:
- 当前已经解决:
- 主统计口径一致
- 节点参与显示一致
- 当前还没解决:
- 大陆执行结果逐条回写 `detect_job_items`
- 让大陆节点把至少这些字段同步回来:
- `job_code`
- `cycle_token`
- `domain_id` 或可稳定映射的 `domain`
- `result_status`
- `finished_at`
## 候选批次
### Candidate I1
### Candidate J2
名称:检测结果逐条回写设计
名称:item 级回写最小落地
进入条件:
- 用户确认要继续把聚合统一推进到 item 级一致
- `J1` 完成后,中央已经能收到大陆逐条结果
范围:
- 只设计 `detect_result_projection -> detect_job_items` 的最小映射方案
- 不直接重做整条执行链
- 将大陆逐条结果最小映射回 `detect_job_items`
- 只更新:
- `status`
- `finished_at`
- `last_error`
- `result_version`
### Candidate I2
### Candidate J3
名称:Detect / Runtime 文案统一
名称:raw/effective 运营文案收口
进入条件:
- 如果用户只想进一步把“raw vs effective”提示写清楚
- 如果用户只想先把页面提示写清楚
范围:
-统一文案
-再扩逻辑
- 补文案
-逻辑
## 暂停项
@@ -142,10 +131,10 @@
- 新模块
- 运维中枢增强
- 发布动作
-检测账本统一无关的工作
-大陆逐条结果同步无关的工作
## 下一轮唯一动作
下一轮唯一应该继续做的事情:
- 明确是否要继续进入 item 级结果回写统一
- 设计并落地“大陆逐条检测结果 -> 中央可消费事件/投影”的最小同步通道