fix(workflows): correct restored-session resume notices - #1748
Merged
Conversation
Centralize durable resume eligibility across backend discovery, session catalogs, runtime validation, and restored-session notices. Preserve legacy checkpoint shapes and exclude zero-progress or nested runs while retaining failed and blocked workflows unless explicitly non-resumable. Assistant-model: GPT-5.6 Sol
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Intersect restored-session checkpoint metadata with the authoritative durable resume catalog before notifying users, and cover missing, terminal, resumable, and unrelated-session cases. Co-Authored-By: GPT-5.6 Sol <noreply@openai.com>
This was referenced Jul 13, 2026
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.
Summary
Correct restored-session workflow resume notices so they use the same durable eligibility rules as backend discovery, the session catalog, and runtime dispatch. This preserves the notice introduced by #1726 while ensuring every genuinely resumable root workflow is surfaced and stale or non-resumable metadata is omitted.
Changes
failedandblockedworkflows by default whenresumablemetadata is absent, excluding them only whenresumable: falserunningandpausedworkflow noticesRelationship to #1726
This PR is based on and supersedes/corrects #1726. That PR's notice filter omitted failed workflows when persisted metadata did not contain
resumable: true, even though durable resume semantics intentionally treat failed and blocked workflows as resumable unless they are explicitly markedresumable: false.Validation
AGENT=1 bun test test/unit/resumable-workflow-notices.test.ts test/unit/durable-backend.test.ts test/unit/durable-resume-catalog.test.ts test/unit/durable-resume-runtime.test.ts— 81 passedAGENT=1 bun test test/unit/extension.test.ts test/unit/workflow-lifecycle-notifications.test.ts test/unit/workflow-lifecycle-notifications-01.test.ts test/unit/workflow-lifecycle-notifications-02.test.ts— 46 passedbun run test:unit— passed via commit and push hooksbun run typecheck— passedbun run lint— passedbun run check:file-length— passedgit diff --check— passedFixes #1722
Greptile Summary
This PR makes restored-session workflow resume notices use the same durable eligibility rules as runtime resume discovery. The main changes are:
resumable: falseis set.Confidence Score: 5/5
Safe to merge with low risk.
The update is narrowly scoped and replaces duplicated eligibility checks with one shared predicate. Runtime resume validation now uses authoritative backend state before dispatch. Tests cover the changed status, stale cache, legacy shape, and nested workflow paths.
No files require special attention.
What T-Rex did
Important Files Changed
Sequence Diagram
%%{init: {'theme': 'neutral'}}%% sequenceDiagram participant Host as Session start/resume participant Manager as Session manager participant Runtime as Durable resume runtime participant Backend as Durable backend participant Notice as Notice filter participant UI as User notification Host->>Manager: get restored session entries Host->>Runtime: prepareDurableResumable() Runtime->>Backend: hydrate/list resumable workflows Backend-->>Runtime: authoritative eligible catalog Runtime-->>Host: catalog entries Host->>Notice: findResumableWorkflowNotices(entries, catalog) Notice->>Notice: keep session workflow ids with durable eligibility Notice-->>Host: root resumable workflow notices Host->>UI: notify /workflow resume commands%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% sequenceDiagram participant Host as Session start/resume participant Manager as Session manager participant Runtime as Durable resume runtime participant Backend as Durable backend participant Notice as Notice filter participant UI as User notification Host->>Manager: get restored session entries Host->>Runtime: prepareDurableResumable() Runtime->>Backend: hydrate/list resumable workflows Backend-->>Runtime: authoritative eligible catalog Runtime-->>Host: catalog entries Host->>Notice: findResumableWorkflowNotices(entries, catalog) Notice->>Notice: keep session workflow ids with durable eligibility Notice-->>Host: root resumable workflow notices Host->>UI: notify /workflow resume commandsReviews (3): Last reviewed commit: "Merge origin/main into fix/pr-1726-resum..." | Re-trigger Greptile