Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
## D-DT64-7 — behaviour addressing and registration: Frozen, Learned, Explore over one classid (2026-10-31)

Plan: `.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md`. Docs only. Frozen = compile time, at `0xFFFF :: 0xF###`, registered by DT64 as delegate for `lance-graph-ogar` without `ogar-vocab` (concern by range: relalg `F0__`, XLOG `F1__`, ONNX `F2__`, TFLite `F3__`, proposed); Learned = registered in the `BindStore` at `Domain::AppId :: 0xF###`; Explore = not registered. Right side = ClassView / `WideFieldMask` selection.
Plan: `.claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md`. Docs only. Frozen = compile time, at `0xFFFF :: 0xF###`, registered by DT64 as delegate for `lance-graph-ogar` without `ogar-vocab` (concern by range: relalg `F0__`, XLOG `F1__`, ONNX `F2__`, TF family incl. TFLite `F3__`, SQL-specific `F4__`, Gremlin-specific `F5__`; DECIDED O7); Learned = registered in the `BindStore` at `Domain::AppId :: 0xF###`; Explore = not registered. Right side = ClassView / `WideFieldMask` selection. O7–O10 DECIDED (plan §1d): host composition, full-classid basis for behaviour lenses, consumer-supplied `ClassView` with a basis witness.

| D-id | Deliverable | Status | Gate |
|---|---|---|---|
| D-DT64-7-0 | plan and board rows | In PR | docs review |
| D-DT64-7-0 | plan and board rows | Shipped (#1898, #1900) | docs review |
| D-DT64-7-1 | `classid_canon_compat(0x0000_F123) == 0x0000` falsifier (F5, legacy ids only), with the twin `0xFFFF_F000 → 0xFFFF` | Queued | none |
| D-DT64-7-2 | `BindStore` withdrawal with constraints C1–C8, behind an activation | Queued | O8 |
| D-DT64-7-3 | compile-time Frozen polyfill table at `0xFFFF :: 0xF000`, registered by DT64, parity test against `R2ILVocabulary`; `ogar-loco` / `ogar-r2il` optional in `lance-graph-r2il` | Queued | O7 |
| D-DT64-7-4 | DT64 `CapabilityAuthority` for concept `0xFFFF` + the composing authority | Queued | O2 (OGAR owner), O8 |
| D-DT64-7-2 | `BindStore` withdrawal with constraints C1–C8, behind an activation | Queued | after L2/L3 |
| D-DT64-7-3 | compile-time Frozen polyfill table at `0xFFFF :: 0xF000`, registered by DT64, parity test against `R2ILVocabulary`; `ogar-loco` / `ogar-r2il` optional in `lance-graph-r2il` | In part: positional lens shipped (#1899); OGAR still on the path | — |
| D-DT64-7-4 | DT64 `CapabilityAuthority` for concept `0xFFFF` + host-side composing authority (O8) | Queued | O2 (OGAR owner) |
| D-DT64-7-6 | polyglot alias views (C, Rust, Java, SQL) over one Frozen algebra: words bound by position, names as per-language `ClassView` labels; `prepare`/`run` timed in ns | Queued | D-DT64-7-3, O7 |
| D-DT64-7-7 | semantic union census of operator sets (ONNX, TF, TFLite, GGML, Burn IR, R2IL, XLOG) after aliasing; decides the `0xF0__` layout and the tensor ranges | Queued | counts recounted from source |
| D-DT64-7-L4 | production alias views (R2IL, SQL, Quack) from `POLYFILL` | In progress | — |
| D-DT64-7-L1 | full-classid basis for behaviour lenses (contract `ClassView` accessor) | Queued | after L4 |
| D-DT64-7-L5 | consumer `ClassView` + immutable basis witness at registration | Queued | after L1 |
| D-DT64-7-L2 | host composition of DT64 and OGAR authorities + views, with activation checks (L3) | Queued | after L5 |
| D-DT64-7-5 | the versioned global → local selection table (D-LITHO Q5) | Queued | O5 (DR/DT owner) |

## D-MIST-NATIVE — Mistaber's Kripke holdings over the DR64 relation register (2026-10-30)
Expand Down
26 changes: 22 additions & 4 deletions .claude/plans/d-dt64-7-behaviour-addressing-registration-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,24 @@ WORKING-MODEL items (not started; each names the decision it needs):
| L4 | Ship the polyfill lens's language alias views (R2IL, SQL, Quack) as a library surface derived from the `POLYFILL` table (#1899), instead of test-only views. | — |
| L5 | How a consumer codebook hands its labels over: the consumer implements `ClassView` itself (as `CatsSchema` does), or the authority returns label rows with the activation. The second changes `Activation`; the first needs no contract change. | O10 |

### 1d. Decisions O7–O10 (operator, 2026-10-31, after #1898–#1900 merged)

| # | decision |
|---|---|
| O7 | **Concern ranges.** `F0__` shared relational algebra (relalg / mask-risc polyfill); `F1__` XLOG-exclusive semantics, only after promotion; `F2__` ONNX; `F3__` the TensorFlow family including TFLite (shared concern, not necessarily shared lenses: equal names do not imply equal semantics); `F4__` genuine SQL-specific semantics (for example `NULL`); `F5__` genuine Gremlin-specific semantics; `F6__ ..= FF__` reserved. SQL and Gremlin use the shared algebra wherever semantics are exactly equal; `F4__`/`F5__` gain words only for a measured gap. Aliases never mint duplicate operators. No implementation commitment for unmeasured operator families. |
| O8 | **Composition in the host.** DT64 owns the `0xFFFF` authority. It is composed with OGAR's authority in the host / application assembly layer, never by a dependency from `lance-graph-ogar` to `lance-graph-dt64`. The routing policy is one tested piece, not reimplemented per consumer. |
| O9 | **Full-classid basis for behaviour lenses.** A behaviour lens's field basis resolves by the full `u32` classid, through a backward-compatible, lens-specific `ClassView` accessor. Data-class lookup and the `0xC401` R2IL reading keep their current resolution. An unknown behaviour lens fails closed; it never inherits the concept's data-field basis. `AlgebraRef.word`, `WideFieldMask` and the 256-position limit are not widened. 256 is the limit per lens, not per concern. |
| O10 | **The consumer supplies its own `ClassView`** from its codebook. No label arrays are added to `Activation`. Activation alone does not establish label provenance: registration associates the authorized owner and activation with a versioned schema/basis witness, and refuses a missing activation, a mismatching basis, a stale revision and unauthorized ownership. An arbitrary caller-supplied view is not trusted silently. |

**Execution order** (each a separate PR; each step test-first, with a disable run and a backward-compatibility twin):

1. **L4:** production alias views (R2IL, SQL, Quack) derived from the existing `POLYFILL` table. No parallel opcode table, no change to the `0xC401` path.
2. **L1:** two behaviour lenses with the same left half, different right halves and different bases resolve independently; a consumer data class and a behaviour lens sharing a left half do not cross-read. The red-first case: `0xFFFF_F000` with 17 fields and `0xFFFF_F200` with a different count must not both read `fields(0xFFFF)`.
3. **L5:** the smallest consumer-`ClassView` and immutable basis-witness seam; `Activation` unchanged.
4. **L2/L3:** host composition and explicit activation checks; DT64 and OGAR stay independent.

Preserved throughout: the `0xC401` name-bound reading, the `FnIndex` opcode contract, positional polyfill semantics, refusal on wrong aliases, and the existing integration tests. Not introduced: a new runtime, a second authoritative registry, premature removal of the OGAR dependency, automatic XLOG promotion, a shared data-field/algebra-field namespace.

---

## 2. The classid, both sides
Expand Down Expand Up @@ -196,10 +214,10 @@ Each constraint is a test that fires plus a twin that stays silent, on non-trivi
| O4 | Right-side `0xF###` selection: does one value name one stored selection over the existing 256-position basis, or one position in a wider basis (which widens `WideFieldMask` and `AlgebraRef.word` past `u8`)? D7' points to the first. | operator |
| O5 | D-LITHO Q5: which lance-graph table versions the global → local selection, and its row shape (WORKING-MODEL: versions = frame revisions, one row per local position, read through a ClassView, selected by a `WideFieldMask`; it also holds the stored selections of D7'). | DR/DT owner |
| O6 | Whether `recursive::trace` (#1896) stays as a semi-naive test oracle or is removed; either way it is documented as not the traceroute. | operator |
| O7 | The concern ranges inside `0xF###` (§1a table): confirm the digit-per-concern split and the order. Per §1b, languages that only rename the shared algebra become alias views; which of SQL, Gremlin and XLOG keep a range? Does full TensorFlow share TFLite's range, or take its own? | operator |
| O9 | Behaviour-lens basis key (L1): keep the left-half key (256 words per left side; a large operator set takes several left sides), or key behaviour lenses by the full classid (a contract `ClassView` change). | operator |
| O10 | Label handover from a consumer codebook (L5): the consumer's own `impl ClassView`, or label rows returned by the authority with the activation. | operator |
| O8 | Where the composing authority (and the composed `ClassView`, L2) lives: in `lance-graph-ogar` (which then depends on `lance-graph-dt64`), or in the binary that holds both authorities. | operator |
| O7 | The concern ranges inside `0xF###` (§1a table): confirm the digit-per-concern split and the order. Per §1b, languages that only rename the shared algebra become alias views; which of SQL, Gremlin and XLOG keep a range? Does full TensorFlow share TFLite's range, or take its own? | **DECIDED §1d** |
| O9 | Behaviour-lens basis key (L1): keep the left-half key (256 words per left side; a large operator set takes several left sides), or key behaviour lenses by the full classid (a contract `ClassView` change). | **DECIDED §1d** |
| O10 | Label handover from a consumer codebook (L5): the consumer's own `impl ClassView`, or label rows returned by the authority with the activation. | **DECIDED §1d** |
| O8 | Where the composing authority (and the composed `ClassView`, L2) lives: in `lance-graph-ogar` (which then depends on `lance-graph-dt64`), or in the binary that holds both authorities. | **DECIDED §1d** |

---

Expand Down
Loading