Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6761f04
feat(contracts): run admission through full lifecycle queue
piotr-blue Aug 23, 2026
37eac1f
chore(recovery): preserve full-lifecycle completion work
piotr-blue Aug 23, 2026
2f7c375
feat(contracts): conform full-lifecycle closure admission
piotr-blue Aug 23, 2026
444a95f
chore(release): rebind full-lifecycle semantic baseline
piotr-blue Aug 24, 2026
069ef30
refactor(conformance): split full-lifecycle fixture exporter
piotr-blue Aug 24, 2026
0bbee1d
chore(architecture): catalog full-lifecycle exporter helpers
piotr-blue Aug 24, 2026
3ea346d
refactor(conformance): isolate full-lifecycle fixture compilation
piotr-blue Aug 24, 2026
5357b87
chore(release): rebind full-lifecycle semantic baseline
piotr-blue Aug 24, 2026
03db5ee
docs(release): record full-lifecycle Contracts checkpoint
piotr-blue Aug 24, 2026
d5484d8
docs(contracts): classify dynamic evolution recovery spike
piotr-blue Aug 24, 2026
15f23e6
feat(contracts): support deterministic application contract evolution
piotr-blue Aug 25, 2026
c98230a
feat(contracts): return typed noncommitting resource demands
piotr-blue Aug 25, 2026
1714cc7
test(contracts): conform dynamic contract and graph evolution
piotr-blue Aug 25, 2026
37968ee
docs(contracts): specify dynamic contract and occurrence evolution
piotr-blue Aug 25, 2026
914bc49
chore(release): rebind dynamic contract evolution evidence
piotr-blue Aug 25, 2026
a74dfb3
fix(release): validate lifecycle package evidence
piotr-blue Aug 25, 2026
034889c
docs(release): seal dynamic evolution contracts checkpoint
piotr-blue Aug 25, 2026
f5a4698
feat: expose managed transition evidence
piotr-blue Aug 25, 2026
5b938b8
chore: approve transition evidence API
piotr-blue Aug 25, 2026
ace3e32
docs: regenerate transition evidence references
piotr-blue Aug 25, 2026
5a57bb8
chore: close transition evidence release gates
piotr-blue Aug 25, 2026
cf8f424
docs(contracts): bind final transition evidence stage
piotr-blue Aug 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
110 changes: 110 additions & 0 deletions CLOSURE_INVENTORY_REBASE_EVIDENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# C-CLO-34 inventory rebase evidence

## Scope

This historical Phase-A evidence closes the stale inventory assertion for
`fixtures/closure/c-clo-34-separate-document-steps.yaml` at provisional
Contracts commit `83d7a903cb65ca878aa90d3625e877dea89f3ae9`. The frozen comparison source is
its parent, `5c4e5c88fa75d6cbc52b2e8772f14f2ac5246f52`.

No fixture was changed while producing this evidence.

## Provisional exact inventory facts

| Fact | Observed value | Result |
| --- | --- | --- |
| Provisional file bytes | `117691` | PASS |
| Provisional file SHA-256 | `4cef56b998953f6c177df6db56d83176a9ca265b65a9ba690d97c20c7da64763` | PASS |
| Provisional manifest bytes | `117691` | PASS |
| Provisional manifest SHA-256 | `4cef56b998953f6c177df6db56d83176a9ca265b65a9ba690d97c20c7da64763` | PASS |
| Provisional manifest package identity | `sha256:6659fd39aaf0a6dcf651ea3d6e752e93da8cd48d2f0afcc87eee4bee95d4300a` | PASS |
| Provisional `ClosureFixtureInventory.PACKAGE_IDENTITY` | `sha256:6659fd39aaf0a6dcf651ea3d6e752e93da8cd48d2f0afcc87eee4bee95d4300a` | PASS |
| Frozen-base file bytes | `117691` | PASS |
| Frozen-base file SHA-256 | `db3d4df9c4d0dc8dacf9e3b33ac1934878361f5daf3e7fb25b56556fb801c682` | PASS |

The manifest entry was located by its exact relative path and checked against
the file bytes. The Java constant was read from
`ClosureFixtureInventory.java` and compared directly with the manifest field.

## Byte-for-byte regeneration

The checked-in migration tool is:

```text
blue-conformance/src/main/tools/rebind_contracts_specification_identity.rb
```

It independently recomputes and validates the specification-derived
invocation, event occurrence, work occurrence, public-event aggregate, gas
trace, rejected-charge and commit-companion identities. It does not rewrite
semantic fixture results. Its default mode is non-mutating; retained candidates
require an explicit `--stage-root`, and in-place mutation requires explicit
`--write`.

The source tree was extracted from the frozen parent and the checked-in tool was
run twice into separate empty stage roots:

```text
git archive 5c4e5c88fa75d6cbc52b2e8772f14f2ac5246f52 | tar -x -C <source>

ruby blue-conformance/src/main/tools/rebind_contracts_specification_identity.rb \
--repository-root <source> --stage-root <stage-one>

ruby blue-conformance/src/main/tools/rebind_contracts_specification_identity.rb \
--repository-root <source> --stage-root <stage-two>
```

Both runs reported:

```text
old specification: sha256:dfb444962a5a17b3a6519e8d148c2bf4a975a921b1fcb1277710052caaecd930
new specification: sha256:e88147e8d6b6e8f1b0975979363ca21d3abbec96cfafeec5e106870cf5801193
executable fixtures: 49
changed fixture and detached-trace files: 50
main identity substitutions: 4970
detached-trace substitutions: 11858
old/new work identity claims validated: 866 / 866
old/new event-work claims validated: 811 / 811
```

The complete generated package inventories from the two runs were identical.
For C-CLO-34 specifically:

| Candidate | Bytes | SHA-256 | Equals committed file |
| --- | ---: | --- | --- |
| Stage one | `117691` | `4cef56b998953f6c177df6db56d83176a9ca265b65a9ba690d97c20c7da64763` | yes |
| Stage two | `117691` | `4cef56b998953f6c177df6db56d83176a9ca265b65a9ba690d97c20c7da64763` | yes |

The frozen source file retained its original
`db3d4df9c4d0dc8dacf9e3b33ac1934878361f5daf3e7fb25b56556fb801c682`
digest after both runs.

The rebinder's intermediate fixture-package identity is intentionally not the
provisional commit's final package identity: the same commit also extended the
closure fixture schema and then rebound the package manifest. That does not
affect C-CLO-34's regenerated bytes. Full-package fixture generation and final
manifest production are gated separately in the full-lifecycle fixture phase.

## Conclusion

The original hard-coded C-CLO-34 digest was an inventory assertion left behind
by the provisional specification-identity rebase. At that Phase-A boundary,
updating the assertion to `4cef56b9…64763` was the only supported correction.

## Final full-lifecycle checkpoint state

The later, canonical full-lifecycle package regeneration rebounded the same
fixture to the final specification and release identities. It did not change
the fixture byte count or its business result. The final checkpoint values are:

| Fact | Final value | Result |
| --- | --- | --- |
| C-CLO-34 bytes | `117691` | PASS |
| C-CLO-34 SHA-256 | `d5b73d44c5efbe3aeba43aff24961ef992768c5ffee9ef8c63131a73c491024d` | PASS |
| Final manifest bytes | `117691` | PASS |
| Final manifest SHA-256 | `d5b73d44c5efbe3aeba43aff24961ef992768c5ffee9ef8c63131a73c491024d` | PASS |
| Final fixture package identity | `sha256:3bb21b5df6eb87b578e9647f11d094aff2cf45c56b3b7050f8d854147bdb3e3d` | PASS |

`ClosureConformanceHarnessTest` pins this final digest. The package-level delta
classifier separately proves that C-CLO-34 changed only through approved
specification, invocation, work, event, and trace identity rebinding.
Loading
Loading