docs: capture mainland sync-agent blocker

This commit is contained in:
Your Name
2026-04-19 03:00:53 +08:00
parent 66f55d880a
commit 451d0f75f0
3 changed files with 141 additions and 147 deletions

View File

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