fix(build): give the compose stage the inputs it actually needs #128
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!128
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/compose-stage-inputs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
main is red. Run 148, the merge of #124, failed in
publish-echo-image.Two faults, both in the compose stage
The stage copied
agent/composeandscripts/stage-compose-sources.shand nothing else, but the script buildscmd/sirens-echo-compose, which needsgo.mod,go.sum,cmd, andinternal. It also never received the script at all:.dockerignoreexcludesscripts/*.Why it reached main
Pull-request CI runs build, policy-check, vet, test, and pre-commit. It does not build the image.
publish-echo-imageis gated ongithub.ref == 'refs/heads/main', so the first execution of this stage in its entire life was the merge commit.I introduced the first fault when I moved staging from bash into a Go expander and did not revisit the Dockerfile. The second predates that and was simply never exercised.
The fix
The build stage compiles
sirens-echo-composealongside the other binaries. The compose stage consumes that binary throughSIRENS_ECHO_COMPOSE_BIN, so it needs no Go toolchain work and runs the same expander the suite exercises..dockerignorekeeps excludingscripts/*with one negation for the file the stage needs.Verified
COPYsources exist and survive.dockerignore.ward exec test,policy-check,vet,prompt-check,pre-commit run --all-filespass.Still a gap
The image has never been built outside CI. Docker is not running on this host, so I could not build it locally, and PR CI will not build it either. This PR going green does not prove the stage works; only the next push to main does. Worth considering whether PR CI should build the image, since that is the specific hole this fell through.
Now verified by an actual image build
Docker came up locally, so the caveat in the description is discharged.
docker buildon this branch succeeds end to end.Inside the compose stage:
The bundle reaches the runtime image at
/app/agent/bundles/creator, carryingmanifest.json,trace.json, a 2487-byte identity card, the 19 admittedaos-publicsources, androster:corewithrole-creatorplus the three personalities.Both runtime directions check out against the built image:
resolveBundlePath,LoadBundle, and the invertedValidateSystemPromptall pass on a real bundle.SIRENS_DEEP_ROLE=director, which has no baked bundle, exits immediately:That is the fail-closed behaviour #98 asked for, confirmed in the shipped artifact rather than a unit test.
Worth noting only
creatorbakes, because it is the only roleagent/compose/roles.kdldeclares. Any other value ofSIRENS_DEEP_ROLEstops the process, which is the correct behaviour but makes the deploy-time flip a two-step change today: declare the role, then set the variable.The pull-request CI gap this fell through is filed as #129.