adaptor: lift the persistence substrate into the santi-adaptor crate #42

Merged
PerishFire merged 1 commit from split-adaptor-crate into main 2026-07-21 05:11:36 +00:00
Owner

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. 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.
adaptor: lift the persistence substrate into the santi-adaptor crate
All checks were successful
guard / guard (pull_request) Successful in 2m8s
8d6a22279f
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>
PerishFire deleted branch split-adaptor-crate 2026-07-21 05:11:37 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishFire/santi!42
No description provided.