What should the engine do?
Add a same-generation positive claim about retained subtitle determination — either
- a field on the existing
[SubtitleResolution] line (e.g. retainedFrom=) reporting an upper bound on the session store's contiguous determined-from point after the store and the post-seek drainer have been reconciled — i.e. a value that may legitimately stay ≤ 0 across a seek when the store genuinely retains the from-start run; or
- an equivalent first-successor proof: a fenced statement that the earliest undecoded display set at-or-after the covered floor sits at PTS X (for our fixture, 88.380), with the floor itself reported.
Either form would ride the same emit-on-transition philosophy the statement already follows (a line when the reconciled floor changes, plus the existing tick). The fence semantics you shipped in #250 (stamped post-reposition, requesting generation) are exactly right as-is — this is purely an additional claim, not a change to coveredFrom. For our gate's purposes, renaming or clamping coveredFrom, or inferring from packet-store lifetime, wouldn't help: the emitted statement itself has to carry the claim.
Motivating media or use case
The #250 subtitle-resolution statement has been running in our combined seek-stopwatch harness since 6.0.2, and one truth class turns out to be structurally unprovable from the current fields: "empty because nothing was ever authored before this point."
On a PGS track whose first display set sits at 88.380 s, a seek to 30 s renders (correctly) nothing. To adjudicate that as determined emptiness rather than a dead pipeline, our gate needs coverage reaching back to track start — the earliest point that could change the answer. The statement's coveredFrom reports the post-reset drain window (≈ target − 15 after any far seek), and per your close it is an unclamped upper bound on where the contiguous decoded run begins — so a post-seek value of ~15 can neither affirm nor refute track-start coverage. The pre-seek line (coveredFrom=-15.00 at load) does carry the needed bound, but under the previous seekGen — and cross-generation combination is exactly what the fence exists to forbid.
Net: the state is rendered correctly, the pipeline is live (fenced via=prefetch lines resolve through the evaluated time), and the claim we need is one the statement cannot currently make. Our adjudicator has to score the target "apparatus-inexpressible" rather than pass or fail it.
Area
Other
Host app / integration context
(tvOS Jellyfin client) — external QA/conformance harness, same integration as #240/#250. tvOS 26.5, Apple TV 4K 3rd gen, wired.
Would you be willing to open a PR?
Maybe, with guidance
What should the engine do?
Add a same-generation positive claim about retained subtitle determination — either
[SubtitleResolution]line (e.g.retainedFrom=) reporting an upper bound on the session store's contiguous determined-from point after the store and the post-seek drainer have been reconciled — i.e. a value that may legitimately stay ≤ 0 across a seek when the store genuinely retains the from-start run; orEither form would ride the same emit-on-transition philosophy the statement already follows (a line when the reconciled floor changes, plus the existing tick). The fence semantics you shipped in #250 (stamped post-reposition, requesting generation) are exactly right as-is — this is purely an additional claim, not a change to
coveredFrom. For our gate's purposes, renaming or clampingcoveredFrom, or inferring from packet-store lifetime, wouldn't help: the emitted statement itself has to carry the claim.Motivating media or use case
The #250
subtitle-resolutionstatement has been running in our combined seek-stopwatch harness since 6.0.2, and one truth class turns out to be structurally unprovable from the current fields: "empty because nothing was ever authored before this point."On a PGS track whose first display set sits at 88.380 s, a seek to 30 s renders (correctly) nothing. To adjudicate that as determined emptiness rather than a dead pipeline, our gate needs coverage reaching back to track start — the earliest point that could change the answer. The statement's
coveredFromreports the post-reset drain window (≈target − 15after any far seek), and per your close it is an unclamped upper bound on where the contiguous decoded run begins — so a post-seek value of ~15 can neither affirm nor refute track-start coverage. The pre-seek line (coveredFrom=-15.00at load) does carry the needed bound, but under the previousseekGen— and cross-generation combination is exactly what the fence exists to forbid.Net: the state is rendered correctly, the pipeline is live (fenced
via=prefetchlines resolve through the evaluated time), and the claim we need is one the statement cannot currently make. Our adjudicator has to score the target "apparatus-inexpressible" rather than pass or fail it.Area
Other
Host app / integration context
(tvOS Jellyfin client) — external QA/conformance harness, same integration as #240/#250. tvOS 26.5, Apple TV 4K 3rd gen, wired.
Would you be willing to open a PR?
Maybe, with guidance