Skip to content

feat(goal): stall-resistant pause/resume with full branch coverage - #183

Merged
LeXwDeX merged 1 commit into
devfrom
feat/goal-pause-resume
Aug 7, 2026
Merged

feat(goal): stall-resistant pause/resume with full branch coverage#183
LeXwDeX merged 1 commit into
devfrom
feat/goal-pause-resume

Conversation

@LeXwDeX

@LeXwDeX LeXwDeX commented Aug 7, 2026

Copy link
Copy Markdown
Owner

内容

  • 无 assistant 回复 → 可见暂停:pauseAndPublish + ⏸ 提示,替代静默 stall
  • 僵尸目标新鲜度守卫:active + 零续跑 + 超阈值 + 探针无 assistant → 可见可恢复暂停(probe limit:1;stale 路径早退,不拉全量消息窗口)
  • 纯工具调用轮(无文本输出)→ 合成 continue verdict 直接续跑(受 turn budget 约束)
  • 中断分支:保留 no-pause 语义并补 F1 论证链(status.ts 无条件发 Status+Idle;run-state cancel/onIdle 均 set idle——中断后下一 idle 事件必然到达,shouldPreempt 兜底成立);使用 fiber 安全的 pauseAndPublish 而非 goal.pause,防自中断悬置

测试

  • e2e-loop.test.ts +333 行,4 分支全覆盖(此前零覆盖);沿用既有 fixture 模式
  • 提交时 pre-commit 全量 typecheck + lint 通过;工作流内 opencode 1009 pass / 0 fail(含 goal 套)

备注

  • 中断分支最初被怀疑引入「静默 active」退化,证据审查(status.ts:39-47 / run-state.ts:72,92)推翻该担忧,按 NUANCED 裁决保留并补论证

- 无 assistant 回复 → 可见暂停(pauseAndPublish + ⏸ 提示),替代静默 stall
- 僵尸目标新鲜度守卫:active + 零续跑 + 超阈值 + 无 assistant → 可见可恢复暂停(probe limit:1,stale 路径早退不拉全量窗口)
- 纯工具调用轮(无文本输出)→ 合成 continue verdict 直接续跑(受 turn budget 约束)
- 中断分支:保留 no-pause 语义并补 F1 论证(status.ts 无条件发 Status+Idle,run-state cancel/idle 均 set idle;中断后下一 idle 事件必然到达)——证据审查推翻了「静默 active」担忧;使用 fiber 安全 pauseAndPublish(非 goal.pause,防自中断悬置)
- e2e-loop.test.ts +333 行:4 分支全覆盖(无-assistant 暂停 / 合成 continue / 状态变更暂停 / 中断分支),沿用既有 fixture 模式
@LeXwDeX
LeXwDeX merged commit 4c6a707 into dev Aug 7, 2026
3 checks passed
@LeXwDeX
LeXwDeX deleted the feat/goal-pause-resume branch August 7, 2026 02:58
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