[loop] Stale ScheduleWakeup fires after early manual success — no cancellation mechanism
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When a /loop iteration fails and schedules a wakeup via ScheduleWakeup, and the user then manually retries before the wakeup fires and the pipeline passes, the previously queued wakeup still fires — triggering an unnecessary re-run of the entire pipeline even though it has already succeeded.
What Should Happen?
The stale wakeup fires unconditionally. The loop has no memory of its previous outcome and no way to distinguish a legitimate retry from a stale wakeup. It re-runs the full pipeline.
Error Messages/Logs
Steps to Reproduce
Create two skills — one that computes a result, one that validates it
Enable a bug flag that makes skill 1 return a wrong answer
Run /loop /skill-1 <args> then /skill-2 <expected>
Iteration 1 fails → loop calls ScheduleWakeup with a short delay (e.g. 60s)
Before the wakeup fires, fix the bug flag manually
Tell Claude "retry now" — it runs the pipeline immediately, validation passes, loop correctly does not call ScheduleWakeup again
The previously queued wakeup fires anyway → loop re-runs the pipeline a third time unnecessarily
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude 1.12603.1 (3df4fd) 2026-06-11T16:57:36.000Z
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_