Skip to content

palette: spend the append margin on the 29 homeless TSV lanes; annotate the 4 overlaps - #1126

Merged
AdaWorldAPI merged 5 commits into
mainfrom
claude/medcare-rs-continue-ufsazd
Sep 1, 2026
Merged

palette: spend the append margin on the 29 homeless TSV lanes; annotate the 4 overlaps#1126
AdaWorldAPI merged 5 commits into
mainfrom
claude/medcare-rs-continue-ufsazd

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Rebased onto main after #1125.

What was measured first

contract::atoms::CANONICAL_ATOMS (the locked 33-lane TSV basis) and the 226-atom cognitive_palette had 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

  • 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: abduct/deduce/induce → the ABDUCES/DEDUCES/INDUCES verbs (palette 85/83/84), transcendThinkingStyle::Transcendent (palette 213).
  • AtomCatalogue::ReservedTsv(u8); ATOM_COUNT 226 → 255; RESERVED_BASE retained as the historical alias for TSV_BASE. No external consumers of either symbol.
  • 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 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_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 constant.

Tests — 4 new, each disable-verified

  • 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 ReservedTsv.

Growth from here is ogar-loco, and the module doc says so

LaneShape::Pairs is 6 × (u8:u8) = function : value, so the 12-byte register is six Calls — a 12×u8 palette pick is a call of arity zero, the same ABI with every operand discarded. The Tsv block inherits that limit: rung_r1..r9 are 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

64462da5 added a probe, an atoms.rs note and a board entry reasoning about an I4x32 carrier against the V3 facet. The operator ruled it a hallucination. It had already been pushed, so 7ee96ace reverts 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 -q is not a flag. The invalid option made revert a no-op that printed usage, and a follow-up --amend then relabelled the original commit with the revert's message — producing a commit that added the hallucinated material under a "Revert" subject. The tell was git show --stat reporting insertions where a revert must report deletions.
  • Rebasing onto W2b (D-DCR-2b): DN dissolution, mechanical/epistemic split, one-hop law — basin lanes + hydration primitives #1125 silently dropped one hunk of that revert. The revert originally deleted from three files; after the rebase it deleted from two, and the hallucinated board entry was live again on the branch. Main had prepended a new entry, so the hunk's context moved and the patch application dropped it — with the rebase reporting success and no conflict. Caught before pushing by asserting the reverted content is absent (git show HEAD:<file> | grep -c <marker> == 0) rather than trusting the exit code, and completed forward in 022f9f8f so the gap stays visible.

Verification

  • cargo test -p lance-graph-contract — 1286 + 7 + 12 + 8 + 8 + 7 passing, post-rebase
  • cargo clippy -p lance-graph-contract --all-targets --no-deps — clean
  • Board: E-THE-PALETTE-MARGIN-IS-SPENT-AND-GROWTH-MOVES-TO-LOCO-1 prepended to EPIPHANIES.md

🤖 Generated with Claude Code

…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.
@cursor

cursor Bot commented Sep 1, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot 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
AdaWorldAPI merged commit 1b51f45 into main Sep 1, 2026
9 checks passed
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
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.

2 participants