Repository navigation
plan: run four of the six FMA v4 probes, and correct what they contradict - #149
Conversation
The probes were written to gate the decisions, so running them was the only way to find that three findings were wrong. F-2 is refuted outright — both mint paths assert with a message naming their width, so the silent truncation it described cannot happen, though the audit did surface a real gap in that the V2/V3 guards had no test proving they fire. F-6's max depth of 16 is unverified and measures 9 or 12 depending on which path is counted, and its overflow is either 5% or 50% of the graph depending on whether the cascade addresses a concept's shortest or deepest ancestry, which nobody has ruled. F-1 survives but not by the mechanism this plan claimed: input order cannot reach the mint because the producer sorts internally, and the real defect is that identity is a function of set membership, so one added concept re-mints most of the tree. The laterality table turns out to carry no meshed composites at all, which reshapes what consuming it can mean, and the Tribonacci-to-Fibonacci vessel lineage does not appear anywhere in 2201 commits. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012wrzeZAdwGYTCKoxamwQht
|
Warning Review limit reachedNext included review available in 15 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 68 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (1)
Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_b29dcdc4-5bd7-4d3e-a43d-81f5d6b62161) |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Why it is not this PR's. The diff is one markdown file — Two things this run establishes that are worth recording:
No re-run spent. A missing static library is deterministic; re-running a link step that cannot find a file it was never given is not a flake check, it is a wasted cycle. The failure has now reproduced across several PRs and head commits, which is the same evidence a re-run would produce. What would actually resolve it is a CI change (the This PR is otherwise clean: no merge conflict, and its content is a plan document recording measured probe results. Generated by Claude Code |
|
The macOS job failed for a different reason than ubuntu — and that one is a real defect, now fixed in #150. macOS did not hit the Stale test expectations, not this PR's diff and not infrastructure. Why nobody saw it: neither platform had ever reached the test step. ubuntu still dies linking Fixed separately in #150 rather than here, so this PR stays docs-only. Status of this PR is unchanged: still red on ubuntu for the Generated by Claude Code |
|
Status: this PR's red CI is not this PR's defect, and the fix is pushed elsewhere. The failing check is
Same single cause from two directions: I have not ported the fix into this branch, deliberately. It exists as Bake safety re-verified at this checkpoint: the 9 tracked bake artifacts (140 MB) still match their pre-work checksums 9/9, and Generated by Claude Code |
Summary
Adds §9 to
claude-notes/plans/2026-09-06-fma-bake-v4-plan.mdwith the measured results of four probes, and regrades three §1 findings in place. Docs only — no producer, no bake, no release asset touched.The probes existed to gate the decisions. Running them is what found that three findings were wrong, including one this plan asserted about its own mechanism.
Bake safety
Every tracked bake artifact (9 files, 140 MB —
*.soa,*.soa.gz,*.splat,*.blocks) was copied out of tree before any work and verified byte-identical after: 9/9 OK. No producer was run, nothing was re-baked, and no GitHub release asset was touched.git statuson this branch shows exactly one modified file.What the probes found
F-2 is refuted (§9.3)
Both mint paths assert, in release:
NodeGuid::new:assert!(identity <= 0x00FF_FFFF, "identity must fit in 24 bits")mint_forV2/V3:assert!(identity <= 0xFFFF, "v2/v3 identity must fit in 16 bits (no silent truncation)")A row ≥ 65,536 panics naming its width; it does not wrap. F-2's "silent wrap" and §7's "closed by nothing on its own" are withdrawn. The audit did surface something real indirectly — the V1 guards have
should_paniccover, the V2/V3 guards that supersede them had none — fixed upstream in AdaWorldAPI/lance-graph#1211.F-6's figures are replaced, and its severity is unruled (§9.4)
"Max depth 16" is unverified. Measured on 3.0: 9 by shortest path, 12 by longest. Overflow past the key's 6 levels:
A 10× spread decided by a question nobody has answered: does the cascade encode a concept's shortest ancestry or its deepest? With 536 multi-parent nodes those are different addresses for the same concept. D-4 cannot be sized until that is ruled.
F-1 survives, by a different mechanism (§9.2)
P-2: 223/223 shared concepts get different identities;
classid/HEEL/HIP/TWIG/F4 identical in all 223 — the producers agree on where and disagree on which.P-3 refutes the stated cause. Reversing the input changes 0 of 1368, because
guid.rssorts internally — file order never reachesk. The real defect is enumeration-index shift: removing one node changes 863 of 1367 (63%). So identity is a function of set membership, not input order — worse in practice, and unfixable by stabilising order.anchor.rs: 0/203 changed.D-3a needs reshaping (§9.6)
0 of 579 composites have geometry — they are
BP##sentinels and aggregates like "human body". 873 of 1,419 primitives are meshed; 8,611 rows have a meshed primitive and an abstract composite. So the edge cannot join two mesh nodes. But only 2,172 of 12,530 pairs also appear in part_of — 83% orthogonal, which is the strongest evidence yet that the table carries relations part_of does not.The Tribonacci→Fibonacci vessel lineage did not happen (§9.7)
2201 commits searched.
tribonacciappears twice, both GLSL cloud-shader lacunarity in the terrain renderer. The vessel constants were empirical clamps from the first commit that introduced them (CORE 0.55 → 0.62, thenCAP/PCTL). No sequence was tried for radii and replaced.Producer recency is now measurable (C-7 discharged):
body.rs2026-09-06 is youngest,fma/src/bin/{guid,anchor}.rs2026-06-24 oldest.Verification
Docs-only; nothing to build. Every number is a command output, produced by read-only analysis or by running the real
guid/anchorbinaries into/tmp. Caveats are carried in §9 rather than in this description: P-1 and P-4 ran on BodyParts3D 3.0 because the 4.0 sources the bake reads are not on disk, andanchor.rsneeded a synthetic geometry directory (its identity path never reads vertex data, and the residue numbers it prints are excluded as meaningless).🤖 Generated with Claude Code
https://claude.ai/code/session_012wrzeZAdwGYTCKoxamwQht
Generated by Claude Code