# TASK_BOARD 更新时间:2026-04-19 02:57 CST ## 当前主批次 唯一主批次:`J1-大陆逐条结果同步前置批` 目标: - 不进入新页面 - 不扩展控制面 - 只解决 item 级统一前的唯一前置缺口: - 大陆节点逐条检测事件进入中央 ## 本轮已完成 本轮完成的是最小输入通道第二轮收口: - 已让 `detect_result_projection` 开始携带 `recent_domain_events` - 已让中央 `detect_result_ingest` 在接收时尝试落库 `detect_run_events` - 已补幂等去重,避免重复投影重复写事件 - 已补 `sync_agent` 自动产出 `detect_result_projection` - 已完成最小单测与中央 API 重启 ## 关键证据 ### 证据 1:中央接收能力已经补上 当前代码状态: - 大陆侧 `detect_result_projection` 将开始带: - `recent_domain_events` - 中央视角在 ingest `detect_result_projection` 时会: - 提取 `domain_started/domain_completed/domain_failed/domain_blacklisted` - 以幂等方式写入中央 `detect_run_events` ### 证据 2:mainland 当前只在持续推 `runtime_projection` 中央当前可见: - `runtime_ingest.updated_at` - 已刷新到 `2026-04-19 02:55:36` - `detect_result_ingest.updated_at` - 仍停在 `2026-04-17 16:57:32` 说明: - mainland 同步链是活的 - 但还没有持续产出新的 `detect_result_projection` ### 证据 3:自动产投影缺口已经补上 当前代码状态: - `sync_agent` 每个 tick 会基于 `active_job` 自动调用: - `append_detect_result_projection_if_changed` 所以 mainland 拉新并重启 `domaincheck-sync-agent` 后: - 不再依赖有人访问 mainland 检测页面 - 逐条结果会自动进入中央 ### 证据 4:当前真实库里 mainland 逐条事件仍未出现 当前中央库里可见: - `overseas-control-01` - `domain_started` - `domain_completed` 当前仍不可见: - `mainland-controller-01` - 无逐条 `domain_*` 事件 - `mainland-worker-01` - 无逐条 `domain_*` 事件 ## 当前结论 `J1-大陆逐条结果同步前置批` 的代码闭环已经补完: - 中央会接 - 中央会落 - mainland `sync_agent` 也会自动产投影 现在只差: - mainland 拉最新代码 - 重启 `domaincheck-sync-agent` - 然后验证真实事件是否进入中央 ## 下一步唯一主批次 唯一主批次仍然是:`J1-大陆逐条结果同步前置批` 范围: - 不做最终 item 回写 - 先完成 mainland 真实事件进中央的端到端验证 本批次唯一目标: - 让 mainland 通过新版 `sync_agent` 自动把 `recent_domain_events` 同步到中央 - 并在中央确认出现 mainland `domain_*` 事件 ## 候选批次 ### Candidate J2 名称:item 级回写最小落地批 进入条件: - `J1` 完成后,中央已经能收到大陆逐条结果 范围: - 将大陆逐条结果最小映射回 `detect_job_items` - 只更新: - `status` - `finished_at` - `last_error` - `result_version` ### Candidate J3 名称:raw/effective 运营文案收口批 进入条件: - 如果用户只想先把页面提示再写清楚 范围: - 只补文案 - 不改逻辑 ## 暂停项 继续暂停: - 新页面 - 新模块 - 运维中枢增强 - 发布动作 - 与大陆逐条结果同步无关的工作 ## 下一轮唯一动作 下一轮唯一应该继续做的事情: - 在 mainland 节点拉最新代码并重启 `domaincheck-sync-agent` 后,验证: - `detect_result_ingest.payload.projection.recent_domain_events` 已非空 - 中央 `detect_run_events` 已出现 mainland `domain_*`