Skip to content

fix: make Repository Intelligence independent of checkout names - #111

Merged
szmyty merged 1 commit into
mainfrom
fix/relay-109-portable-intelligence
Sep 26, 2026
Merged

szmyty merged 1 commit into
mainfrom
fix/relay-109-portable-intelligence

Conversation

@szmyty

@szmyty szmyty commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

Refs #109

Repository Intelligence used the local checkout basename as its tree root label. That label entered the dashboard, summary and manifest, so identical consumer inputs could produce different public bundle digests on different machines.

This change passes the action's validated canonical owner/name to the tree generator. GitHub identity and visibility keep precedence. The standalone CLI accepts --repository or GITHUB_REPOSITORY and rejects missing, invalid, dot-segment or conflicting identity. Local action callers must now provide repository when GitHub identity is absent; the directory-derived fallback is removed. The root label changes intentionally, while existing schema identities and field shapes remain intact. A corrected generator may produce new digests relative to older pins.

The regression executes the actual composite Bash steps in complete detached checkouts with different basenames and parents. It compares every public file and manifest, verifies the canonical label and path exclusion, and covers optional Observatory evidence both present and absent. It also checks distinct source revisions and input authority. Existing same-workspace repetition remains covered; separate receipt tests now vary run, attempt and time while preserving the manifest.

Contributor and consumer guidance covers portable reproduction, provider scheduling proof when workflow gates change, publication evidence by stage, reference-only issue wording and historical rollback preservation. Akashic's consumer-owned guidance follow-up is explicitly tracked under #109 with owner/disposition in the publication guide. The continuity checkpoint is refreshed through the Aether skill. Consumer pins and historical rollback records are unchanged.

Validation:

  • Reproduced the baseline defect using the action and generator from fe58d68404fbd787bb088c6d22d11c49fef378c6: the new integration regression failed on build-manifest.json equality in both snapshot scenarios.
  • python3 -m unittest discover --start-directory tests --pattern "test_*.py" --verbose — all 494 tests passed on the candidate files.
  • python3 -m unittest discover --start-directory tests --pattern "test_repository_intelligence_portability.py" --verbose — all 5 tests passed again on the published branch head below.
  • All five existing catalog/lifecycle/continuity/architecture/journal validators passed; Python compilation passed.
  • Parsed 70 JSON and 36 YAML documents with duplicate-key rejection; Bash syntax passed for 2 scripts and 99 inline blocks. Python substituted for unavailable local Ruby.
  • Pinned continuity schema validation with jsonschema 4.23.0 and FormatChecker, all 12 ordered headings, size bounds, relative links and git diff --check passed. This is local structural proof, not a released EgoLint conformance claim.

Exact local proof against the published branch:

  • Head: 5ce0b25260cdfca4647dbd36ac7bb674092f9ae7
  • Tree: 27252eac5e90cc5c77dfb05bed9de1ac8d29aa37
  • Consumer fixture: 8549ba0d19e7cfd81429b9140a24ed1f97f057f4
  • Both locations produced the same 19-file public inventory in each scenario.
Optional snapshot Bundle digest Manifest SHA-256
Absent sha256:d1a3050f2b665072a2f2e63173b148b34d98ce2864d0620bc9f8eb624fb26359 sha256:ac86de5017300e418ecafef1b574e979404ca3de634fb03f63e48d8128d9ffe1
Present sha256:15b4867c8a3d095d540e01f6494cb3f984235e6a0245c79eeb77fdef4cd8572c sha256:38cda507b111d66a2f037cfb43a09d65d2c2260cf5fe86b6697f2c20562d606e

Remaining acceptance: exact-head GitHub fixture run/attempt and provider digest evidence are pending. Distinguish that branch head from any synthetic PR merge revision. Hosted CI was not polled; no deployment, live-route verification, release or merge was performed. No deployment scheduling gates changed in this PR. Keep #109 open until its remaining acceptance is verified; #106 retains its independent publication scope.

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