Skip to content

fix(transcript): a transcript clock that leaves the screen names its zone (#447) - #462

Merged
Vortiago merged 3 commits into
mainfrom
exp/447-qwen
Oct 3, 2026
Merged

Vortiago merged 3 commits into
mainfrom
exp/447-qwen

Conversation

@Vortiago

Copy link
Copy Markdown
Owner

The merged transcript clock rendered in UTC on the server and in the viewer's zone in the browser. At UTC+2 the pane and the .txt download read 14:05:12, while session-transcript.txt and the summary read 12:05:12.

This change applies the rule in ADR-0026: a transcript line that leaves the screen names its zone.

  • session_merge._clock renders HH:MM:SS±HH:MM and keeps the instant's own offset. text.parse_iso keeps an explicit offset and reads a naive stamp as UTC.
  • formatters.fmtClockZ renders the same zoned clock in the browser under a pinned en-US locale, so the bytes are stable in every viewer locale. buildCopyText uses it, so the clipboard copy and the .txt download carry the zone.
  • The merged pane, the live feed and the recordings spans keep a bare HH:MM:SS in the viewer's zone.
  • CONTEXT.md defines "Zoned clock". Tests cover both renderers and the summarizer input.

Gate: pytest (without e2e), ruff check, ruff format, node tests, the three web checks and the frontend typecheck all pass.

Closes #447

model=koishi/qwen3.8-flash-next-mtp gate='python3 -m pytest tests --ignore=tests/e2e && ruff check tapscribe tests && ruff format --check tapscribe tests && node --test "tapscribe/web/js/**/*.test.js" && node tapscribe/web/tools/check-conventions.mjs && node tapscribe/web/tools/check-slots.mjs && node tapscribe/web/tools/check-css-vars.mjs && ( cd frontend && npm run typecheck )'
…zone (#447)

The server rendered the merged transcript clock in UTC and the browser in
the viewer's zone, so the summary and session-transcript.txt disagreed with
the pane and the .txt download by the viewer's offset.

Text artefacts (session-transcript.txt, the summarizer input, the clipboard
copy and the .txt download) now carry HH:MM:SS±HH:MM. The on-screen panes
keep a bare HH:MM:SS in the viewer's zone. ADR-0026 records the rule.

Closes #447
Vortiago added a commit that referenced this pull request Oct 3, 2026
PyAV 19.0.0 removes the `metadata_errors` argument that faster-whisper
1.2.1 passes to `av.open()`. Every transcribe then fails with
`TypeError: open() got an unexpected keyword argument
'metadata_errors'`.

CI shows it: both bridge E2E jobs on #462 fail in the transcribe stage
with av 19.0.0, and the last green `main` run installed av 18.1.0. This
PR adds `av<19` to the `whisper-cpu` extra. Remove the cap when a
faster-whisper release supports PyAV 19.
@Vortiago
Vortiago merged commit 1ab024f into main Oct 3, 2026
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The merged transcript's wall clock is UTC on the server and local in the browser

1 participant