How close to the end of a lesson counts as having finished it, expressed
two ways. The finish threshold is whichever of the two comes first:
SECONDS_FROM_END — a fixed tail. Right for long lessons, where a
percentage would leave minutes of outro standing between the learner and
their check mark.
FINISHED_FRACTION — a share of the runtime. Right for short clips,
where a fixed tail would be a quarter of the whole thing.
These thresholds are deliberately earlier than the resume rule's
SECONDS_NEAR_END: "is this done?" and "is it worth offering to resume?"
are different questions, and a narrow band answers yes to both. That is
coherent — completing a lesson is not a claim that nothing is left to
rewatch. Do not collapse the two constants into agreement.
See openspec/changes/show-watch-progress/design.md §D2.
How close to the end of a lesson counts as having finished it, expressed two ways. The finish threshold is whichever of the two comes first:
SECONDS_FROM_END— a fixed tail. Right for long lessons, where a percentage would leave minutes of outro standing between the learner and their check mark.FINISHED_FRACTION— a share of the runtime. Right for short clips, where a fixed tail would be a quarter of the whole thing.These thresholds are deliberately earlier than the resume rule's
SECONDS_NEAR_END: "is this done?" and "is it worth offering to resume?" are different questions, and a narrow band answers yes to both. That is coherent — completing a lesson is not a claim that nothing is left to rewatch. Do not collapse the two constants into agreement.See
openspec/changes/show-watch-progress/design.md§D2.