fix(pipeline): make dynamic crews real and no-work runs visible - #285
Merged
Conversation
A composer run with Crew=Dynamic resolved no crew, so run_crew returned a successful StageResult and the pipeline reported DONE having built nothing. - select_crew picks a seed crew from the intent/tech-stack keywords, with a configurable default that is never the SRE crew - crew seeds carry tags + routing keywords - an unresolvable crew now fails the stage (ok=False) instead of passing - post_report asserts the run produced output and flags no-work runs - compose UX: states what is missing before Run, keeps a status strip (state, stage, elapsed, run link) in the card, scrolls the live area in - every shipped blueprint is now executed end to end in tests
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.
Why
A Compose run against
tesserix/test-repowith Crew = Dynamic finished DONE with every agent Idle and nothing built. Worker logs showrun-crewstarting and returning immediately:_resolve_crewonly matched a crew by id or by name, and with three seed crews present its "exactly one seed" last resort never fired — so it returned a successful StageResult carryingcrew_error: no_crew, which the executor recorded as a completed stage.What changed
Crew resolution
select_crewpicks the best seed crew from the intent, repo and detected tech stack; crew seeds now carrytags+ routingkeywords.default_crew(new setting,backend_crew), then to a crew taggeddefault— never the SRE investigation crew.ok=False, soon_failureapplies and the run reports the failure instead of a silent DONE.Honest run verdict
assess_work+post_reportdetect a run where every stage degraded to a stub and mark itok=False/run_verdict=no_work, with the reason in the run report.Compose UX
Tests
tests/integration/test_all_blueprints_execute.py— all 15 shipped blueprints execute to a terminal state and produce output (app-scaffold and sre-monitor skip the output assertion; their work happens in the K8s job runner / cluster).1813 passed, 3 skipped; ruff clean; dashboardtsc --noEmit+next buildclean.