Skip to content

test(cli): normalize F32 digits before the cross-version export comparison - #664

Merged
azimafroozeh merged 2 commits into
ModernRelay:mainfrom
azimafroozeh:v5-fence-f32-export-spelling
Sep 6, 2026
Merged

test(cli): normalize F32 digits before the cross-version export comparison#664
azimafroozeh merged 2 commits into
ModernRelay:mainfrom
azimafroozeh:v5-fence-f32-export-spelling

Conversation

@azimafroozeh

Copy link
Copy Markdown
Contributor

What & why

Follow-up to #627, which turned the post-merge V5 ↔ V6 Format Fence job red on main.

  • assert_export_fidelity compared the predecessor binary's export of the ml-intro embedding raw against the current binary's re-export: the v5 binary widens every F32 cell to 64-bit digits (0.10000000149011612), the writer from RFC 0051 prints the cell at its own width (0.1).
  • The sibling helper canonical_export_rows already ran both sides through normalize_f32_and_nulls; the fidelity check now does the same before comparing, so it tests vector values, not digit spelling.
  • The helper's doc comment names every predecessor binary instead of v0.9, since the same widening applies at the env-gated v3 and v4 seams.

Backing issue / RFC

Checklist

  • Change is focused (one assertion in crossversion_upgrade.rs normalized through the existing helper)
  • Tests added/updated for behavior changes (N/A: no behavior change; the fixed test is the coverage)
  • Public docs updated if user-facing surface changed (N/A: test-only)
  • Reviewed against docs/dev/invariants.md — no Hard Invariant weakened, no deny-list item hit (the check still requires the rebuilt vector to equal the original after both pass the one normalization)

Local verification

  • cargo test --locked -p omnigraph-cli --test crossversion_upgrade current_v6_refuses_and_rebuilds_genuine_v5_and_v5_refuses_v6 -- --exact --nocapture with OMNIGRAPH_V5_BIN pointing at an omnigraph built from the pinned final-v5 commit 46b6d908 (the job's own invocation) — without this change it fails with the job's exact left/right (0.1 vs 0.10000000149011612); with it, 1 passed
  • cargo clippy --locked -p omnigraph-cli --all-targets -- -D warnings -W clippy::dbg_macro — clean
  • cargo fmt --all --check — clean
  • v3 and v4 seams (OMNIGRAPH_OLD_BIN, OMNIGRAPH_PREVIOUS_BIN) — not run: no predecessor binaries built; same helper, same widening

Notes for reviewers

  • The writer's spelling is the intended one (RFC 0051); the assertion was the wrong side. No release note.
  • v5_v6_format_fence runs only when github.event_name != 'pull_request', so this PR's CI will not exercise the fence either; the local run above is the evidence, and the first CI run is the push to main.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@azimafroozeh
azimafroozeh merged commit 54afa75 into ModernRelay:main Sep 6, 2026
23 checks passed
@azimafroozeh
azimafroozeh deleted the v5-fence-f32-export-spelling branch September 6, 2026 10:35
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