Skip to content

Commit 5aaee33

Browse files
authored
Merge pull request #626 from AdaWorldAPI/claude/v3-substrate-migration-review-o0yoxv
V3 convergence wiring: tenant-carve certification, RungElevator, P6 wave probe, seam-list plan
2 parents 2f13861 + 04712d4 commit 5aaee33

18 files changed

Lines changed: 1214 additions & 48 deletions

File tree

.claude/board/AGENT_LOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## 2026-07-01 (cont.) — v3-convergence-wiring D1/D2 execution (2 Sonnet grindwork agents + Fable finish)
2+
3+
**Main thread (Fable 5) + two Sonnet 5 agents (edit-only, shared checkout, no worktrees).** (1) **P6 agent (D-VCW-2, completed):** extended `markov_soa` tests with `p6_palette_join` — self-match exactly 1.0 under a real zero-diagonal 256×256 palette table + hand-computed table arithmetic == `best_guess_match` output; 6/6 module green; correctly refused a planner dep (the TABLE is the join object, dependency flows AriGraph→sensor never reverse). Flagged the pre-existing planner deprecation clippy debt (→ TD-DEPRECATED-ACCESSORS-BLOCK-DEP-CLIPPY). (2) **D1b agent (D-VCW-1b, killed mid-test by worker restart; Fable finished):** driver-persistent `RwLock<RungElevator>` on `ShaderDriver` (per-call-local would never accumulate a streak — the agent's own correct design call), base-change reset so streaks never leak across dispatch contexts, gate fed POST-decision (provenance never alters the gate), `materialize_provenance(…, rung)` replaces the `ctx.rung = 1` proxy, `wire.rs`/`grpc.rs` 10-arm matches deduped through `RungLevel::from_u8`. Fable finished the second test honestly: rung is a +1 tie-weight in tactic scoring, so inequality is asserted for the EMPIRICALLY-differentiating input (rung 1→tactic 17, rung 9→tactic 3 at authoring), not claimed universal. Gates: driver 100/100, contract 755 regression green, fmt clean, driver-own lints clean (dep-closure clippy blocked by the pre-existing deprecation debt, recorded). Commit: this one.
4+
5+
## 2026-07-01 — V3 tenant-carve certification + core in-sandbox verification (Sonnet sweep under the new model split)
6+
7+
**Main thread (Fable 5) + one Sonnet 5 grindwork agent (operator directive this session: Sonnet for grindwork, Fable for decisions/nuance).** Arc: (1) `[patch.crates-io] ndarray` git-URL → local sibling path (burn submodule outside repo scope, 403; patch was `[[patch.unused]]` either way — fetch deadlock gone, resolution unchanged) — `217a698`. (2) NEW probes `osint_v3_cognitive_tenant_carve_field_isolation_matrix` (`217a698`) + `fma_cpic_v3_compressed_tenant_carve_field_isolation_matrix` (`4f06d60`): the I-LEGACY mandatory matrix extended from Kanban-only to BOTH carves a Phase-1 V3 class materialises (Cognitive hot / Compressed cold), on registry-dispatched `mint_for` mints; shared test-local `assert_value_lane_isolation`. Contract: 763 w/ features, 749 default, fmt+clippy clean. (3) protoc installed → **lance-graph core builds in-sandbox for the first time**; `markov_soa` "unverified-offline" STATUS cleared (`aa50cf8`), arigraph 124/124. (4) **Sonnet agent sweep (report-only, shared target/, no worktree):** core lib **925/925** (1 ignored), planner **204/204**, supervisor all green, zero stale offline-status comments remain. (5) Board: EPIPHANIES `E-V3-TENANTS-ALREADY-EXIST-WIRE-DONT-INVENT`; ISSUES `ISS-Q2-CPIC-MIRROR-DIVERGES-FROM-CPIC-V3-REGISTRY` (`18b7f92`, record-only) + same-session dated correction (`eb4be79`: osint-bake DOES call `new_v2` against the real contract import — truncated-grep error owned; only q2 `cpic` carries a local mirror). OGAR untouched (destructive-action halt stands). Branch `claude/v3-substrate-migration-review-o0yoxv`.
8+
19
## 2026-06-25 (cont.⁴³) — SoA value-tenant migration Phase-1 HARVEST: the filled §4 inventory (executing session)
210

311
**Main thread (Opus), operator-directed (executing session for `soa-value-tenant-migration-v1.md`).** Ran the brief's Phase-1 harvest under read-not-grep. Read FULLY: `canonical_node.rs` 1–1091 (the whole `ValueTenant`/`VALUE_TENANTS`/`ValueSchema`/`ReadMode` surface — the `const _` assert `Full.field_mask().count()==VALUE_TENANTS.len()` PROVES exactly **10 tenants**, none hiding in the test module), `class_view.rs` (full), `cascade_key.rs` (full). Two parallel mapping subagents: in-workspace+ndarray producer/consumer map (Opus general-purpose, confirmed-by-read) + cross-repo consumer locator (Explore). **Deliverable:** NEW `.claude/plans/soa-value-tenant-migration-v1-harvest.md` (filled §4 inventory, 10 rows). **Two findings:** (A) **two disjoint SoA worlds** `[G]` — the canonical `NodeRow.value` 480 B slab vs a parallel `MailboxSoA<N>` of separate `[T;N]` columns; only `EntityType≡class_id` shared; **6/10 slab tenants have NO live producer** (only Energy/EntityType/Kanban/Fingerprint are live slab writers) → near-term migration = RECONCILING the two worlds, not homogenizing. (B) **homogeneity-non-closure HOLDS over the slab** `[H]` (the honest §8.5 outcome) — 9/10 tenants irreducibly heterogeneous (identity/scalars/bitfield/cursor) → KEEP (EXCEPT Qualia i4-16D + the future thinking-style i4-32D, which **DEFER** for a bigger substrate-validation test — i4 faithfulness, `I-NOISE-FLOOR-JIRAK`); §8 reduces to "classid is a schema pointer", SHIPPED (`ReadMode`/`ValueSchema`/`ClassView`, `ocr.rs:105` exemplar). **The closure is the operator's ONE CONTAINED facet** (2026-06-25): `facet_classid(4) | helix-place(6 B/48-bit = HelixResidue) | cam-pq(6 B/48-bit canonical CAM-PQ) = 16 B` — identity⊥search⊥schema, codec-selected by facet_classid, layout-preserving (no `ValueSchema` variant, no #500), I-VSA-IDENTITIES-clean (disjoint byte ranges, never bundled). Precise point: the facet wants the **6 B CAM-PQ**, NOT today's 16 B `TurbovecResidue` turbovec — a width decision for §6. **Corrections logged:** q2 `new_v2` blocker is CLOSED (API landed gated, `guid-v2-tail`); the cross-repo agent's "medcare-rs/ogar disk-walled" is a casing miss (`/home/user/{MedCare-rs,OGAR}` ARE present — top follow-up corrective sweep). Doc-only, zero code, no collision. EPIPHANIES E-TWO-SOA-WORLDS + E-HOMOGENEITY-CLOSES-AS-CONTAINED-FACET; INTEGRATION_PLANS prepend supersedes the BRIEF entry's "additive `ValueSchema::Homogeneous`" line. On branch `claude/serene-mayer-1a09he`.

.claude/board/EPIPHANIES.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,115 @@
1+
## 2026-07-01 — E-RUNG-LADDER-IS-DISPATCH-POLICY-OVER-CERTIFIED-MASKS — rung elevation needs zero new math; and there is ONE ladder with TWO signal sources (gate streaks + felt-parse delta)
2+
3+
**Status:** FINDING (shipped: `RungLevel::{from_u8, elevate, de_elevate,
4+
pearl_level, causal_mask_bits}` + `RungElevator` in
5+
`contract::cognitive_shader`, 755 lib tests green).
6+
7+
**Half 1 — no new math.** "Elevates on sustained BLOCK" (documented intent on
8+
`ShaderDispatch::rung` since the field landed; driver ran a `ctx.rung = 1`
9+
proxy) is purely a dispatch policy over algebra the P2/P3 probes already
10+
certified: rung → Pearl level (the enum names its own boundary —
11+
`Counterfactual = 6` is where Level 3 starts; 0–2 observe, 3–5 intervene,
12+
6–9 counterfactual) → SPO projection mask (`PO = 0b011` and `SPO = 0b111`
13+
probe-certified; `O = 0b001` for L1 is a labeled convention pending its own
14+
probe). The elevator is a ~40-line homeostatic state machine: sustained BLOCK
15+
elevates, sustained FLOW relaxes toward the dispatched base, HOLD resets
16+
streaks without ladder creep. Threshold 2 hand-tuned (disclosed per
17+
`I-NOISE-FLOOR-JIRAK`).
18+
19+
**Half 2 — convergence catch (anti-invention applied to my own type):** the
20+
tree already had `escalation::rung_delta(emergence, coherence) → ±1` (the
21+
felt-parse System-1 rung hint, `CollapseHint::RungElevate`). NOT a duplicate —
22+
a second signal source. Resolution: `RungElevator::apply_delta(i8)` drives the
23+
SAME accumulator the gate streaks drive. One ladder, two inputs: gate streaks
24+
= System-2 stuck/converged evidence; qualia delta = System-1 felt hint; both
25+
respect the same base floor and Transcendent ceiling. The near-miss (almost
26+
shipping a parallel ladder) is the same reflex `E-V3-TENANTS-ALREADY-EXIST-
27+
WIRE-DONT-INVENT` names — caught this time by checking the test namespace
28+
collision before committing.
29+
30+
Plan: `.claude/plans/v3-convergence-wiring-v1.md` (D-VCW-1a; D-VCW-1b threads
31+
it through the driver).
32+
33+
---
34+
35+
## 2026-07-01 — E-V3-TENANTS-ALREADY-EXIST-WIRE-DONT-INVENT — the "V3 substrate for AriGraph-shaped SoA tenants" already exists in `canonical_node.rs`; Phase-2 work is certification, not invention
36+
37+
**Status:** FINDING (probes green: `osint_v3_cognitive_tenant_carve_field_isolation_matrix` + `fma_cpic_v3_compressed_tenant_carve_field_isolation_matrix` — BOTH carves a Phase-1 V3 class materialises, Cognitive hot + Compressed cold, are now matrix-covered. 2026-07-01 addendum: lance-graph CORE now compiles in-sandbox — crates.io noProxy + local ndarray path patch + protoc — and `graph::arigraph` is 124/124 green incl. `markov_soa`'s 4, so the wave projector's "unverified-offline" caveat is cleared: the full wire classid → read-mode → certified tenants → AriGraph wave is probed end-to-end).
38+
39+
**The near-miss.** This session was about to invent a "new V3 substrate for
40+
AriGraph-shaped SoA tenants" (operator caught it). Reading before writing showed
41+
every piece already shipped:
42+
- `TailVariant::V3` + `CLASSID_OSINT_V3 = 0x1000_0700` (gen-marker hi u16, canon
43+
concept lo u16 — exactly the operator's `0x07:01 / 1000`), registry-resolved via
44+
`classid_read_mode` → `ReadMode::OSINT_V3 = {V3, Cognitive, CoarseOnly}`.
45+
- The AriGraph-hot tenants ARE `ValueSchema::Cognitive`'s 7 lanes (Meta/Qualia/
46+
Fingerprint/Energy/Plasticity/EntityType/Kanban) — the same columns
47+
`MailboxSoaView` exposes (`meta_raw`/`energy`/`entity_type`≡`class_id`) and
48+
`arigraph::markov_soa` (the wave) folds over.
49+
- `mint_for(classid_read_mode(c).tail_variant, …)` is the sanctioned mint; no
50+
`new_v3` exists by design.
51+
52+
**What was actually missing (and now shipped):** the I-LEGACY mandatory
53+
field-isolation matrix covered ONLY the Kanban tenant. New probe extends it to
54+
the whole Cognitive carve on a registry-minted OSINT-V3 row: per-tenant lane
55+
flip → zero bytes change outside the lane, key+edges untouched, EntityType lane
56+
carries the canon `0x0700` concept (gen-marker never leaks into the entity
57+
discriminator), typed accessors (`set_kanban`/`qualia`) decode the same certified
58+
slab. Phase 2 ("shape the V3 tenants on top", CPIC doc) proceeds as *readings
59+
over this certified carve* — `classid → ClassView` interpretations, never new
60+
`ValueSchema` variants (#496/#500 guardrail).
61+
62+
**Build unblock (same commit):** `[patch.crates-io] ndarray` moved from the git
63+
URL to the local sibling path (`path = "../ndarray"`). The git form re-fetched
64+
the fork + its `burn` submodule on every resolve; `AdaWorldAPI/burn` is outside
65+
the session repo scope (403, unfetchable gitlink `9b2b671`), deadlocking every
66+
offline/scoped session. The patch was `[[patch.unused]]` in the lock either way
67+
(documented TD-NDARRAY-PATCH-0_16), so resolution is unchanged — only the
68+
fetch-deadlock is gone. P0 fork doctrine holds: same fork, local source
69+
("prefer the local/fork source over the registry, always").
70+
71+
---
72+
73+
## 2026-07-01 — E-RENDER-IS-CLASS-BITMASK-ASKAMA-NOT-SEMIRING — the view/attention side is `class + bitmask + askama` (Redmine ERB over AR), NOT semiring algebra; it lives in the non-frozen `0x1000` app prefix
74+
75+
**Status:** DOCTRINE (operator, 2026-07-01: "we don't want semiring, we use
76+
classes and bitmask and askama (redmine ERB pattern) … the 1000 non-frozen later
77+
gets more complicated because it adapts the askama SoA view (implicit focus of
78+
attention)").
79+
80+
**The split.**
81+
- **Frozen concept (lo u16, e.g. `0x0701`)** = the shared **Active Record class
82+
identity**. A class is just a class (Redmine `Issue`/`Project`/`User` shape);
83+
the domain prefix is namespacing, nothing to philosophize about. Frozen,
84+
cross-app, RBAC+ontology.
85+
- **Non-frozen app prefix (hi u16, e.g. `0x1000`)** = the **render / view** side,
86+
which "adapts the askama SoA view." This is where the complexity accretes
87+
*later*, per-app, and it is NOT the concept.
88+
89+
**The render mechanism — NO semiring.** View/attention is:
90+
`classid → ClassView (the AR class) → bitmask (the implicit focus of attention:
91+
which SoA value-tenant columns render/attend) → askama template (Redmine-ERB over
92+
the AR model)`. The **bitmask is the focus-of-attention selector**; askama is the
93+
ERB view; the class is the model. No semiring algebra on this path — the AGI-glove
94+
render surface is `class + bitmask + askama`, not `Σ`.
95+
96+
**Consequences.**
97+
- The 36-semiring machinery (`docs/SEMIRING_ALGEBRA_SURFACE.md`) is NOT the render
98+
path. Do not reach for a semiring to select/compose *view fields* — that's the
99+
bitmask + askama job.
100+
- The bitmask = the `ClassView` field-mask over the SoA value tenants (the "focus
101+
of awareness" from `E-SPO-2CUBE-…` / the AGI-glove `MetaColumn`), consumed by an
102+
askama template per app prefix.
103+
- The immediate `osint_system 0x0700 → 0x0702` fix is a **frozen-concept lo-u16
104+
slot** correction (a class needs a non-root id) — entirely orthogonal to this
105+
render-side doctrine; the askama/bitmask complexity is the `0x1000` side, later.
106+
107+
**Cross-ref:** `E-SPO-2CUBE-GIVES-QUESTIONS-AND-CANDIDATES` (bitmask = focus);
108+
OGAR `docs/OSINT-SUBSTRATE-REUSE-MAP.md` (ClassView + askama-ERB transfer stack);
109+
`ISS-OSINT-SYSTEM-ROOT-SLOT-VIOLATION` (the frozen-side id fix).
110+
111+
---
112+
1113
## 2026-07-01 — E-OGAR-LANCEGRAPH-MOVE-IN-PARALLEL — OGAR + lance-graph are one coupled pair moved together every session; the `COUNT_FUSE` is the intentional dependency contract that enforces it (NOT a break to engineer away)
2114

3115
**Status:** DOCTRINE (operator, 2026-07-01: "every session needs to move OGAR and

.claude/board/INTEGRATION_PLANS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2026-07-01 — v3-convergence-wiring (wire, don't invent — every layer already contains its own solution)
2+
3+
Plan: `.claude/plans/v3-convergence-wiring-v1.md`. **Operator all-in ("I'm all in for your ideas — document and PR so other sessions converge"); model split Sonnet-grindwork/Fable-decisions.** The organizing finding (`E-V3-TENANTS-ALREADY-EXIST-WIRE-DONT-INVENT`): the V3 substrate's gaps are unwired seams, not missing machinery — every deliverable is a probe or a wiring of EXISTING types, §0 anti-invention throughout. **Seam list:** D1a `RungLevel::{from_u8,elevate,de_elevate,pearl_level,causal_mask_bits}` + `RungElevator` (zero-dep "elevates on sustained BLOCK" as a pure policy over `GateDecision` + the P2/P3-certified mask algebra; converged with `escalation::rung_delta` via `apply_delta` — one ladder, two signal sources: gate streaks = System-2, felt-parse = System-1) — SHIPPED; D1b driver wiring (replace `ctx.rung = 1` proxy, dedup wire/grpc u8→rung matches) — Sonnet in flight; D2 P6 wave-convergence probe (markov_soa's injected distance = the SAME certified 256×256 palette read as P1–P3; the table is the join object) — SHIPPED (2 tests, 6/6 module green); D3 P7 render probe spec (ClassView bitmask → askama; rendered fields == masked tenants; q2-side, push-gated, spec ready §3); D4 one-row registry (codebook row seeds `{tail, value_schema, edge_codec, bitmask, template}`; read-mode parity fuse sibling of COUNT_FUSE; Phase B gated on operator + osint decision); D5 nibble-hierarchy falsifier (FNV `cascade3` bytes have no nibble ancestry → HHTL on bake mints is tier-granular; `ISS-Q2-CASCADE3-NIBBLE-ANCESTRY`); D6 negative-existence-claims worker rule (knowledge doc Rule 7) — SHIPPED; D7 rig/rs-graph-llm FailureTicket loop — deferred frontier (first place determinism ends). **Doctrine (no code):** the two SoA worlds stay two — Lance columnar I/O is the reconciler; consumers write against per-row accessors; column borrows are the owner's privilege. ACTIVE.
4+
15
## 2026-06-26 — ogar-sink-in + consumer-bridge removal (medcare-bridge → UnifiedBridge → delete)
26

37
Plan: `.claude/plans/ogar-sink-in-and-consumer-bridge-removal-v1.md`. **Codifies the sink-in layering + sequences the final bridge deletion.** Grounded finding: the migration is **~90% shipped** — all 6 per-consumer bridges (incl. `medcare_bridge.rs`) are already `#[deprecated] type FooBridge = UnifiedBridge<FooPort>` aliases over one generic harness; `docs/CONSUMER-BRIDGE-DEPRECATION.md` (OGAR#95) is the live doctrine ("nothing removed; deletion lands after consumers migrate"). **Sink-in decision (§2):** OGAR owns the *meaning* (PortSpec / codebook / ClassView / ActionDef / ontology); `lance-graph-contract` owns the zero-dep *wire* mirror (the parity guard, never a dep); `lance-graph-ontology` owns the OGIT registry; `lance-graph-rbac` owns grants keyed on the **shared lo-u16 concept** (render hi-u16 never gates RBAC — the CLASSID-RBAC-KEYSTONE-SPEC); `lance-graph-ogar` keeps only the `UnifiedBridge<P>` mechanism + `parity`. **medcare recast (§3):** the medcare domain dissolves into **reusable patterns** (the shared `HealthcarePort::class_id` / convergent codebook surface in OGAR) **+ domain-specific Ontology Schema enrichment** (Healthcare `0x09XX` / FMA-V3 `0x1000_0A01` / CPIC-V3 `0x1000_0E00` in OGIT) — never a bridge in the spine. **Deliverables:** D-SINK-1 ratify layering → D-SINK-2 migrate consumers off `MedcareBridge` (cross-repo, Iron Rule 5) → D-SINK-3 delete the 6 aliases (scope-lock tests ported first) → D-SINK-4 reconcile the two `WoaBridge` identities → D-SINK-5 sink the medcare ontology (the cross-repo codebook-mint arc, `ISS-OGAR-GENETICS-MIRROR-PENDING`). **Gated:** no deletion before consumers migrate (OGAR#95); intersects the operator-gated classid realign (D-OVC) + Canon:Custom. Extends CONSUMER-BRIDGE-DEPRECATION + ogar-vocab-contract-codebook-migration-v1; does not supersede them. Doc-only. PROPOSED.

0 commit comments

Comments
 (0)