[loop] Stale ScheduleWakeup fires after early manual success — no cancellation mechanism

Open 💬 0 comments Opened Jun 13, 2026 by skbs-repo

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_

View original on GitHub ↗