ADR-013: fold the forked substrate into alkstore-sqlite — no fourth crate
Operator review of ADR-012's fork design re-litigated §1's crate identity. alkstore-substrate misdescribed what the code is (unpublished, path-dep-only, one consumer, SQLite-only — not a family-wide substrate); the mechanical-diff hope was gone at fork time regardless (port deltas, renames, re-derived half); and the alksocks F-1 lesson applies — a vendored region under a second, weaker instruction set is a defect seam. The fork folds into alkstore-sqlite as a bounded module subtree (src/substrate/); ADR-012 §3–§6 retained verbatim, §2 retained with its enforcement re-sited from the crate graph to diff fence + review + contract-suite equivalence pins. OQ-11 item (1) dissolved.
This commit is contained in:
1 parent
2949612e2c
commit
8e68b44194
10 files changed
+309
-55
No files matched your search
@@ -18,11 +18,15 @@ fork trigger fired on the published-artifact facts); **the fork
|
||||
design follow-through** (2026-10-05,
|
||||
[ADR-012](decisions/012-forked-substrate-design.md) — substrate
|
||||
boundaries, fidelity posture, port deltas; its substrate-side residue
|
||||
is OQ-11). Next: OQ-08 (rides the now-pinned trait shape and the
|
||||
is OQ-11); **the fork packaging folded** (2026-10-05,
|
||||
[ADR-013](decisions/013-fold-substrate-into-sqlite.md) — no
|
||||
`alkstore-substrate` crate; the forked machinery is a module subtree of
|
||||
`alkstore-sqlite`). Next: OQ-08 (rides the now-pinned trait shape and the
|
||||
ADR-011 substrate fork), OQ-10 (versioning discipline for contract
|
||||
extensions; note ADR-011 changes its substrate-side facts for SQLite —
|
||||
the forked crate is versioned in this repository's Cargo workspace, so
|
||||
the engine/core contract pairing is what the discipline must track), and
|
||||
the forked machinery lives in-tree inside the engine crate per
|
||||
[ADR-013](decisions/013-fold-substrate-into-sqlite.md), so the
|
||||
engine/core contract pairing is what the discipline must track), and
|
||||
OQ-11 (fork follow-through items — substrate-side, non-consumer-facing).
|
||||
|
||||
Resolved questions stay listed with their resolution; they are not
|
||||
@@ -262,31 +266,36 @@ narrowed to the pinning work its own record already scoped.)*
|
||||
### OQ-11: Forked-substrate follow-through — scaffold, provenance register, and cherry-pick discipline
|
||||
|
||||
- **Origin**: [ADR-012](decisions/012-forked-substrate-design.md)
|
||||
(the fork design; substrate-side residue), [ADR-011](decisions/011-sqlite-substrate-fork.md)
|
||||
- **Status**: open
|
||||
(the fork design; substrate-side residue), [ADR-011](decisions/011-sqlite-substrate-fork.md),
|
||||
[ADR-013](decisions/013-fold-substrate-into-sqlite.md)
|
||||
- **Status**: open (reshaped 2026-10-05 by
|
||||
[ADR-013](decisions/013-fold-substrate-into-sqlite.md) — item (1)
|
||||
dissolved)
|
||||
- **Priority**: medium (nothing consumer-facing rides on it; it
|
||||
resolves within the fork-scaffold task, which it does not gate)
|
||||
- **Resolution**: open. ADR-012 fixed the *design* (contract-blind
|
||||
boundary, fidelity posture, port deltas, bootstrap machinery,
|
||||
upstream-tracking stance) and also pinned the provenance register's
|
||||
location, timing, and initial contents (§1). The residue is: (1) the
|
||||
exact Cargo-workspace layout and build wiring of
|
||||
`alkstore-substrate` in this repository (crate location, feature
|
||||
gating of the `bundled-sqlite` interplay with the engine crate's own
|
||||
rusqlite dependency); (2) the provenance register's *format and
|
||||
delta-list granularity* (per-commit entries vs per-delta-class;
|
||||
whether cherry-pick records append at adoption time — location,
|
||||
timing, and initial contents are ADR-012 §1's, not re-opened here);
|
||||
location, timing, and initial contents (§1, as carried in-tree by
|
||||
ADR-013). The residue is: (1) **dissolved** by the fold
|
||||
([ADR-013](decisions/013-fold-substrate-into-sqlite.md)) — there is
|
||||
no separate substrate crate to wire; the engine crate carries one
|
||||
rusqlite dependency and no `bundled-sqlite` interplay question;
|
||||
(2) the provenance register's *format and delta-list granularity*
|
||||
(per-commit entries vs per-delta-class;
|
||||
whether cherry-pick records append at adoption time — the register
|
||||
lives in-tree beside the substrate subtree per
|
||||
[ADR-013](decisions/013-fold-substrate-into-sqlite.md) §3; its
|
||||
timing and initial contents are ADR-012 §1's, not re-opened here);
|
||||
(3) the cherry-pick *procedure* in practice — how a candidate
|
||||
upstream fix is evaluated, applied, and recorded so ADR-012 §6's
|
||||
deliberate-work posture stays auditable. These resolve *within* the
|
||||
fork-scaffold task (its opening section), not before it and not as a
|
||||
gate on writing it; the scaffold's build wiring depends on (1)'s
|
||||
outcome.
|
||||
gate on writing it.
|
||||
- **Cross-references**: OQ-08 (the contract surface the engine maps
|
||||
the substrate under), OQ-10 (the substrate is a crate in this
|
||||
repository's Cargo workspace — its versioning interacts with the
|
||||
discipline), ADR-011, ADR-012.
|
||||
the substrate under), OQ-10 (the engine's versioning discipline now
|
||||
carries the fold's provenance duties in-tree), ADR-011, ADR-012,
|
||||
ADR-013.
|
||||
|
||||
## Deferred / Blocked
|
||||
|
||||
|
||||
Reference in new issue
Block a user