Edit a declared-editable field against the held content (commits via the
engine): reassign / reschedule / claim-by-hand / append-to-log. The
editable fields and each one's edit verdict are on
WorkflowSession.evaluation's editableFields.
Caveat for inline-field UIs: each call is a discrete commit (a history
entry, a guard refresh, a cascade that can move the instance, all under an
ifRevisionId write), not a draft patch. Bind it to a deliberate
boundary, never an onChange per keystroke: pickers (actor / date /
boolean) fire one discrete change and are fine on change; free-text
(string / note body) must debounce or confirm (blur / Enter / Save), or
every keystroke writes history and races the revision check.
Set when any observer stream feeding the session failed. The session is not ready until that stream recovers.
The latest successful evaluation; undefined until the first one resolves.
Updates as watched documents and guards change and after each settled
tick, fireAction, or editField, without waiting for a store echo.
A later failure retains this value; check
WorkflowSession.evaluationError before treating it as current.
Resets to undefined when the instance ID changes.
The last evaluation failure, distinct from an evaluation still loading. Clears after a successful evaluation or when the instance ID changes. Does not change WorkflowSession.ready.
Fire an activity action against the held content (commits via the engine).
The instance's live mutation guards: undefined until the first
read resolves, then the resolved list (possibly empty), updating
as guards are deployed on stage entry and deleted on exit. Through a
guardScope-only resubscription the last-resolved list is held while
the replacement query loads, so consolidation churn never reads as
guard loss. Also fed into
WorkflowSession.evaluation: a guard that denies the
instance write flips action verdicts to mutation-guard-denied
(advisory, from the engine's optimistic evaluation). undefined is not
only "loading": a guard stream that resolved invalid also reads
undefined here — check WorkflowSession.invalid and
WorkflowSession.error before rendering a spinner.
Set when an engine-owned doc feeding this session failed read
validation — the instance doc or a guard, from the first observation or
a later live emission (InvalidDoc says which doc and why).
Explicit state, not a throw: render the remediation (upgrade the engine
for model-ahead; investigate the doc for shape-violation) instead
of evaluating against a document the engine would misread. Clears by
itself when a subsequent emission validates.
Stage an optimistic preview of a field edit — the per-keystroke half of inline editing. The next WorkflowSession.evaluation projects against the held instance with previews applied (values + the advisory verdicts derived from them move instantly); stage, activity statuses, and history stay committed by construction. Never persisted: commit the value at a deliberate boundary (blur / Enter / gesture) via WorkflowSession.editField, which drops the target's previews when it settles (success lands the reloaded value, failure reverts).
True once the session exists, every watched doc has synced, and the guard
stream has resolved — so the first evaluation already has the guards in
hand and an action rendered allowed cannot flip to
mutation-guard-denied just because guards landed late. Stays true
through a guardScope-only resubscription (the last-resolved guard
list is held while the replacement query loads; consolidation churn is
not a data event). Never true while WorkflowSession.invalid is
set.
Advance the instance against the held content (commits via the engine).
Drop staged previews for one target (or all), reverting the projection to committed state on the next evaluation.