kitlangton / kitlangton/Hex

[FEAT] Retry failed and cancelled transcriptions from history

Open
#216 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
2.9k
Forks
226
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**
Recordings that don't end in a successful transcription are silently discarded today. If I accidentally hit ESC, release the hotkey too early, or the model errors out mid-transcription, the audio is gone and I have to repeat myself. Wispr Flow keeps every recording in history with a retry button, which removes the cost of any misclick or model hiccup.

**Describe the solution you'd like**
Persist audio for non-successful runs and surface them in History with a retry action.

- Add a `status` field on `Transcript` (`completed` / `cancelled` / `failed`); treat missing as `.completed`.
- Keep the WAV on cancel/discard/error paths and write the entry with empty text.
- Show a Retry button on cancelled/failed rows; on success update the existing record in place.

**Describe alternatives you've considered**
- Keep audio only for `failed`, not `cancelled`: misses the main use case (accidental ESC). Less impact
- Undo toast with a short grace window: poor discoverability, doesn't help with errors that surface after the user has moved on. Less impact

**Additional context**
- Storage growth is the main concern — suggest gating on the existing min-duration check and reusing `maxHistoryEntries` pruning.
- "Save transcription history" toggle should gate this too, or get a sibling "Keep audio for cancelled/failed recordings".

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating Transcript persistence and the History row and retry flow, then trace cancellation, discard, and model-error paths. Check how the existing minimum-duration check, maxHistoryEntries pruning, and history toggle are applied. Done means cancelled and failed recordings remain retryable in History, while successful retries update the existing entry.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.