StepLagTracker class

THE STEP-LAG TRACKER — stepLag's escalation arithmetic, step-shaped.

Tracks each lagging (session, node) across comparator passes and answers one question per pass: has this entry earned its divergence? The rule is kStepLagGrace across at least TWO passes, so a normal transition's transit through the bead-first/append-later window can never trigger anything — the same shape TerminalLagTracker has on the session axis, minus the heal (the step axis has none).

It owns no clock: the caller supplies now, which is a fact about the world a pure tracker cannot have.

Constructors

StepLagTracker({Duration grace = kStepLagGrace})

Properties

grace Duration
final
hashCode int
The hash code for this object.
no setterinherited
openEntries int
The nodes currently lagging.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

ageOf(String sessionId, String stepPath, DateTime now) Duration
The age of one node's lag at now — zero for a node not tracked.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
observe(String sessionId, String stepPath, {required DateTime now}) bool
Observes one lagging node at now; returns true exactly ONCE, on the pass where the entry earns its escalation.
retainOnly(Set<String> seen) → void
Drops every entry not observed in the pass that just ran — a node that stopped lagging healed on its own, which is what the window does.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

keyFor(String sessionId, String stepPath) String
The tracker's key for one node — session id and step path, because the same path under two sessions is two independent lags.