[Backend] Mark sessions recorded before the timeline fix as unreliable #328
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: MEDIUM. Found in the August 2026 session lifecycle review (#319).
Why
Nine sessions were recorded and processed under the broken capture clock. Their audio has already been reaped, so they cannot be repaired — a re-merge would need per-track data that no longer exists, and re-processing has nothing correct to re-process.
Leaving them unannotated is the problem. Their summaries have already fed the lore pipeline into campaign canon, so a GM reading back through the wiki has no way to know which entries came from a scrambled source. This is a data-provenance issue, not a cosmetic one.
Proposed fix
Add a nullable marker to the session record — a
transcript_reliabilityenum, or simply a booleanpre_timeline_fixset by a one-shot migration for every session whosetranscript_updated_atpredates the capture fix deploy.Surface it as a small, non-alarming badge on
SessionDetailnext to the summary and transcript, with hover text explaining that this session was recorded before a known timeline defect was fixed and that its event ordering and speaker attribution may be unreliable. Carry the same marker onto any wiki entry whose originating session is flagged, so provenance survives into the lore layer.Do not hide or delete the content. The summaries are still substantially useful — the events happened, only the order and some attributions are wrong — and the GM has already hand-corrected at least one of them.
Acceptance criteria
SessionDetailshows an explained badge on affected sessionsShipped — closing as part of a v3.11.5 bookkeeping sweep.
Migration
f1a2b3c4d5e7("session pre_timeline_fix marker (#328)") adds a boolean NOT NULL DEFAULT false onsessions, backfilled true for every session that already had a transcript. Surfaced throughapp/models/session.py:179andapp/schemas/session.py:161, both explaining that such a session's event ordering and speaker attribution are unreliable.The migration's own note is the part worth preserving: those recordings cannot be repaired — the source audio is gone — so the marker is provenance, not a to-do. And the backfill needs no date comparison because the fix ships in the same release.
That framing turned out to matter more than expected. When v4.0.0 rewrote transcription, extraction, validation and composition, this marker is what distinguishes a session whose attribution can be trusted from one whose cannot, without anyone having to remember which release a recording predates.