feat(tray): add recent dictation snippets history menu 🤖🤖🤖 - #487
Open
LuigiKraken wants to merge 1 commit into
Open
feat(tray): add recent dictation snippets history menu 🤖🤖🤖#487LuigiKraken wants to merge 1 commit into
LuigiKraken wants to merge 1 commit into
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #487 +/- ##
==========================================
+ Coverage 84.72% 85.12% +0.39%
==========================================
Files 31 32 +1
Lines 5068 5231 +163
Branches 782 807 +25
==========================================
+ Hits 4294 4453 +159
- Misses 595 596 +1
- Partials 179 182 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Add a "Recent Snippets" submenu to the tray indicator that lists recent dictation sessions. Clicking a snippet copies its full text to the clipboard for easy re-pasting; a "Clear History" entry empties the list. Snippets are recorded on recognition, independent of whether text injection succeeds, so text can be recovered even when injection silently no-ops (e.g. on some Wayland compositors). One snippet corresponds to one dictation session (everything said between start and stop); voice commands are not recorded since they take a separate callback path. History is kept in memory only (newest-first, capped, never written to disk) and clears on quit — a deliberate privacy choice for a tool that sees everything dictated. Adds a "history" config section (enabled, max_items) and matching Settings UI under General. Includes unit tests for the new TranscriptionHistory store. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
LuigiKraken
force-pushed
the
feat/transcription-history
branch
from
July 1, 2026 09:44
b6daa43 to
cc46eac
Compare
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a Recent Snippets history menu to the system tray indicator. Each completed dictation session is kept as a snippet; clicking one copies its full text to the clipboard, and a Clear History entry empties the list. This makes it easy to re-paste something you just dictated, or recover earlier input if a paste went wrong.
Key behaviours:
historyconfig section (enabled,max_items) with a matching Settings → General → Transcription History group (toggle + count).Implementation notes:
vocalinux/ui/transcription_history.py: a small, thread-safe, bounded (deque(maxlen=...)) store with a change-callback. Recording happens on the recognition thread; the tray submenu is rebuilt on the GTK main thread viaGLib.idle_add.TrayIndicatorgains an optionaltranscription_history=parameter, so existing callers/tests that don't pass it keep working unchanged.Related Issue
N/A — no existing issue for this; happy to open one to track it if you'd prefer.
Type of Change
Checklist
tests/test_transcription_history.py, plus updatedtests/test_main.py)black,isort,flake8 --select=E9,F63,F7,F82)Screenshots (if applicable)
Additional Notes