pub struct ScopeIntent {
pub target: Option<Vec<String>>,
pub drop: Vec<String>,
pub held: BTreeMap<String, BaselineEntry>,
}Expand description
A rescope in flight (scoped-read design §4.3). target is the scope
the workspace is moving TO; None means the whole tree.
Fields§
§target: Option<Vec<String>>§drop: Vec<String>The paths this rescope is removing from the held set, recorded BEFORE the first mutation.
Load-bearing, and the mutation check that found it: replay
cannot RE-DERIVE this set. Once a path is out of
baseline.entries it is indistinguishable from a file the agent
just created — same scan row, same absence from the baseline —
and the two have opposite correct answers: unlink the leftover,
KEEP the agent’s new file. Deriving the drop set from the
baseline made a crash between the uncite and the unlink leave
six uncited files on disk forever; deriving it from the tree
would delete the agent’s work instead.
held: BTreeMap<String, BaselineEntry>What the uncite dropped, per path, recorded BEFORE the uncite (and
kept across a replay, which can no longer read it off the
baseline). The unlink takes a file only while its bytes are still
these: the agent may write a dropped path between the uncite and
the unlink — a crash leaves that window open until the next
barrier — and once uncited, its write and the leftover read alike
(the model’s LeanP1UnlinkBlind, 2026-10-02).