Status
Blocked by V-L1-A1. Open this only after V-L1-A1 resolves in favour of the modalities octad. If V-L1-A1 picks concerns, close this with a pointer to V-L1-A2 instead.
Context
If the modalities octad ({Graph, Vector, Tensor, Semantic, Document, Temporal, Provenance, Spatial}) is canonical, the codebase currently contradicts the README. The fix is a much larger refactor than V-L1-A2 and should probably be split into sub-issues.
What to do (epic — split into sub-issues)
Code changes
- A3-1 Rewrite
src/abi/mod.rs::OctadDimension enum variants and all() order to the modalities set.
- A3-2 Rewrite
src/manifest/mod.rs::OctadConfig fields: replace enable_provenance/lineage/temporal/access_control/simulation with enable_graph/vector/tensor/semantic/document/spatial (Temporal and Provenance become inherent or stay top-level — design call inside A3-2).
- A3-3 Rewrite
src/codegen/overlay.rs table generators: replace verisimdb_provenance_log / lineage_graph / temporal_versions / access_policies / simulation_* with modality-shaped tables (graph triples, vector index metadata, tensor blobs, semantic CBOR sidecars, document tantivy stub, spatial R-tree index). Note: most of these need real storage backends, not just SQLite DDL — A3-3 itself may need further splitting.
- A3-4 Rewrite
src/codegen/query.rs interceptors per modality.
- A3-5 Reframe Provenance and Temporal: are they modalities, concerns, or both? Almost certainly the answer is "they're cross-cutting concerns even under the modalities ontology" — document the asymmetry in the ADR.
- A3-6 Move the existing concerns logic (Lineage, Constraints, AccessControl, Simulation) somewhere — either delete (if not wanted at all), or relabel as orthogonal "aspects" living alongside the modalities octad.
Test + doc
- A3-7 Rewrite
tests/integration_test.rs for the new enum, new manifest schema, new DDL prefixes.
- A3-8 Update README's Tier 1 / Tier 2 split (Tier 1 vs Tier 2 may collapse if every modality is now Tier 2).
- A3-9 Update ROADMAP phases.
- A3-10 Add migration tooling:
verisimiser migrate-manifest that translates an old [octad] block to the new schema.
Caveats
This is a breaking change to the public surface. The crate is pre-alpha, so semver allows it, but anything using the existing manifest schema (e.g. examples/blog-db/verisimiser.toml) needs updating in lockstep.
Acceptance
Status
Blocked by V-L1-A1. Open this only after V-L1-A1 resolves in favour of the modalities octad. If V-L1-A1 picks concerns, close this with a pointer to V-L1-A2 instead.
Context
If the modalities octad ({Graph, Vector, Tensor, Semantic, Document, Temporal, Provenance, Spatial}) is canonical, the codebase currently contradicts the README. The fix is a much larger refactor than V-L1-A2 and should probably be split into sub-issues.
What to do (epic — split into sub-issues)
Code changes
src/abi/mod.rs::OctadDimensionenum variants andall()order to the modalities set.src/manifest/mod.rs::OctadConfigfields: replaceenable_provenance/lineage/temporal/access_control/simulationwithenable_graph/vector/tensor/semantic/document/spatial(Temporal and Provenance become inherent or stay top-level — design call inside A3-2).src/codegen/overlay.rstable generators: replaceverisimdb_provenance_log/lineage_graph/temporal_versions/access_policies/simulation_*with modality-shaped tables (graph triples, vector index metadata, tensor blobs, semantic CBOR sidecars, document tantivy stub, spatial R-tree index). Note: most of these need real storage backends, not just SQLite DDL — A3-3 itself may need further splitting.src/codegen/query.rsinterceptors per modality.Test + doc
tests/integration_test.rsfor the new enum, new manifest schema, new DDL prefixes.verisimiser migrate-manifestthat translates an old[octad]block to the new schema.Caveats
This is a breaking change to the public surface. The crate is pre-alpha, so semver allows it, but anything using the existing manifest schema (e.g.
examples/blog-db/verisimiser.toml) needs updating in lockstep.Acceptance
cargo testis green after the epic lands