From 8007c77e415130d9aab431e6b7199286bd3b7caf Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Fri, 24 Jul 2026 14:15:05 +0200 Subject: Preserve recordings with dated transcripts --- SPEC.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'SPEC.md') diff --git a/SPEC.md b/SPEC.md index d79ef59..2252541 100644 --- a/SPEC.md +++ b/SPEC.md @@ -51,7 +51,7 @@ The terminal-independent Python core now: - invokes `transcribe-cli` as a cancellable child process; - uses `parakeet-unified-en-0.6b-Q8_0.gguf` (approximately 698 MiB); - parses JSONL batch output; -- persists collision-safe UTF-8 transcript files atomically; and +- persists UTF-8 transcripts and their WAV recordings together; and - exposes the same core to the standalone terminal frontend and daemon. Development can use runtime assets from the sibling `transcribe-parakeet` checkout. Installed assets default to `~/.local/bin/transcribe-cli` and `~/.local/share/parley/models/`. The current runtime binary links to CUDA 13 and Intel MKL libraries. Packaging must declare those host dependencies or later supply a more portable build. @@ -212,8 +212,8 @@ Binary and model paths are configuration, not hard-coded repository assumptions. ### 6.3 Persistence -- Save every successful transcript before insertion. -- Use collision-safe names containing a local timestamp. +- Save every successful transcript and its WAV recording before insertion. +- Group recordings by local date and save each pair as `HH-MM-SS.txt` and `HH-MM-SS.wav`. - Store user data under an XDG-appropriate data directory by default; support a configurable transcript directory. - Write UTF-8 text with a final newline. - Keep `LastTranscript` and its path available over D-Bus. @@ -354,7 +354,7 @@ Secrets and portal restore tokens must not be exposed over D-Bus or written to l ## 11. Security and privacy - Audio and text remain local unless the user explicitly copies or pastes them into another service/application. -- Temporary audio is deleted after transcription, cancellation, or error unless a future diagnostic option explicitly retains it. +- Audio from successful transcriptions is retained beside its transcript. Temporary audio is deleted after cancellation or error. - The recording state must always be visibly indicated. - Do not log transcript contents by default. - Portal control is opt-in and revocable. @@ -440,7 +440,7 @@ Exit criterion: all daemon states and failures are represented without blocking - state-machine transitions and invalid calls; - cancellation and child-process cleanup; - JSONL parsing, including malformed/no-result/error rows; -- collision-safe transcript paths and atomic persistence; +- dated transcript and WAV pair persistence; - D-Bus methods, properties, signals, and typed errors; - insertion fallback selection; - configuration migration/defaults; -- cgit v1.3.1