fix: release route worker - #23
Merged
Merged
Conversation
release-verify pinned worker_type: verify, but the compatible runtime catalog (b48dce46) only has explore, build, plan, general; the environment gate rejected start with worker.unknown. Replace with general (what the blocks fallback compiles verify to), and close the portable-profile detection gap with a route-catalog guardrail plus a regression test.
LeXwDeX
marked this pull request as ready for review
September 1, 2026 16:14
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.
Closes #22
Why
release-route.yamlpinned its final verification node toworker_type: verify, but the compatible runtime's builtin agent catalog (runtime-compat.json, commitb48dce46) only containsexplore,build,plan,general. The runtime environment gate rejects unknown worker types, so starting the route failed withworker.unknownatnodes[release-verify].worker_type. The portable CI profile never surfaced this because it skips the worker-type catalog check when the catalog is absent — a detection gap, not a second defect. Deleting the key was not an option either:worker_typeis required in nodes form.What changed
release-route.yaml: replace the invalid explicitworker_type: verifyonrelease-verifywithworker_type: general— the same value the runtime's composable-blocks fallback compilesverifyto, so the fix matches the intended behavior. Topology,depends_on, all other nodes, and every unrelated template are untouched (1-line diff).script/validate-route-catalog.ts: new guardrail rejecting anyworker_typeunderconfig.nodes/config.blocksoutside the compatible runtime catalog (explore, build, plan, general); failure message containsnot in the compatible runtime agent catalog.script/validate-route-catalog.test.ts: one regression test rewritingrelease-verifyback toworker_type: verifyand asserting exit 1 with that message. CI already runs both the script and its tests invalidate.yml— no workflow changes.Evidence
bun script/validate-route-catalog.ts .exits 1 withrelease-route.yaml node release-verify worker type "verify" is not in the compatible runtime agent catalog (explore, build, plan, general).bun test script/validate-route-catalog.test.ts: 7 pass, 0 fail, including the new regression case.src/agent/agent.ts:build:141,plan:156,general:182,explore:196; environment gatesrc/dag/validation.ts:858).git diffvs the delivery base: exactly onerelease-route.yamlvalue line plus the guard and its test; no topology or unrelated template changes.Checklist
specgit finishexits 0.