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

Status Closed — not planned
Maintainer reply None cached
Activity 1 comment · opened Jun 13, 2026 · closed Jul 26, 2026

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 ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗