Refactor transcript file handling to use JSON metadata

This commit changes the way transcriptions are stored and accessed.
Instead of using plain text files (`.transcript.txt`), transcriptions
will now be part of a JSON metadata file (`<stem>.json`). This allows
for richer metadata to be stored alongside the transcript, such as
duration, and provides a more robust mechanism for tracking
transcription states.

The changes include:
- Updating documentation and code to reflect the new `.json` file
  extension.
- Modifying file handling logic to read and write JSON metadata.
- Adjusting tests to accommodate the new file format.
This commit is contained in:
2026-04-27 13:08:36 +02:00
parent 66b3b7e4c8
commit c15590f3e0
10 changed files with 78 additions and 46 deletions
+5 -5
View File
@@ -2,11 +2,11 @@
//! (whisper classified as silence) must produce an `OnelinerState::Empty`
//! automatically, so the UI doesn't stick on "Generating" forever.
//!
//! The historical bug path: whisper wrote a 0-byte `.transcript.txt`,
//! `update_oneliner` saw no content and returned early without persisting
//! any state, and the UI's `compute_oneliner_display` collapsed the
//! Silent file onto "transcribed → Generating" (missing state). The fix
//! makes `update_oneliner` settle the case to `OnelinerState::Empty`
//! The historical bug path: whisper wrote a sidecar marking the recording
//! as silent, `update_oneliner` saw no content and returned early without
//! persisting any state, and the UI's `compute_oneliner_display` collapsed
//! the Silent state onto "transcribed → Generating" (missing state). The
//! fix makes `update_oneliner` settle the case to `OnelinerState::Empty`
//! when no content transcript exists and no recording is still Pending.
mod common;