"Queueing a command is pending, not success; the engine-reported time decides applied, clamped, or failed."
The Seek That Refuses to Be True or False
Ask a naive player "did the seek work?" and it answers true — it sent the command, didn't it? But a real seek has more outcomes than a boolean can hold. It might land right where you asked. It might land at the end because you asked past the duration. It might never confirm because the file stalled. It might outright fail. Squeezing all of that into true/false is how a player ends up claiming success while sitting at the wrong second.
Ashen Reel models a seek as a small state machine: it starts pending, and the engine's reported position moves it to exactly one honest outcome.
applied— the observed position is within tolerance of the target. Real success.clamped— the target was past the end, so it snapped to the duration. The UI shows both what you asked and what it did.timeout— the engine never confirmed a position in time. The requested time is kept; the app does not claim an exact open.failed— the seek errored. Visible, with the reason preserved.
Honest Exactness: One Frame or 80 Milliseconds
What counts as 'landed where you asked'? Not zero milliseconds — that's a fantasy the medium can't honor. Video is made of frames, and the smallest thing that exists on screen is one frame. So the tolerance is defined honestly as the larger of one decoded frame or 80 ms. 'Exact' means 'the correct frame,' not a sub-frame precision no format can represent. Defining success against the grain of the medium is what keeps the claim truthful.
The resolution logic is small, and every branch is a real thing that can happen:
Why the Machine Pays Off
Once seeks have named states, everything downstream gets honest for free. The overlay can say "seeking…" during pending and the real position after. Logs record clamped instead of a mysterious wrong number. Tests assert on applied versus timeout instead of guessing. And the Recall handoff — which lives or dies on landing at the right second — can finally tell the difference between "I'm at the moment you remembered" and "I tried and here's what actually happened."