Skip to content

fix(idle): 补偿触发 bug + 存量回填脚本 - #53

Merged
Color2333 merged 1 commit into
mainfrom
fix/idle-compensation-trigger
Jul 18, 2026
Merged

fix(idle): 补偿触发 bug + 存量回填脚本#53
Color2333 merged 1 commit into
mainfrom
fix/idle-compensation-trigger

Conversation

@Color2333

Copy link
Copy Markdown
Owner

Bug:idle 补偿永远不触发

发现 Critical #6_compensate_stuck_skimmed 此前挂在 _process_batch 末尾,但无 unread 论文时 _process_batch 提前 return 0(idle_processor.py:225-227),补偿永远不触发。

服务器实测:库里 1239 篇卡在 skimmed 未精读(有 summary_md 但 deep_dive_md 空,其中 1233 篇高分 >=0.8),idle_processor 反复报"没有需要处理的未读论文"却从不补偿,stuck 论文永久卡死。

修复

  • packages/ai/idle_processor.py:把 _compensate_stuck_skimmed 调用从 _process_batch 末尾移到 _run_loop独立于 skim 批次触发。无论有无 unread 论文,每次 idle 检查都尝试补偿 stuck 论文。_process_batch 只负责 skim,补偿在循环层独立调用。

存量回填

  • scripts/redeep_stuck_skimmed.py:一次性回填存量 stuck 论文。按 skim_score 降序优先精读高价值论文,支持 --dry-run/--limit/--min-score/--concurrencydeep_dive 幂等覆盖,重跑安全。部署后在服务器跑一次回填。

验证

  • ruff / format 全通过
  • pytest:63 passed, 2 skipped(新增 TestIdleCompensationTrigger 2 项:_process_batch 无 unread 返回0且不调补偿、补偿独立捞 stuck 论文)
  • 脚本 dry-run 本地验证(空库返回0)

部署影响

  • 无新迁移、无新增配置
  • 部署后 idle_processor 自动开始补偿(每 60s 检查时跑补偿,配额 deep_read_compensation=2)
  • 存量回填需手动在服务器跑 python scripts/redeep_stuck_skimmed.py(建议先 --limit 100 试跑)

发现 idle 补偿触发 bug:Critical #6 的 _compensate_stuck_skimmed 此前
挂在 _process_batch 末尾,但无 unread 论文时 _process_batch 提前
return 0(line 225-227),补偿永远不触发。库里 1239 篇卡在 skimmed
未精读(有 summary_md 但 deep_dive_md 空),idle_processor 反复报
"没有需要处理的未读论文"却从不补偿,stuck 论文永久卡死。

修复:
- packages/ai/idle_processor.py:把 _compensate_stuck_skimmed 调用从
  _process_batch 末尾移到 _run_loop,独立于 skim 批次触发。无论有无
  unread 论文,每次 idle 检查都尝试补偿 stuck 论文。_process_batch
  只负责 skim,补偿在循环层独立调用。

回填脚本:
- scripts/redeep_stuck_skimmed.py:一次性回填存量 stuck 论文。按
  skim_score 降序优先精读高价值论文(1233 篇高分>=0.8),支持
  --dry-run/--limit/--min-score/--concurrency。deep_dive 幂等覆盖,
  重跑安全。

测试:新增 TestIdleCompensationTrigger 2 项(_process_batch 无 unread
返回0且不调补偿、补偿独立捞 stuck 论文),全套 63 passed。
@github-actions

Copy link
Copy Markdown

🔍 OpenCode PR Review Required

这是一个受保护的分支,merge 前需要进行 code review。

请运行以下命令进行 OpenCode review:

/oc review https://github.com/Color2333/PaperMind/pull/$PR_NUM

或者在 PR 页面评论 /oc 来触发 OpenCode review。


This is an automated reminder from PR Review Gate.

@Color2333
Color2333 merged commit df0adb8 into main Jul 18, 2026
2 checks passed
@Color2333
Color2333 deleted the fix/idle-compensation-trigger branch July 18, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant