Refactor recording metadata to JSON sidecar

Replaces the `.transcript.txt` sidecar with a structured `.json` file
for recording metadata. This change consolidates transcript text,
duration, and other potential metadata into a single, extensible JSON
object.

This also refactors the `TranscriptState` enum to better represent the
on-disk state (absence of file means pending) and the in-memory
representation. The `Transcript` enum now specifically models the
terminal outcomes of the transcriber (`Silent` or `Content`).

The commit includes updates to documentation, data structures, path
handling, and various tests to align with the new metadata format.
This commit is contained in:
2026-04-27 12:48:25 +02:00
parent a510c20e75
commit 66b3b7e4c8
20 changed files with 637 additions and 335 deletions
+2 -2
View File
@@ -164,8 +164,8 @@ try {
<div class="failed">Transkription fehlgeschlagen</div>
{% else %}
{% match rec.transcript %}
{% when TranscriptState::Content with (t) %}
<div class="transcript">{{ t }}</div>
{% when TranscriptState::Content with { text } %}
<div class="transcript">{{ text }}</div>
{% when TranscriptState::Silent %}
<div class="pending">(stille Aufnahme)</div>
{% when TranscriptState::Pending %}