Skip to content

feat(wire): S5/#110 — §4.2 run manifest builder (commit marker, byte-stable)#117

Merged
Polichinel merged 1 commit into
developmentfrom
feat/hop-b-s5-run-manifest
Jul 20, 2026
Merged

feat(wire): S5/#110 — §4.2 run manifest builder (commit marker, byte-stable)#117
Polichinel merged 1 commit into
developmentfrom
feat/hop-b-s5-run-manifest

Conversation

@Polichinel

Copy link
Copy Markdown
Collaborator

Story S5 of epic #105 (taken out of order — parallel-eligible; note below).

What

unfao/wire/run_manifest.py: build_run_manifest(...) → the §4.2 JSON bytes. Pinned key order + indent=2 (fixture serialization); closed shard records — an extra file_id key raises by name (the exact field the §3 audit corrected away); closed sidecar record (Erratum E1's home of the sidecar hash); expected_cell_count = per-shard N (§3.2 ruling).

AC (all met)

  • Fed the fixture names + real hashes: output byte-equals fixture_run_0__manifest.json.
  • Extra/missing record keys raise, named; record key order re-pinned regardless of input order.
  • Suite green: 225 passed.

Dependency amendment: planned as S1-only, but CONTRACT_VERSION correctly lives in S2's wire/header.py, so S5 depends on S2 (merged). #114's ordering note stands corrected by this PR.

Closes #110. Epic #105 · Tracking #114.

🤖 Generated with Claude Code

build_run_manifest emits the run's single commit marker byte-stable against the
§10 fixture: pinned key order + indent=2; closed shard records
(name/target/time_id/sha256 — a 'file_id' key raises, the exact field §3.2
corrected away) and closed sidecar record (E1's home). expected_cell_count is
per-shard N per the §3.2 ruling. Everything declared by the caller; nothing
inspected or minted.

Note: gained a real dependency on S2 (CONTRACT_VERSION from wire/header.py) —
tracking checklist ordering amended in the PR.

Part of epic #105. Closes #110.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Polichinel
Polichinel merged commit a1a4a2c into development Jul 20, 2026
4 of 5 checks passed
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