adaptor: lift the persistence substrate into the santi-adaptor crate #42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "split-adaptor-crate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase B of the crate-split. Pulls store/db + store/rows + store/schema out of santi-core into a new leaf crate santi-adaptor, inverting the dependency (core -> adaptor, proven acyclic via cargo tree). Mechanical move enabled by Phase A: git mv the trees, rewrite absolute paths (crate::store::{db,rows} -> crate::{db,rows}; contract types -> santi_model::), widen the Database surface to pub. Loose ends resolved: SCHEMA_VERSION + SANTI_SYSTEM_ACTOR_ID move to adaptor (core re-exports); soul_memory_file (a mis-filed pure path-builder) moves back to core so adaptor keeps zero core refs. Domain zero-churn via store::db/store::rows re-export shims. migration.rs folded to keep db/ at fanout 10, no new exemption. WIRE_PATH += santi-adaptor/; internal debt ratcheted 857->849. 0 faults, core 0, 42 test groups green.
Phase B of the crate-split: pull store/db, store/rows, and store/schema out of santi-core into a new leaf crate, santi-adaptor, inverting the dependency so core -> adaptor (never back). Phase A had already pulled every inherent Database method under store/db, so this is a mechanical move: git mv the three trees, rewrite the moved files' absolute paths (crate::store::{db,rows} -> crate::{db,rows}; contract types crate::X -> santi_model::X), and widen the substrate surface Database, its methods, the row Decode trait, and the lifecycle/effects/receipts re-exports to pub so core can consume them across the crate boundary. Loose ends resolved rather than carried: SCHEMA_VERSION and SANTI_SYSTEM_ACTOR_ID move to the adaptor (persistence-owned) and core re-exports them; soul_memory_file was a pure path-builder mis-filed under db/lifecycle -- it moves back into core next to workspace::MEMORY_FILE, so the adaptor keeps zero santi-core references (proven acyclic: cargo tree shows adaptor does not depend on core). Zero churn in the domain: core's store::db and store::rows become one-line re-export shims (pub use santi_adaptor::{db,rows}::*), so every existing crate::store::db::X / super::rows::X path in the domain resolves unchanged. migration.rs folds into migration/mod.rs to keep db/ at fanout 10 with no new exemption. WIRE_PATH gains santi-adaptor/. Internal word debt ratchets 857 -> 849 as compound types cross onto the wire boundary. 0 faults / 0 blindspots, core debt 0, 42 workspace test groups green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>