feat(sdk/workflow): add WithBoard RunOption for resume-from-snapshot#17
Merged
Conversation
Runtime.Run now accepts WithBoard(board) to inject a pre-built Board, skipping the normal prepareBoard phase. This allows resume flows to restore a BoardSnapshot and pass it directly into the standard Run pipeline, reusing finishRun's status/message/usage assembly instead of reimplementing it on the platform side. Also adds json tags to Request and Result for direct API serialization. Made-with: Cursor
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
WithBoard(b *Board) RunOptionthat injects a pre-built Board intoRuntime.Run, skippingprepareBoard. This enables resume-from-snapshot flows to reuse the standardfinishRunpipeline (status/message/usage assembly) instead of reimplementing it on the platform side.Board *Boardfield toRunConfigso thatWithBoardtakes priority over both the defaultprepareBoardand any customprepareBoardFn.jsonstruct tags toRequestandResultfor direct API serialization.Test plan
TestRuntime_WithBoard_SkipsPrepareBoard— verifies injected board is used and default prepareBoard is skippedTestRuntime_WithBoard_OverridesCustomPrepareBoard— verifies WithBoard takes priority over WithPrepareBoardTestRuntime_WithBoard_PreservesExistingChannelMessages— verifies finishRun correctly extracts only new messages from a restored boardTestRuntime_WithBoard_MemorySessionStillSaves— verifies memory session save still works in resume pathMade with Cursor