Low findings of the PR #62 re-review: the WithTimeout test's comment claimed cancellation
travels on the context but only the language was asserted (the WithoutCancel mutant survived),
and PlanFor('') and PlanFor(unknown) were untested.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The label moves from the done fragment to the page header, so queued, transcribing and
failed recordings show it too. The scenario no longer implies a general engine exists. Found
by the PR #62 review.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
PlanFor(lang) on the Ensemble and a LanguagePlanner the worker prefers: the page lists
the other engine (and the fallback if configured), not the base engine, the comparison and
the decisions as coming. Found by the PR #62 review.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Found by the PR #62 review: the message could be replaced with 'x' and the test stayed green.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The wrapper sits in front of both local engines; a fresh context there would send an auto
upload as language=sv and un-cancel the job, and no test noticed. Found by the PR #62 review.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The read is capped at 17 bytes and no valid language is longer than 4, so the parse
refuses anything the length check would; the mutant that removed it survived.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Form field (Swedish preselected, Other = auto) read before the file part and refused
before anything is spooled if outside the closed set; stored on the row (migration 021,
CHECK constraint, default sv for history); carried on the Job and the worker's context;
shown on the status page. Feature scenarios and the coverage map are updated, and
ADR-033/034 amended.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The other engine transcribes alone, then the cloud fallback if it fails and the job is
still live. A cancelled job never reaches the fallback (mutation-checked).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The request used to hard-code language=sv for every upload, so a recording in another
language was decoded as Swedish. The language now comes from the context; no language in
the context is still sv.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
sv and auto; an empty form value is sv, anything else is refused. LanguageFrom defaults to
sv so a caller that sets nothing behaves as before.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>