Skip to content

ci: add test runner and cross-repo pack sync enforcement#37

Merged
rmichaelthomas merged 1 commit into
mainfrom
feat/ci-and-pack-sync
May 23, 2026
Merged

ci: add test runner and cross-repo pack sync enforcement#37
rmichaelthomas merged 1 commit into
mainfrom
feat/ci-and-pack-sync

Conversation

@rmichaelthomas
Copy link
Copy Markdown
Owner

Adds .github/workflows/ci.yml with two independent jobs running on every push/PR to main:

  1. testpip install -e ".[dev]" then pytest tests/ -v.
  2. pack-sync — fetches session_pack.json from liminate-session-contracts via raw GitHub URL and compares its SHA-256 against the canonical copy in this repo (examples/pack_session.json). Fails with an actionable error message if they diverge.

Deviation from the original spec

The spec also called for syncing against liminate-receipts/packs/session_pack.json. That repo is private and pre-launch, so an unauthenticated raw fetch returns a 404: Not Found body — which would hash differently and fail the job on every run. The receipts copy was verified to be byte-identical to canonical at build time (via authenticated API), so there is no actual drift; only the access method is the problem.

Per decision with the repo owner, receipts enforcement is deferred until launch rather than introducing a maintained PAT secret to guard a dormant private repo. A marked TODO in the workflow documents how to add the receipts step (a one-line mirror of the session-contracts fetch) once that repo is public. Until then, CI enforces sync on the public session-contracts copy.

Part of P0-4 enterprise readiness (version pinning and contract replay guarantee).

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rmichaelthomas rmichaelthomas merged commit b7bdd70 into main May 23, 2026
2 checks passed
@rmichaelthomas rmichaelthomas deleted the feat/ci-and-pack-sync branch May 23, 2026 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant