Skip to content

Commit 9d4d24c

Browse files
authored
Merge pull request #470 from AdaWorldAPI/claude/bindspace-arch-delta-handover
docs(handovers): BindSpace dissolution architectural delta — from bardioc runtime-session
2 parents 38627e9 + 630bb2e commit 9d4d24c

1 file changed

Lines changed: 153 additions & 0 deletions

File tree

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Handover — BindSpace dissolution architectural delta
2+
3+
> **From:** bardioc runtime-session (2026-06-05)
4+
> **To:** lance-graph session (fresh, when spun up)
5+
> **Canonical doc:** `bardioc/BINDSPACE_DISSOLUTION_HANDOVER.md` (+ bardioc PR #18) — read that for the full ~440-line delta. This note is the pointer + the headlines per the handovers protocol.
6+
7+
## What I did
8+
9+
- Walked the architectural arc for BindSpace dissolution in a runtime-session
10+
conversation (2026-06-05).
11+
- Captured the durable delta as `BINDSPACE_DISSOLUTION_HANDOVER.md` in
12+
bardioc (PR #18) + an append-log entry in bardioc's
13+
`CROSS_SESSION_COORDINATION.md`.
14+
- Pushed this thin handover note here per the `.claude/handovers/` protocol
15+
so a fresh lance-graph session lands on it via the standard bootload.
16+
- Did **NOT** execute the migration plan (this session's domain;
17+
out of bardioc's MCP scope + needs lance-graph board-hygiene grounding).
18+
19+
## FINDING
20+
21+
- **Vsa16kF32 has three real loads, two with replacements + one research-only:**
22+
- Markov context-chain bundling → **standing wave** (`lance-graph-planner::temporal`, shipped PR #468).
23+
- BBB inner/outer ontology helper → **Rubicon** (`bardioc/rubicon/`, shipped bardioc PR #17).
24+
- 5^5^5 holograph experiment → `sentence_crystal` + `holograph` crate, **research artifact**, NOT migration scope.
25+
- **The 16k width is a storage constant**, not a cognition constant
26+
(literally one Lance "book" register at 64 KB = 16384 × f32). Cognition
27+
has no opinion on the number; storage does. The cycle plane dies (E-BATON-1);
28+
the 16k width survives as the book-aligned storage I/O unit.
29+
- **Post-P64, the columns are already L1-L4 cascade-shaped** (per plan §10.5:
30+
64 / 256 / 4096 / 16384 = AVX-512 register / AMX tile row / 4 KiB page /
31+
L1d cache). The LE contract isn't *adding* a lossless invariant — it's
32+
naming a property the columns already have.
33+
- **MailboxSoA D-MBX-A1 inherits 4 of 5 BindSpace columns as the same
34+
LE-contract types** (`edges` / `qualia` / `meta` / `entity_type`
35+
same `CausalEdge64` / `QualiaI4_16D` / `MetaWord` / `u16`). G5 + G6
36+
in the engine_bridge function matrix are **1-line retargets through
37+
typed accessors**, not rewrites. **The migration is value-preserving
38+
(no conversion), NOT layout-guaranteed byte-identical**
39+
`CausalEdge64` is `pub struct CausalEdge64(pub u64)` *without*
40+
`#[repr(transparent)]` in `crates/causal-edge/src/edge.rs:117`, so a
41+
slice-reinterpretation pattern (`&[u64] as &[CausalEdge64]` via
42+
`transmute`) is **NOT** supported. Use typed accessors throughout
43+
(`mb.set_edge(row, e)`, `mb.set_qualia(row, q)`, etc.); the function
44+
matrix in the canonical doc §5 already does this. Adding
45+
`#[repr(transparent)]` to `CausalEdge64` is a separate concern in
46+
`crates/causal-edge/` and would unlock zero-copy slice patterns if
47+
ever wanted later.
48+
- **The 2026-05-27 plan is still authoritative.** Its §3 column map and §6
49+
gated steps are correct; this delta narrows scope and adds context.
50+
51+
## CONJECTURE
52+
53+
- Adding the `content/topic/angle` Hamming planes to `MailboxSoA` (still gated
54+
on D-MBX-A2) unlocks G1 ingress + G4 cycle-half — that's the gating gap
55+
before S1-S4 can ship.
56+
- **Radix-trie addressing** (PackedDn generalised to variable-length paths)
57+
composes with Lance's append-only / standing-wave subtree-scan-at-`v_ref`.
58+
OGAR identities (`ogit-erp/sale.order/42`) are already prefix-rich; Rubicon's
59+
`LanceMembrane::commit_event` keyed on `inv.object_instance` becomes a trie
60+
append, the audit log = `traverse_subtree("ogit-erp/sale.order/42/", *)`.
61+
- **Qualia trie codebook with Quintenzirkel rotational invariance** is a
62+
follow-on D-MBX (compression-only, independent of the singleton
63+
dissolution). Frozen-set + circle-of-fifths progression structure →
64+
8 B → 1-2 B per row; task-scoped activation via `QualiaScope` analogous
65+
to OGAR PR #28's `_effectiveReaders` (tax masks `arc/numbness/*`; invoice
66+
masks `arc/fear-of-death/*`; therapy = full codebook).
67+
- **Layer correction**: `Staunen` and `Wisdom` are PLASTICITY STAGES, not
68+
qualia archetypes. They live on `plasticity_counter: [u8; N]` and its
69+
derivatives, not in `qualia`. The CLAUDE.md "Staunen × Wisdom qualia"
70+
framing was a misnaming (see canonical doc §8). They CORRELATE with
71+
qualia-trie-miss on genuinely novel input but neither implies the other.
72+
- **The trie-miss IS the Staunen signal** — side effect of a lookup you
73+
were doing anyway, with structural context (which prefix you missed at)
74+
a flat hash collision-set couldn't give. Cheaper than BLAKE3-per-row for
75+
novelty detection.
76+
- **Zero-copy audit** is the residual discipline after S1-S4 ship. Fires
77+
at cross-boundary copies, re-encode membranes (canonical bad pattern:
78+
`engine_bridge.rs:262-267` f32→i4→column), Arrow translations on hot-path
79+
data, DTO-as-payload-when-could-be-view. Does NOT fire at transient
80+
bundle compute inside one think-arc (E-BATON-1 carve-out).
81+
- **64 MB working set fits one TiKV region** (default ~96 MB, splits at
82+
~144 MB). The deferred cross-server HLC tick gets its natural home —
83+
Raft log = tick sequence, region leadership = single-writer authority
84+
for tick advancement, region splits = the only event needing
85+
reconciliation across leaders. No custom protocol.
86+
87+
## Blockers
88+
89+
- **D-MBX-A2** (add Hamming planes + ratify temporal/expert decisions on
90+
`MailboxSoA`) is the gating gap. S1-S4 cannot land until A2 ships.
91+
- **No active lance-graph session today** — this handover restores state
92+
when one starts.
93+
94+
## Open questions
95+
96+
- **Bucket 2** (`lance-graph-cognitive::storage::bind_space::BindSpace`,
97+
~20 sites across `cypher_bridge.rs` / `spo/sentence_crystal.rs` /
98+
`fabric/{executor,zero_copy}.rs` + `learning/{scm,feedback}.rs`) is a
99+
SEPARATE migration arc per `docs/BINDSPACE_MIGRATION_GAP.md` (the
100+
ladybug-style Container/CogRecord/PackedDn port). Confirm before
101+
treating it as singleton scope.
102+
- **Bucket 3** (`sentence_crystal` + `holograph` crate) is the 5^5^5
103+
research artifact (cube-with-Schnittpunkten geometry mentally /
104+
sandwich layers in IT reality). Stays as research; no action needed
105+
unless someone tries to make it a carrier (then I-VSA-IDENTITIES fires).
106+
- **Qualia trie codebook timing** — independent of the singleton
107+
dissolution; can ship before or after. The 8 B → 1-2 B compression rung
108+
earns its keep when the codec-stack rotation makes room.
109+
- **StreamDto / ResonanceDto / BusDto DTO collapse** (plan §2.6) is
110+
mostly mechanical post-S2; worth a doc pass when the time comes.
111+
- **D-MBX-7** (lance-graph container layout = MailboxSoA layout =
112+
`ndarray::simd_soa.rs` aligned) per plan §11.1 stays as the
113+
prerequisite for the §2.7 D-MBX-6 (zero-copy SurrealDB view).
114+
115+
## Sources
116+
117+
- **Canonical** (read first): `bardioc/BINDSPACE_DISSOLUTION_HANDOVER.md`
118+
(bardioc PR #18).
119+
- **The plan** (still authoritative): `.claude/plans/bindspace-singleton-to-mailbox-soa-v1.md`.
120+
- **Cross-session ledger**: `bardioc/CROSS_SESSION_COORDINATION.md`
121+
2026-06-05 append-log entry mirrors this handover.
122+
- **Prior art**: `docs/BINDSPACE_MIGRATION_GAP.md` (bucket-2 ladybug arc),
123+
`CLAUDE.md` "The Click" + 2026-05-26 Baton scoping note (Vsa16kF32
124+
framing, deprecated as a carrier).
125+
- **Rubicon binding** (the BBB replacement): `bardioc/rubicon/` (Phases
126+
1-5 shipped, bardioc PR #17 merged); `bardioc/MIGRATION_SPINE.md` for
127+
the spine view; `bardioc/STANDING_WAVE_ARCHITECTURE.md` for the
128+
deinterlace engine (= the standing-wave replacement for Vsa16kF32's
129+
Markov-bundling load).
130+
- **OGAR docs** affected: none — the contract surface does not change.
131+
`QualiaScope` (if/when it lands) is a class-level annotation analogous
132+
to `ContextDepends`; no breaking change.
133+
134+
## Punch list for execution (if you pick this up)
135+
136+
1. Ratify **D-MBX-A2** — add `content/topic/angle: [[u64; 256]; N]` Hamming
137+
planes to `MailboxSoA<N>`; decide on `temporal` (fold into
138+
`CausalEdge64.temporal` or keep `[u64; N]`) and `expert` (subsume into
139+
`mailbox_id` or keep optional column).
140+
2. Ship **S1** — G5 + G6 retargets in `engine_bridge.rs`
141+
(`write/read_qualia_*` + `persist_cycle` minus cycle plane). 1-line
142+
edits behind a feature gate; both `&BindSpace` and `&MailboxSoA`
143+
overloads alive in parallel.
144+
3. Ship **S2** — G4 dissolve. Replace `dispatch_busdto`/`unbind_busdto`/
145+
`busdto_to_binary16k` with a `BusDto::view_over(&MailboxSoA, row)` +
146+
inverse. `engine_bridge.rs` shrinks ~600 → ~150 LOC.
147+
4. Ship **S3** — G1 reshape. `ingest_codebook_indices` becomes a thin
148+
sensor adapter per plan §2.6 StreamDto fate.
149+
5. Ship **S4** — delete `Arc<BindSpace>` from `ShaderDriver`; drop the two
150+
`BindSpace::zeros(4096)` allocations in `bin/serve.rs:29` +
151+
`bin/grpc.rs:29`. Singleton dissolved; plan §5 reached.
152+
6. Then: zero-copy audit pass per the canonical doc §9; D-MBX-A6 (planner
153+
DTO overhaul) per plan §11.6.4; optional qualia trie codebook follow-on.

0 commit comments

Comments
 (0)