fix(cron): polish wake-now retry PR

This commit is contained in:
Ayaan Zaidi
2026-05-02 19:10:53 +05:30
parent 8db83f241e
commit 9797ae35ca
2 changed files with 2 additions and 6 deletions

View File

@@ -33,7 +33,7 @@ Docs: https://docs.openclaw.ai
### Fixes
- Cron: retry recurring wake-now main-session jobs through temporary heartbeat busy skips before recording success, so queued cron events no longer appear as ok ghost runs while the main lane is still busy. Fixes #75964.
- Cron: retry recurring wake-now main-session jobs through temporary heartbeat busy skips before recording success, so queued cron events no longer appear as ok ghost runs while the main lane is still busy. Fixes #75964. Thanks @kshetrajna12 and @xuruiray.
- Control UI: contain the standalone iOS PWA viewport with safe-area-aware document locking, so Add-to-Home-Screen launches cannot scroll past the device bounds. Refs #76072. Thanks @kvncrw.
- Agents/restart recovery: match cleaned transcript locks by exact transcript lock paths plus the canonical session fallback, so interrupted main sessions using topic-suffixed transcripts resume after gateway restart. Refs #76052. Thanks @anyech.
- Agents/runtime: cache the stable system-prompt prefix and reuse prompt-report tool schema stats during dispatch prep, reducing repeated CPU work before streaming starts. Fixes #75999; supersedes #76061. Thanks @zackchiutw and @STLI69.

View File

@@ -1396,11 +1396,7 @@ async function executeMainSessionCronJob(
break;
}
if (heartbeatResult.reason === HEARTBEAT_SKIP_CRON_IN_PROGRESS) {
// A cron-in-progress skip is caused by this job's own active marker, so
// direct wake-now cannot succeed until the cron job returns and clears
// it (#50773). Other retryable busy reasons can clear while this job is
// still active, so let the bounded retry loop observe a real heartbeat
// run before recording recurring jobs as successful (#75964).
// The active cron marker blocks direct wake-now until this job returns.
state.deps.requestHeartbeatNow({
reason,
agentId: job.agentId,