window: extract the web-panel window layer into the santi-window crate #44

Merged
PerishFire merged 1 commit from split-window-crate into main 2026-07-21 05:48:23 +00:00
Owner

Phase C second cut, mirroring santi-im. The window read surface (window_message, window_transcript, labeled_strand id lookup) is a peripheral feature -> santi-window as free fns taking &Connection, deps rusqlite + santi-model + serde_json only. core's store/window.rs shrinks to thin pub(crate) forwarders (byte-identical signatures, service/window.rs untouched); labeled_strand splits into crate labeled_strand_id + core self.strand(). The one window_messages write stays in the ingest admission tx. Internal debt ratcheted 849->844. 0 faults, core 0, 46 test groups green.

Phase C second cut, mirroring santi-im. The window read surface (window_message, window_transcript, labeled_strand id lookup) is a peripheral feature -> santi-window as free fns taking &Connection, deps rusqlite + santi-model + serde_json only. core's store/window.rs shrinks to thin pub(crate) forwarders (byte-identical signatures, service/window.rs untouched); labeled_strand splits into crate labeled_strand_id + core self.strand(). The one window_messages write stays in the ingest admission tx. Internal debt ratcheted 849->844. 0 faults, core 0, 46 test groups green.
window: extract the web-panel window layer into the santi-window crate
All checks were successful
guard / guard (pull_request) Successful in 2m2s
d36d55e2f5
Phase C, second cut, mirroring the santi-im extraction. The window read
surface (window_message reservation lookup, window_transcript projection,
and the labeled_strand id lookup) is a peripheral feature: delete it and
core still runs. santi-window holds those as free functions taking
&Connection, depending only on rusqlite + santi-model + serde_json.

core's store/window.rs shrinks to thin pub(crate) SantiStore forwarders
with byte-identical signatures, so service/window.rs is untouched.
labeled_strand splits cleanly: the crate returns the strand id
(labeled_strand_id) and the core forwarder finishes with self.strand(),
keeping the santi-core dependency (souls::strand) out of the crate. The one
window_messages write lives in the ingest admission transaction
(budget/inbox.rs) and stays in core with the rest of the admission policy.

WIRE_PATH gains santi-window/. Internal debt ratcheted 849 -> 844 as the
window compound types crossed onto the wire boundary. 0 faults, core debt 0,
46 workspace test groups green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PerishFire deleted branch split-window-crate 2026-07-21 05:48:23 +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!44
No description provided.