Lecture video review
Review timing approval, failed-job retry, and caption status in the full LMS.
Status as of 10 Oct 2026
- Stage
- Debt fixes are pushed for review. They have not been deployed to beta or production.
- PR
- PR #544 is open. Its pushed revision 6bce3e4a includes these debt fixes and the current main branch.
- Ticket
- SP-679
- Evidence
- Eight screenshots from the real frontend with mock API responses and demo authentication. Names and numbers are demo data. No walkthrough video was recorded.
Why this exists
Instructors need to resolve script timing conflicts before audio generation. Failed videos should offer a clear retry action. Caption failures should remain visible while the video stays available.
What changed
Review timing
The job pauses before speech generation when authored durations conflict.
Choose explicitly
Approve narration timing or upload corrected files.
Retry a failed job
Reuse retained inputs and show the attempt limit.
Read caption status
See attached, pending, and failed captions separately from video status.
How to review the screens
Open an image for full size. Desktop captures are 1440 pixels wide. Mobile captures are 360 pixels wide.
Review the conflict

Approve narration timing

Review a failed job

Queue the retry

Read caption states

Review timing on mobile

Review retry on mobile

Read captions on mobile

Checks and limits
- All eight viewport checks passed. No horizontal page scroll was detected.
- Timing approval and same-job retry requests were checked against the mock API.
- Frontend: 703 tests and the production build passed.
- Backend: 2,252 unit tests passed. Runner: 103 tests and typecheck passed.
- All 38 focused database checks passed after syncing main. The migration upgrade, downgrade, and upgrade passed on an isolated database.
- The 9 Oct full database run had one unrelated tenant-bootstrap failure: its test database lacks the tenant-domain table. The same failure reproduces independently.
This evidence does not verify beta, real speech generation, R2 recovery, live Bunny playback, or caption synchronization. Those checks remain open. Audio approval, required custom visuals, learner interactions, retention, and a shared render limit still need decisions.
Decisions taken
| Question | Decision |
|---|---|
| Conflicting authored durations | Pause and ask the instructor. Never approve automatically. |
| Caption failure | Keep the delivered video available and show the caption outcome. |
| Failed-job retry | Reuse retained inputs and enforce the stored attempt limit. |
Before beta verification
- Review and commit the local debt fixes.
- Deploy the runner before the backend so new claims provide execution tokens. No new migration was added in this debt batch.
- Configure the timeout-maintenance scheduler and agree artifact retention.
- Test interrupted upload recovery and caption on/off, seeking, and synchronization on beta.