File-tree-owned watcher intent and cleanup lineage.
Candidates are retained until the latest exact synchronization succeeds. Failed, canceled, and stale work can therefore be recovered by the next exact request without relying on an effect queue's bounded history.
Summary
Functions
Records cleanup of all known roots with no replacement target.
Correlates the latest admitted watcher request with its exact target.
Finishes a failed or canceled exact request without dropping cleanup lineage.
Records a desired tree while retaining every known cleanup root.
Consumes only the current watcher retry timer.
Terminalizes retry correlation while preserving the failed attempt count.
Correlates one bounded retry while retaining the current watcher intent.
Collapses ownership only after the latest exact request succeeds.
Types
@type t() :: %MingaEditor.State.FileTree.Watchers{ candidates: MapSet.t(String.t()), expanded_dirs: MapSet.t(String.t()), generation: non_neg_integer(), request: request() | nil, retry_attempt: non_neg_integer(), retry_token: reference() | nil, target: String.t() | nil }
Functions
Records cleanup of all known roots with no replacement target.
Correlates the latest admitted watcher request with its exact target.
Finishes a failed or canceled exact request without dropping cleanup lineage.
@spec retarget(t(), [String.t()], Minga.Project.FileTree.t()) :: t()
Records a desired tree while retaining every known cleanup root.
Consumes only the current watcher retry timer.
Terminalizes retry correlation while preserving the failed attempt count.
@spec retry_scheduled(t(), reference()) :: {pos_integer(), t()}
Correlates one bounded retry while retaining the current watcher intent.
Collapses ownership only after the latest exact request succeeds.