feat: explicit bounded durable wait plans #8

Merged
severus-snape merged 1 commit from feat/durable-task-waits into main 2026-10-27 06:27:48 +00:00
Collaborator

Problem

Self-reported waiting retained no executable next step or wakeup schedule. External dependency resolution therefore did not restart the authorized task; operator had to ask again.

Implementation

Explicit continuation.wait {reason,retryAfterMs,deadline} + waiting/next registers durable timed recheck, 60s–24h interval, max7day absolute deadline. Persist original scope/next/condition/due/deadline. Scheduler claims one idle recheck via ordinary durable inbox acceptance barrier. Timer means verify condition, never assume it fulfilled or replay effects. Inherited deadline cannot extend, existing20-followup limit applies. Stop/pause/new queued work/externally managed sessions/API/nightly/persistence unavailable suppress wakeups. Expired/exhausted waits become blocked with visible notice. Registered waits excluded from semantic immediate continuation override. Plain waiting tool response explicitly says no wakeup. Own plugin adapter, immutable pin, no generated edits.

Validation

Final581/581 full tests, typecheck/build/diffcheck PASS. Five new tests cover serialized restart, original mandate, same due-time concurrent ticks, persisted-before-execution, no duplicate on next tick, pause/stop/queued work/no persistence, deadline/depth visible escalation, failed disk checkpoint held/retried exactly once, working-turn validation/persisted wait and completion-assessor nonoverride. Existing recovery/completion suites included.

Review / limitations

Author inspected changes, persistent review status blockers0, no independent review round/reset, originals preserved. Timer fallback, not release webhook integration; checks run only when idle and ticked. Need explicit re-registration if condition remains pending, within same inherited deadline. No infinite loop. No formal natural-language authority proof. No previously waiting task silently migrated. Merge/build is not deployment; verify release/image/own GitOps and installed revision separately.

## Problem Self-reported waiting retained no executable next step or wakeup schedule. External dependency resolution therefore did not restart the authorized task; operator had to ask again. ## Implementation Explicit continuation.wait {reason,retryAfterMs,deadline} + waiting/next registers durable timed recheck, 60s–24h interval, max7day absolute deadline. Persist original scope/next/condition/due/deadline. Scheduler claims one idle recheck via ordinary durable inbox acceptance barrier. Timer means verify condition, never assume it fulfilled or replay effects. Inherited deadline cannot extend, existing20-followup limit applies. Stop/pause/new queued work/externally managed sessions/API/nightly/persistence unavailable suppress wakeups. Expired/exhausted waits become blocked with visible notice. Registered waits excluded from semantic immediate continuation override. Plain waiting tool response explicitly says no wakeup. Own plugin adapter, immutable pin, no generated edits. ## Validation Final581/581 full tests, typecheck/build/diffcheck PASS. Five new tests cover serialized restart, original mandate, same due-time concurrent ticks, persisted-before-execution, no duplicate on next tick, pause/stop/queued work/no persistence, deadline/depth visible escalation, failed disk checkpoint held/retried exactly once, working-turn validation/persisted wait and completion-assessor nonoverride. Existing recovery/completion suites included. ## Review / limitations Author inspected changes, persistent review status blockers0, no independent review round/reset, originals preserved. Timer fallback, not release webhook integration; checks run only when idle and ticked. Need explicit re-registration if condition remains pending, within same inherited deadline. No infinite loop. No formal natural-language authority proof. No previously waiting task silently migrated. Merge/build is not deployment; verify release/image/own GitOps and installed revision separately.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
harness/plugins!8
No description provided.