infra: isolate module evidence and generated compatibility summaries - #78
Conversation
There was a problem hiding this comment.
Code Review
This pull request implements true module evidence isolation (GitHub #77) by verifying isolated descriptor digests via isolated fixtures and recording actual coexistence and unclaimed recipe inventories in a matrix report rather than committing global digests. It also introduces a generated compatibility summary report (compatibility-modules.md) for CI/release. Feedback on these changes includes addressing platform-default encoding issues when reading and writing isolated recipe inventories in build.gradle, and fixing a test bug in test_compatibility_matrix_manifest.py where subprocess.run is called with check=True on a conflicting git merge-tree command, which would cause the test to crash.
Follow-up evidence (
|
42e0299 to
e59e778
Compare
Rebase evidence
Gates
Isolation notes
Draft remains draft; no review bot triggered. |
Add an all-module compat-kit manifest disk-hash regression and refresh the two AE2 entries left stale after #78 rewrote that verification-sensitive file. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Manifest integrity follow-up
Correction
Verification
Draft remains draft; no review bot triggered. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 700c7a5fd4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Routine module PRs no longer touch committed coexistence/unclaimed baselines or a tracked compatibility index. Isolated fixtures verify module digests; the matrix records actual coexistence evidence only in build reports. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Keep module digest ownership on descriptors/contracts only: drop shared-test peer SHA pins, document matrix report-only coexistence, and replace only recipeInventory.sha256 in affected Compat Kit contracts. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Railcraft joins #77 isolation with fixture-owned inventory evidence and an isolated 639-recipe digest, without pinning peer Create or global matrix SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Add an all-module compat-kit manifest disk-hash regression and refresh the two AE2 entries left stale after #78 rewrote that verification-sensitive file. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the all-manifest file-hash gate files-only, and restore AE2 contract_sha256 plus bound generation/compile-fixture plan digests to Compat Kit canonical hashing so verification-sensitive bindings stay consistent. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
700c7a5 to
5d7db18
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Final gate evidence
|
Rebase onto evidence isolation, lock the isolated 509-recipe digest in fixture/descriptor/contract, simplify exact() matching, and drop peer Theurgy digest coupling so routine module PRs stay self-contained. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Rebase onto evidence isolation, lock the isolated 509-recipe digest in fixture/descriptor/contract, simplify exact() matching, and drop peer Theurgy digest coupling so routine module PRs stay self-contained. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Rebase onto #78/#46 keeps peer descriptors untouched; the isolated fixture now verifies this module's own digest evidence. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Restore the truncated matrix fixture, assert isolated recipe digests in ID/IC GameTests, and pin the measured Integrated Dynamics inventory SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Restore the truncated matrix fixture, assert isolated recipe digests in ID/IC GameTests, and pin the measured Integrated Dynamics inventory SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Restore the truncated matrix fixture, assert isolated recipe digests in ID/IC GameTests, and pin the measured Integrated Dynamics inventory SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Capture the measured immersiveengineering isolated inventory digest after descriptor isolation, keep the fixed 9 MiB shared-index gate, and document the current matrix and format-migration blockers without widening gates. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Capture the measured immersiveengineering isolated inventory digest after descriptor isolation, keep the fixed 9 MiB shared-index gate, and document the current matrix and format-migration blockers without widening gates. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restore the truncated matrix fixture, assert isolated recipe digests in ID/IC GameTests, and pin the measured Integrated Dynamics inventory SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restore the truncated matrix fixture, assert isolated recipe digests in ID/IC GameTests, and pin the measured Integrated Dynamics inventory SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Capture the measured immersiveengineering isolated inventory digest after descriptor isolation, keep the fixed 9 MiB shared-index gate, and document the current matrix and format-migration blockers without widening gates. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* compat: add Immersive Engineering fail-closed Compat Kit integration Reject all 128 audited Immersive Engineering 12.4.2-194 recipe candidates (Outcome C), keep a present-mod zero-family module with eight GameTests, and lock the fourteen-mod matrix at 12,889 recipes with a 9 MiB shared-index gate. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * compat: lock Immersive Engineering matrix recipe digests Capture the runtime immersiveengineering recipeInventory digest after rebasing onto declarative isolation, and update peer digests that shift when IE is present in the combined matrix. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * compat: align IE matrix evidence with declarative coexistence Point coexistence verification at the descriptor matrix assert used on main, document format-7 verify parity with Theurgy, and keep the local verify command including the exact representative jar. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: record IE format-16 scan blocker on ModelConveyor$1$Key Keep scanner format 7 parity with Theurgy after optional ancestry still fails Compat Kit nested-class owner resolution. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * compat: lock isolated IE digest and record post-#78 blockers Capture the measured immersiveengineering isolated inventory digest after descriptor isolation, keep the fixed 9 MiB shared-index gate, and document the current matrix and format-migration blockers without widening gates. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * compat: migrate Immersive Engineering audit to scanner format 17 Replace format-7/128 name-shaped evidence with format-17 structural 44 recipe-class Outcome C decisions, regenerate the isolated descriptor and manifest, and record the fixed 50 ms craftable-prepare matrix blocker. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: record IE craftable-prepare host-contention clearance Quiet exclusive matrix evidence clears the contended 81 ms prepare reading without widening the fixed 50 ms or 9 MiB gates. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: record IE rebase onto CEI main matrix evidence Capture quiet exclusive prepare 35.36 ms at 20,012 recipes after rebasing onto origin/main 481449d, keep the fixed 50 ms and 9 MiB gates, and align overview with format-17's 44 rejected candidates. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * perf(crafting): reuse resolved catalog matches via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(crafting): preserve adapter output validation via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: record IE rebase onto current main matrix evidence via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Restore the truncated matrix fixture, assert isolated recipe digests in ID/IC GameTests, and pin the measured Integrated Dynamics inventory SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restore the truncated matrix fixture, assert isolated recipe digests in ID/IC GameTests, and pin the measured Integrated Dynamics inventory SHA. via [HAPI](https://hapi.run) Co-Authored-By: HAPI <noreply@hapi.run> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Closes #77.
Summary
This removes the remaining shared compatibility-evidence merge points:
build/reports/terminal-scale-<types>.json;build/reports/compatibility-modules.mdis generated from descriptors and active module docs rather than maintained as a shared source file.Outcome A: declarative evidence isolation implemented. No runtime recipe semantics changed.
Current base and head
9fc1aae99ed2b67a4ecd7c0fdbcbced858d5bada5d7db18a70cd9eb556fa803e759a4d327af0b67aThe branch was rebased onto the Productive Metalworks merge. Its newly merged fixture now verifies its isolated descriptor evidence: 312
productivemetalworks:*recipes, SHA-256a17a7208231825e5c0c9f0c801867dfbf09e0bbfbb228018562ae01460f1fee7.TDD and review fixes
IsolatedRecipeInventoryEvidence.tool_version.docs/*-compatibility.mdinputs.Verification
PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover scripts./gradlew build./gradlew runCompatFixtureGameTestServers./gradlew runProductivemetalworksGameTestServer./gradlew runCompatibilityMatrixGameTestServer./gradlew checkCompatibilitySummary./gradlew runDatagit diff --checkLatest matrix report evidence:
b340161edceb2857560c3229c4731b2241081643ee2f7c788622da531140a87f;c5796e5c92a7ec1e51c9fe58397e8c0e1dc0743b7a587039631f231c294c1207;Documentation
Updated active plan, roadmap, and Productive Metalworks compatibility evidence. Generated report path:
build/reports/compatibility-modules.md.Remaining risk
Cross-mod-only recipe changes intentionally change the matrix report rather than a committed global expected digest. CI/release retain the report as evidence; reintroducing a committed global digest would recreate the shared-file conflict this issue removes.