Repository navigation
Description
Summary
The Squad bootstrap workflow installed into a fresh consumer repository completed without creating its expected Cast pull request and research-proposals issue. Investigation found two issues in the shipped bootstrap/validator bundle:
workflows/squad-bootstrap.mdpinned a SHA-256 that did not match the shippedworkflows/shared/squad-cast-validator.mjsresource.- After correcting that pin, first-run validation treated the intentional absence of a committed
.squad/casting/registry.jsonandhistory.jsonas an error. The agent spent its execution window investigating an unavoidable genesis-state diagnostic and eventually timed out.
Reproduction
Install and run the Squad bootstrap workflow in a fresh repository with no existing .squad/casting/registry.json or .squad/casting/history.json committed at HEAD.
The initial run may emit noop instead of the materialization safe output because the generated validator runner expects:
31e568ae4a0cc372f5b79d4b024ba8b7af1f38feac54034221fb203da9918ab4
while the installed shared/squad-cast-validator.mjs resource hashes to:
62fbf47b51639fd1878c143e5176ee3099e390065997411511e9d483d467bbce
After correcting the pin, a subsequent first-run bootstrap can still time out while repeatedly investigating this diagnostic:
registry base: committed registry/history pair is unavailable or malformed
No safe-output item is emitted, so the materialization job is skipped.
Verified fixes
A consumer-side patch successfully resolved the failure by:
- aligning the bootstrap validator integrity pin with the exact distributed validator bytes;
- changing
committedRegistry()so:- neither committed file exists: valid genesis state, return
nullwithout an error; - only one committed file exists: reject as an incomplete committed pair;
- both exist: parse and validate as before;
- neither committed file exists: valid genesis state, return
- raising the bootstrap timeout from 20 to 30 minutes as additional protection;
- regenerating integrity pins in both
squad.mdandsquad-bootstrap.md; - recompiling the affected workflow lock files with the matching
gh-awcompiler version.
After these changes, bootstrap completed successfully and created both expected artifacts.
Proposed upstream resolution
- Apply the genesis-aware
committedRegistry()behavior to the canonical validator. - Regenerate every integrity pin that authenticates
squad-cast-validator.mjs. - Recompile the affected workflow lock files with the repository-pinned
gh-awcompiler. - Add regression coverage for:
- a fresh repository with neither committed registry/history file;
- a repository with only one of the two committed files;
- an existing valid committed pair;
- integrity pins matching the exact distributed validator bytes.
- Consider retaining the 30-minute bootstrap timeout, although deterministic genesis handling should substantially reduce runtime.
Activity
fix: allow gh-aw cast genesis state
chore(release): promote dev to main (v1.1.0) (#2241)