Context
Follow-up from #387 (installer + ADR docs/adr/0026-installation-and-distribution.md, accepted).
Two integrity mechanisms are already built in install.sh and just need release artifacts to point at:
- Commit-SHA pinning —
--sha / ACQ_INSTALL_SHA checks out a full 40-char commit and verifies HEAD matches it, failing closed on mismatch. Content-addressed, so a matching SHA is itself an integrity check.
- Ref pinning —
--ref targets a tag/branch (default currently main for pre-merge testing).
What this issue tracks
- Publish
SHA256SUMS for install.sh (and any release tarball) as a GitHub Release asset on each release.
- Emit a canonical commit SHA per release so the installer can default to that SHA rather than a movable ref.
- Swap the README install URL from
.../main/install.sh to a pinned release tag (README.md lines that curl the raw install.sh).
- Default the installer to the canonical release SHA (wire the already-built
--sha path to the published value).
Blocking dependency / trigger
Blocked until a release that actually contains install.sh exists (chicken/egg: the README can't point at a tag before a release ships the installer). Trigger: the first release cut from main after #387 merges.
Acceptance
- Each release attaches
SHA256SUMS; the hosted raw install.sh URL is pinned to a tag in the README.
install.sh defaults to the canonical release SHA and verifies it (the --sha verification path already exists and is tested).
- "Live end-to-end" validation from ADR-0026's Validation section (hosted-URL + checksum flow) can finally run.
Notes
AI-assisted (OpenCode). Human owner: @mogul.
Context
Follow-up from #387 (installer + ADR
docs/adr/0026-installation-and-distribution.md, accepted).Two integrity mechanisms are already built in
install.shand just need release artifacts to point at:--sha/ACQ_INSTALL_SHAchecks out a full 40-char commit and verifiesHEADmatches it, failing closed on mismatch. Content-addressed, so a matching SHA is itself an integrity check.--reftargets a tag/branch (default currentlymainfor pre-merge testing).What this issue tracks
SHA256SUMSforinstall.sh(and any release tarball) as a GitHub Release asset on each release..../main/install.shto a pinned release tag (README.mdlines thatcurlthe rawinstall.sh).--shapath to the published value).Blocking dependency / trigger
Blocked until a release that actually contains
install.shexists (chicken/egg: the README can't point at a tag before a release ships the installer). Trigger: the first release cut frommainafter #387 merges.Acceptance
SHA256SUMS; the hosted rawinstall.shURL is pinned to a tag in the README.install.shdefaults to the canonical release SHA and verifies it (the--shaverification path already exists and is tested).Notes
release-type: simple) already bumpspackage.jsonversionvia theextra-filesentry added in feat(install): add auto-selecting curl|sh installer + streamline README #387.docs/adr/0026-installation-and-distribution.md(Security posture + Validation + Deferred sections).AI-assisted (OpenCode). Human owner: @mogul.