life: shut the Work handle inside the crate #94

Merged
PerishFire merged 1 commit from work-surface into main 2026-07-21 05:18:40 +00:00
Owner
No description provided.
life: shut the Work handle inside the crate
All checks were successful
guard / guard (pull_request) Successful in 28s
b86fe762ff
Work is the engine's store handle. Nothing outside keel touches it --
not gate, relay, blob, api, nor the tests -- and it appears in no public
signature. It was reachable anyway, because lib.rs re-exports the whole
life module and the struct was pub.

Its method visibility had no rule behind it: put/set/end/tie/ties/one/
live_has/set_tie were pub, scan was pub(crate), peek/tie_ends/live_in
were pub(super). That is growth, not design, and it priced every future
rename in life/ as a breaking change to a surface with no consumers.

Now Work is pub(crate); its methods are pub(crate) where cap, face or
query call them and pub(super) where only life does. live_pair moves to
pub(super) -- it had no caller outside life at all. Row, Tie, Cell and
their accessors are untouched: those are public types and stay public.

No behaviour change, so no debt change (88, visibility is not a
negentropy law). This is groundwork: the naming work that follows can
rename freely instead of asking each time.

Deliberately alone in this commit. A visibility change mixed into a
rename diff is exactly the shape that hid the pub-downgrade break during
the v0.5.0 split, so this one is reviewable on its own.

guard clean, 45 tests green.
PerishFire deleted branch work-surface 2026-07-21 05:18:41 +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
PerishLab/keel!94
No description provided.