Conversation
A suspended step can arm a deadline with the reserved 'flowsafe.deadlineMs' key in its suspend() payload. The run's own DO persists a fenced record (dot-joined step key, suspendedAt + resumeCount), multiplexes it with run-owner recovery on its single alarm, and on expiry resumes the run itself with the 'flowsafe.suspensionTimeout' envelope under requestedByKind 'system' (isSuspensionTimeoutResumeData to branch). A resume carrying the reserved key is refused 400 on both the workflow and agent-host routes. Correctness rules hardened along the way: - Only a read that succeeded may conclude anything: runtime.authoritativeStatus throws RunStateUnreadableError on Mastra's isFromInMemory fallback (mapped to 503); recoverStartAttempt refuses to conclude or delete off that fabricated state (previously a real row delete behind a lagging read). - Unsuccessful reads, runtime build failures, and ledger-write failures keep an uncharged 60 s watchdog; a due entry continuously unreadable for 24 h is abandoned under its own log. A successful null charges: five failed wakes tombstone the entry for that suspension (a later suspension starts fresh). - Nested suspensions and ambiguous dot-joined keys are refused on both projections; a foreign record's ledger is never inherited by the merge. - Everything after a successful resume is best-effort (broadcast + reconcile). Ships with a real-workerd spike scenario (arm, kill + restart, the restarted object's alarm resumes with the envelope), ~100 new tests each pinned by a negative control, docs, threat-model and maintainer-guide updates, and a flowsafe minor changeset (fleet-control pairs via updateInternalDependencies). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
release: version packages
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
anchorage-showcase-single-tenant | da607c7 | Aug 20 2026, 06:04 AM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release PR (dev -> main). Publishes:
@proofoftech/flowsafe0.17.0 -> 0.18.0 (minor) — per-suspension deadlines on the run Durable Object.@proofoftech/fleet-control0.3.2 -> 0.3.3 (patch) — internal dependency bump; packs an exact@proofoftech/flowsafe@0.18.0.Version PR #97 (
da607c7) is merged into dev and.changeset/holds no pending changesets. Merging this triggersrelease.yml, which publishes flowsafe then fleet-control in order with provenance and creates the GitHub releases.