Lecture video: beta test evidence

Upload an English lesson, confirm its narration settings, and follow generation through delivery. Usage is sent during processing.

SP-679 · 15 Oct 2026

Status as of 15 Oct 2026

Stage
PR #544 and checksum fix #572 are deployed to beta. The retry passed checksum confirmation but exposed a video-reservation race. Fix PR #573 is in CI and review.
PR
PR #544, merged at 4822512b.
Delivery fix
PR #572, streaming checksum reader.
Environment
Real beta LMS, existing Stock Market Course 1. These are live test captures, not mocked components.
Test account
Pixel Skill Developer, authorized instructor test.

Why this exists

English lessons need the correct narration language. Instructors can resolve language and timing choices before generation continues. Usage is recorded across failed and successful executions. The runner now sends each usage event in the background and retries from a local journal.

The flow

Upload

Choose the English script and slide deck.

→

Review

Confirm language and resolve timing conflicts when requested.

→

Generate

Create speech and render while usage is reported.

→

Check

Inspect the delivered video and reporting outcome.

Beta walkthrough

Silent recording of the real beta interface. Waiting between generation stages is shortened.

How the test was run

  1. Opened the existing Stock Market Course 1 in the real beta LMS as Pixel Skill Developer.
  2. Uploaded the authorized English XLSX and PPTX files and kept automatic language detection.
  3. Verified that AI selected English; switched the choice to UK English, restored US English and confirmed it.
  4. Observed speech generation and rendering. No timing conflict was raised for these files.
  5. Captured the delivery failure and diagnosed the backend streaming error. Did not retry against the known-broken backend.
Real beta LMS: the upload form includes automatic detection and manual narration choices.
Real beta LMS: the upload form includes automatic detection and manual narration choices.
The authorized English business-email script and PowerPoint deck are selected.
The authorized English business-email script and PowerPoint deck are selected.
AI detected English and selected US English. The instructor must confirm before speech generation.
AI detected English and selected US English. The instructor must confirm before speech generation.
The instructor can switch to UK English before confirming. This temporary selection was changed back to US English for the test.
The instructor can switch to UK English before confirming. This temporary selection was changed back to US English for the test.
After US English confirmation, the same job reaches the render stage.
After US English confirmation, the same job reaches the render stage.
Rendering finished, but artifact confirmation returned HTTP 500. Beta shows a retryable delivery failure, attempt 1 of 3.
Rendering finished, but artifact confirmation returned HTTP 500. Beta shows a retryable delivery failure, attempt 1 of 3.
After the checksum fix, the retry reached delivery but failed while the Bunny reservation was still in progress. US English remained selected. Attempt 2 of 3.
After the checksum fix, the retry reached delivery but failed while the Bunny reservation was still in progress. US English remained selected. Attempt 2 of 3.

Checks and evidence

CheckResultEvidence and scope
PR CI and Claude reviewPassedFinal PR #544 commit approved with zero actionable comments; required CI checks passed.
Post-merge database suitePassed2,448 tests passed before the beta deployment.
Runner and frontend testsPassed132 runner tests and 759 frontend tests passed locally; TypeScript and frontend build passed.
Beta upload and automatic detectionPassedThe backend accepted both files and returned detected language en and locale en-US.
Instructor overridePassedThe UK English option was selectable. US English was restored and persisted on confirmation.
Speech and renderPassedThe job reached delivery after rendering. The selected voice remained en-US-Chirp3-HD-Aoede.
Usage acknowledgmentsPassedBoth the language-review execution and failed delivery execution exited with zero pending events, zero rejected events and no pending outcome.
Video deliveryFailedartifact-confirm returned HTTP 500 because the installed streaming context returned a raw HTTP response. Fix PR #572 is merged; beta deployment and retry are pending.
Playback and new captionsNot verifiedBlocked by video delivery failure; the earlier video in this course is not used as proof.
Timing-conflict reviewNot exercisedThese files did not trigger a timing conflict. Automated timing coverage remains separate.
Checksum fix beta retryPassedArtifact confirmation returned HTTP 204 after PR #572 deployed.
Video reservationBlockedThe next target lookup returned HTTP 409 only 131 ms after confirmation. PR #573 adds a bounded wait.

What the reporting result means

Each provider call creates a stable event ID. The backend accepts identical repeats without adding cost again. A final pending count of zero means the runner received acknowledgments for its queued events. It does not independently prove that provider invoices match the database ledger.

Known limits

Decisions taken

DecisionChoice
Usage deliverySend each event directly in the background, one request at a time.
RecoveryKeep a local retry journal. No R2 usage backup.
ProtectionStable event IDs, execution authentication, 600 reporting requests per execution per minute and bounded storage.

Rollout

PR #544 and #572 are merged and deployed to beta. PR #573 fixes the reservation wait. CI and Claude review must pass before merge, deployment, and another beta retry. Production release remains separate.