fix: goal 0021 Phase 1 remainder — DBOS pseudo-steps, input mapping, cycle naming - #20
Merged
Merged
Conversation
…, input mapping, cycle naming) Three verified fixes closing out goal 0021's Phase 1 gap log: - Gap 2 (DBOS parking pseudo-steps in get_run): investigated and found already fixed by goal 0026's PR the same day it was logged (the "DBOS." step-name-prefix filter covers every DBOS system op, and the stepped/breakpoint flow parks through the identical parkForApproval mechanism as a plain guardrail ask). Added the missing proof for the stepped-flow case specifically via assertNoDBOSPseudoSteps in breakpoint_test.go. - Gap 3 (per-step input field unverified): proved the mapping itself is correct on a real multi-step run with a real payload (TestGetRun_MultiStepInput_PopulatedAndChained). Found and fixed the actual cause of the dogfood confusion: RunStep.Input carried omitempty while sibling Output didn't, silently dropping the JSON key on a genuinely-empty first-step input. Removed the omitempty; regenerated bindings. - Gap 4 (generic cycle-detection errors): both cycle shapes now name the actual looping node IDs. findRoot's zero-root case (a pure cycle) uses a new findAnyCycle DFS helper (graph_cycle.go, split out to respect the 500-line file limit). ExecuteWorkflow's runtime walk (a cycle downstream of a valid root -- a shape ValidateGraph's reachability check doesn't catch at all) now tracks traversal order instead of a bare seen-set to report the real loop too. Phase 1 is now fully complete (4 gaps fixed/verified + 1 confirmed-by-design). Phase 2/3 stay open -- they need live interactive probing, not code changes, per the goal's own scope. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh
alicoding
enabled auto-merge (squash)
August 12, 2026 13:47
2 tasks
alicoding
added a commit
that referenced
this pull request
Aug 12, 2026
PR #20's test-go job failed with 'Shutdown: context deadline exceeded' on TestMillMCPService_RealClientRoundTrip -- unrelated to that PR's own diff (composition/graph.go, executionsvc), and a rerun of the exact same failing job went green, confirming a shared-CI-runner timing flake rather than a real bug: 2s was too tight a grace window for a real network server's Shutdown() under variable runner load. Claude-Session: https://claude.ai/code/session_01FYwojT8GdUbYSoggbvEFft Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
alicoding
added a commit
that referenced
this pull request
Aug 15, 2026
…, input mapping, cycle naming) (#20) Three verified fixes closing out goal 0021's Phase 1 gap log: - Gap 2 (DBOS parking pseudo-steps in get_run): investigated and found already fixed by goal 0026's PR the same day it was logged (the "DBOS." step-name-prefix filter covers every DBOS system op, and the stepped/breakpoint flow parks through the identical parkForApproval mechanism as a plain guardrail ask). Added the missing proof for the stepped-flow case specifically via assertNoDBOSPseudoSteps in breakpoint_test.go. - Gap 3 (per-step input field unverified): proved the mapping itself is correct on a real multi-step run with a real payload (TestGetRun_MultiStepInput_PopulatedAndChained). Found and fixed the actual cause of the dogfood confusion: RunStep.Input carried omitempty while sibling Output didn't, silently dropping the JSON key on a genuinely-empty first-step input. Removed the omitempty; regenerated bindings. - Gap 4 (generic cycle-detection errors): both cycle shapes now name the actual looping node IDs. findRoot's zero-root case (a pure cycle) uses a new findAnyCycle DFS helper (graph_cycle.go, split out to respect the 500-line file limit). ExecuteWorkflow's runtime walk (a cycle downstream of a valid root -- a shape ValidateGraph's reachability check doesn't catch at all) now tracks traversal order instead of a bare seen-set to report the real loop too. Phase 1 is now fully complete (4 gaps fixed/verified + 1 confirmed-by-design). Phase 2/3 stay open -- they need live interactive probing, not code changes, per the goal's own scope. Claude-Session: https://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
alicoding
added a commit
that referenced
this pull request
Aug 15, 2026
PR #20's test-go job failed with 'Shutdown: context deadline exceeded' on TestMillMCPService_RealClientRoundTrip -- unrelated to that PR's own diff (composition/graph.go, executionsvc), and a rerun of the exact same failing job went green, confirming a shared-CI-runner timing flake rather than a real bug: 2s was too tight a grace window for a real network server's Shutdown() under variable runner load. Claude-Session: https://claude.ai/code/session_01FYwojT8GdUbYSoggbvEFft Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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
get_run): investigated and confirmed already fixed by goal 0026's PR the same day it was logged — added the missing test proof for the stepped/breakpoint-flow case specifically.inputfield unverified): proved the mapping is correct on a real multi-step run with a real payload; fixed the actual cause of the dogfood confusion (RunStep.Input'somitemptyasymmetry withOutput).Phase 1 of goal 0021 is now fully complete (4 gaps fixed/verified + 1 confirmed-by-design). Phase 2/3 remain open — they need live interactive probing, not code changes, and are explicitly out of scope for this PR.
Test plan
go vet,golangci-lint,go build(desktop + server tags)go test ./... -race -cover(full suite, all green)TestFindRoot_PureCycle_NamesTheLoopingNodes,TestExecuteWorkflow_CycleDownstreamOfARealRoot_NamesTheLoopingNodes,TestGetRun_MultiStepInput_PopulatedAndChained, plusassertNoDBOSPseudoStepsadded to the existing stepped-run breakpoint testtsc --noEmit,eslint,boundaries(dependency-cruiser),vitestall greenRunStep.InputJSON-tag changehttps://claude.ai/code/session_018pkViCNAuZp2vBv2K9AbUh