palette: spend the append margin on the 29 homeless TSV lanes; annotate the 4 overlaps - #1126
Merged
Merged
Conversation
…facet carrier #1124 left one item explicitly open: `contract::atoms::I4x32` is 32 signed-i4 lanes while the V3 content-blind facet payload is 24 nibbles. It read as a naming coincidence to adjudicate; measured, it is a width mismatch with a sharp consequence. Probe (examples/i4x32_width_probe.rs), per-lane byte attribution: I4x32 size_of = 16 FacetCascade size_of = 16 lanes 0,1 -> byte 0 lanes 2,3 -> byte 1 lanes 4,5 -> byte 2 lanes 6,7 -> byte 3 facet classid-only change moves bytes [0, 3] I4x32 spans the WHOLE 16-byte facet; the payload is 12 B = 24 nibbles (causal_witness.rs:71). No offset separates them, so lanes 0-7 alias the facet_classid — an I4x32 written over a facet overwrites the address it is stored under. Not a live defect: every I4x32 reference outside atoms.rs is a doc mention or an explicit 'BLOCKED on D-ATOM-1' forward reference (recipe.rs still carries I4x32Stub). Nothing packs one into a facet, which is why it went unnoticed — there is no call site to break. This is a gate on D-ATOM-1, not a repair. The module's own resolved notes already answer where the atom vector belongs: a value-tenant lane (the '32 x 4-bit turbovec lanes' reading in perturbation-sim), with the 33 locked atoms in I4x64 per 'RESOLVED - 32-vs-33'. A 24-lane payload carrier is excluded on its own terms - 33 atoms do not fit 24 lanes. Recorded at the definition site so it is not re-derived a third time. Board: EPIPHANIES E-I4X32-IS-A-WHOLE-FACET-CARRIER-NOT-A-PAYLOAD-CARRIER-1 (same commit, per the board-hygiene rule). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KCGhDYoQBXs3poaR7sFuqp
This reverts 4a3eaa2. Operator ruling, verbatim: "completely disregard i4x32 it was a hallucination." The reverted commit added a probe example, an atoms.rs doc note, and a board entry, all reasoning about I4x32's 16-byte width against the V3 4+12 facet. The measurement in it was real -- its 32 lanes span all 16 bytes, so lanes 0-7 alias the classid -- but the question was not: the type is not substrate, so there was never a width to reconcile. Reverted rather than force-dropped, so the retraction is visible; the successor board entry records the correction in place. The durable finding that survives: the V3 content-blind register is 12 bytes everywhere. The three 16-byte facet lanes are classid(4) + 12.
…te the 4 overlaps Diffed contract::atoms::CANONICAL_ATOMS (the locked 33-lane TSV basis) against the 226-atom cognitive_palette by name: 0 exact matches, 4 accepted overlaps, 29 lanes with no palette home. The 29 are four complete groups -- every Rung lane, every Sigma lane, every Presence lane, every Meta knob -- not scattered stragglers. The former append margin was exactly 29 slots. Operator ruling: spend it. - New Tsv block at 227..=255 (TSV_ATOMS, 29 entries), each carrying its canonical dim so the join back to CANONICAL_ATOMS is explicit. local is a palette address and deliberately diverges from dim, because the overlaps are skipped. - TSV_OVERLAPS annotates the 4 lanes that already had a home rather than minting a second byte for them: abduct/deduce/induce -> the ABDUCES/DEDUCES/ INDUCES verbs (palette 85/83/84), transcend -> ThinkingStyle::Transcendent (palette 213). - AtomCatalogue::Reserved -> Tsv(u8); ATOM_COUNT 226 -> 255; RESERVED_BASE retained as the historical alias for TSV_BASE. No external consumers of either symbol (verified by grep before the rename). - The palette is now FULL: const-asserted TSV_BASE + TSV_COUNT == 256, with a message saying no append margin remains. The 29-fits-29 fit is arithmetic coincidence, not design, and the block size is contingent on four judgement calls -- 28 if imagine_counterfactual is read as the ICR recipe (rejected: a Pearl rung is not a named tactic), 30 if transcend/transcendent is read as distinct (that overflows 256), 33 on exact string match alone. TSV_OVERLAPS records each call with its target byte so the contingency is visible instead of buried in a count. Tests (4 new, each disable-verified rather than assumed): - the partition law -- every one of the 33 lanes is minted XOR annotated, exactly once. Falsifier run: pointing a TsvAtom at an overlapped dim fails with "lane 18 covered 2x". - locals are dense AND diverge from dims for >= 12 lanes, so renumbering local to equal dim cannot pass silently. - every overlap resolves into Verb or Persona and points strictly below TSV_BASE. Falsifier run: aiming one inside the Tsv block fails. - no byte value is unallocated; AtomId::tsv(29) is None, tsv(28) is 255. - the existing 256-value census updated Reserved -> Tsv. Growth from here belongs in ogar-loco, and the module doc says so. LaneShape:: Pairs is 6 x (u8:u8) = function:value, so the 12-byte register is six Calls -- a 12xu8 palette pick is a call of arity zero, the same ABI with the operand discarded. rung_r1..r9 are nine needles for one op with a depth operand; the Sigma chain and the Meta knobs are magnitudes stored categorically. A classid-selected vocabulary in loco's domain range has 112 slots per vocabulary instead of 29 shared globally. cargo test -p lance-graph-contract: 1286 + 7 + 12 + 8 + 8 passing. cargo clippy --all-targets --no-deps: clean.
…ped pre-push The E-THE-PALETTE-MARGIN entry claimed the i4x32 commit was 'dropped before push'. It was not: 4a3eaa2 was already on the remote branch, and the push of the palette work failed non-fast-forward, which is how the error surfaced. Corrected in place to name the revert commit (e557f55). Also records the second-order slip from the repair itself: 'git revert -q' is not a valid flag, so the revert silently no-op'd and a follow-up --amend relabelled the original commit with the revert message -- a commit that ADDED the hallucinated material under a 'Revert' subject. The tell was git show --stat reporting 107 insertions where a revert must report deletions.
… board hunk The revert e557f55/7ee96ace originally deleted from three files: the probe example, the atoms.rs doc note, and the EPIPHANIES entry. After rebasing this branch onto the merged #1125, it deletes from two -- the board hunk was dropped, silently, with the rebase reporting success and no conflict. Main had prepended a new entry, so the hunk's context moved. Net effect on the branch: the hallucinated i4x32 board entry was live again. Removed here, and the lesson appended to the surviving entry. The general rule this earns: a clean 'git rebase' exit code is not evidence that every hunk survived. A revert especially should be re-verified by asserting the reverted content is ABSENT afterwards -- 'git show HEAD:<file> | grep -c <marker>' == 0 -- rather than by trusting the rebase. Found exactly that way here, before pushing. Completed forward rather than by rewriting the revert commit, so the gap stays visible in the history.
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_be71adcc-eade-4183-8660-f00ce60d111d) |
AdaWorldAPI
pushed a commit
that referenced
this pull request
Sep 1, 2026
…ctions, cross-refs #1125/#1126/#1127 merged while this branch's slices 1+2 were stranded; rebased onto main (commits kept per the merged-PR rule) and audited for overlap BEFORE re-pushing, so corrections and stranded work land together. Collisions corrected: - My "fourth carving / not in the shipped set / only signed one" claim was FALSE and the #1127 census had already proven it so: G24N4 ships as CausalWitnessFacet's loci reading of ValueTenant::CausalWitness. basin_lanes is re-positioned as what it actually is — the MAGNITUDE register in the shipped shape, exactly the sibling the census concluded must exist because that lane's operator-locked loci-never-magnitude law (plus reserved slots 16..24) forbids a child-summary there. Which tenant it occupies stays the operator's mint (append margin at slab 220, 260 B free). Module doc, both unpushed board entries, and the plan's RULED table corrected. - The plan's "which lane — dissolved" row conflated two axes: the DN ruling dissolves TREE-siting (the node at each prefix IS the row); the census constrains SLAB-siting (which tenant inside the 480-byte value), which is real, half-answered (not CausalWitness), operator's to mint. The row now says both. - The whale was pinned twice under two names — register-level in tests/w2b_one_node_field.rs (borrowed codec) and carrier-level in basin_lanes. Both kept, cross-referenced in both directions. Convergence kept as evidence, not deduped: w2b_one_node_field's summarise and accumulate_children arrived at the SAME per-lane shape (exact signed sum, one clamp) independently in two sessions — and it is what the one-hop ruling's "accumulated including disagreement" needs. Residue flagged, not fixed: the i4 sign-extension now has three homes (atoms::sext4, causal_witness inline, I4x64-via-I4x32); the dedup is a one-line follow-up, deliberately not bundled here. Full lance-graph-contract suite: 1378 passed / 0 failed (lib + every integration binary incl. w2b_one_node_field); clippy --no-deps -D warnings clean; fmt clean. EPIPHANIES audit entry prepended; STATUS_BOARD row merged (census + slices); supersession index regenerated last. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PFnYKqw6d7TTiB9cT8eFdK
AdaWorldAPI
added a commit
that referenced
this pull request
Sep 5, 2026
…n v1 - .claude/nexgen/harvest/: 11 verbatim read-only Sonnet reports (4 code/doctrine readers; PR sweeps lance-graph #1126-#1175, OGAR #274-#298, ndarray #277-#301) - .claude/nexgen/plans/nexgen-mask-histogram-thresholds-v1.md: the exposure meter as a nested mask set; T0..T3 entropy shape; 27-row expansion table with a falsifier per row; D-NXG-1..12; probe-first sequencing - EPIPHANIES: E-NXG-1..16 (prepended); AGENT_LOG, INTEGRATION_PLANS, STATUS_BOARD rows; supersession index regenerated last (no diff) No code touched. No public surface removed or demoted. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WkNBjHc2e3zuyz9i8qJEv
AdaWorldAPI
added a commit
that referenced
this pull request
Sep 5, 2026
…n v1 - .claude/nexgen/harvest/: 11 verbatim read-only Sonnet reports (4 code/doctrine readers; PR sweeps lance-graph #1126-#1175, OGAR #274-#298, ndarray #277-#301) - .claude/nexgen/plans/nexgen-mask-histogram-thresholds-v1.md: the exposure meter as a nested mask set; T0..T3 entropy shape; 27-row expansion table with a falsifier per row; D-NXG-1..12; probe-first sequencing - EPIPHANIES: E-NXG-1..16 (prepended); AGENT_LOG, INTEGRATION_PLANS, STATUS_BOARD rows; supersession index regenerated last (no diff) No code touched. No public surface removed or demoted. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WkNBjHc2e3zuyz9i8qJEv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebased onto
mainafter #1125.What was measured first
contract::atoms::CANONICAL_ATOMS(the locked 33-lane TSV basis) and the 226-atomcognitive_palettehad never been joined. Diffed by name: 0 exact matches, 4 accepted overlaps, 29 lanes with no palette home — and the 29 are not stragglers but four complete groups: all 9 Rung lanes, all 5 Σ, all 4 Presence, all 4 Meta knobs, plus 2/3 Pearl and 4/8 Ops.The former append margin was exactly 29 slots (
256 − (1 + 144 + 34 + 36 + 12)). Operator ruling: spend it.What landed
227..=255(TSV_ATOMS, 29 entries), each carrying its canonicaldimso the join back toCANONICAL_ATOMSis explicit.localis a palette address and deliberately diverges fromdim, because the overlaps are skipped.TSV_OVERLAPSannotates the 4 lanes that already had a home rather than minting a second byte:abduct/deduce/induce→ theABDUCES/DEDUCES/INDUCESverbs (palette 85/83/84),transcend→ThinkingStyle::Transcendent(palette 213).AtomCatalogue::Reserved→Tsv(u8);ATOM_COUNT226 → 255;RESERVED_BASEretained as the historical alias forTSV_BASE. No external consumers of either symbol.TSV_BASE + TSV_COUNT == 256, with a message saying no append margin remains.The 29-fits-29 fit is coincidence, and the count is contingent
29 = 256 minus four block sizes on one side; 29 = 33 minus four overlaps on the other. The second number moves with the adjudication: 28 if
imagine_counterfactualis read as the ICR recipe (rejected — a Pearl rung is not a named tactic), 30 iftranscend/transcendentis read as distinct (that overflows 256), 33 on exact string match alone.TSV_OVERLAPSrecords each call with its target byte so the contingency is visible instead of buried in a constant.Tests — 4 new, each disable-verified
TsvAtomat an overlapped dim fails withlane 18 covered 2x.localto equaldimcannot pass silently.VerborPersonaand points strictly belowTSV_BASE. Falsifier run: aiming one inside the Tsv block fails.AtomId::tsv(29)isNone,tsv(28)is255.Reserved→Tsv.Growth from here is ogar-loco, and the module doc says so
LaneShape::Pairsis6 × (u8:u8)=function : value, so the 12-byte register is sixCalls — a12×u8palette pick is a call of arity zero, the same ABI with every operand discarded. The Tsv block inherits that limit:rung_r1..r9are nine needles for one op with a depth operand; the Σ chain and the Meta knobs are magnitudes stored categorically. A classid-selected vocabulary in loco's domain range has 112 slots per vocabulary against 29 shared globally.The mechanism this points at is AdaWorldAPI/OGAR#295 (the shared basin codebook). This PR does not depend on it; the block is labelled the closing entry in a legacy table, not the pattern to repeat.
History note — the retraction pair is kept, by operator ruling
64462da5added a probe, anatoms.rsnote and a board entry reasoning about anI4x32carrier against the V3 facet. The operator ruled it a hallucination. It had already been pushed, so7ee96acereverts it rather than force-dropping it, and the successor board entry records the correction in place.Operator ruling: keep the pair, do not force-push. The branch stands as-is; the retraction is part of the record, not noise to be cleaned. (The one force-push this branch has seen was the rebase onto #1125, which was itself requested.)
Two further slips from that repair are recorded rather than hidden, because each earns a rule:
git revert -qis not a flag. The invalid option made revert a no-op that printed usage, and a follow-up--amendthen relabelled the original commit with the revert's message — producing a commit that added the hallucinated material under a "Revert" subject. The tell wasgit show --statreporting insertions where a revert must report deletions.git show HEAD:<file> | grep -c <marker>== 0) rather than trusting the exit code, and completed forward in022f9f8fso the gap stays visible.Verification
cargo test -p lance-graph-contract— 1286 + 7 + 12 + 8 + 8 + 7 passing, post-rebasecargo clippy -p lance-graph-contract --all-targets --no-deps— cleanE-THE-PALETTE-MARGIN-IS-SPENT-AND-GROWTH-MOVES-TO-LOCO-1prepended toEPIPHANIES.md🤖 Generated with Claude Code