126 Commits
Author SHA1 Message Date
thread 4426af63cb LLMIFY THIS MOFO
CI / Test (push) Successful in 44s
2026-09-01 01:49:40 -04:00
Guillaume G/ Moigneu b0fbe012a1 fix: sanitize line-terminating characters during injection to prevent unintended form submissions 2026-02-23 17:43:00 -06:00
burakgizliceandClaude Opus 4.6 13217f52f8 fix: detect stale PID files from recycled PIDs
The daemon startup check only used kill -0 to verify if the PID from
the PID file was alive. If the OS recycled that PID for an unrelated
process, hyprvoice would refuse to start with "daemon already running"
even though no hyprvoice instance was running.

Now also reads /proc/<pid>/cmdline to verify the process is actually
hyprvoice before treating it as a running daemon. If it's a different
process, the PID file is treated as stale and removed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 09:50:55 +03:00
Leonardo Trapani befe032838 Merge branch 'main' into fix/ydotool-socket-type 2026-02-15 16:52:25 +01:00
burakgizlice 295bd0f9f9 fix: remove frame-stealing read from pipeline loop
The pipeline's main select loop was reading from frameCh alongside the
SimpleTranscriber's collectAudio goroutine. Since Go channels deliver
each value to exactly one reader, the pipeline was randomly consuming
~50% of audio frames and discarding them, causing the transcriber to
receive fragmented audio and produce incomplete transcriptions.

Remove the `case <-frameCh:` from the pipeline loop so all frames are
exclusively consumed by the transcriber.
2026-02-14 00:23:52 +03:00
burakgizlice b694e58d90 fix: add timeout to unixgram dial
Use net.Dialer with a 500ms timeout for the unixgram dial to guard
against edge cases, as suggested in review.
2026-02-14 00:16:30 +03:00
burakgizlice 4a5d60095a fix: use SOCK_DGRAM for ydotoold socket (v1.0.4+)
ydotoold v1.0.4+ uses SOCK_DGRAM (unixgram) Unix sockets instead of
SOCK_STREAM. The availability check was using net.DialTimeout("unix", ...)
which only supports stream sockets, causing a "protocol wrong type for
socket" error on systems with newer ydotool versions.

Try unixgram first, then fall back to stream for older versions.
2026-02-13 23:45:43 +03:00
Leonardo Trapaniandgreptile-apps[bot] e63ae179a6 fix: spelling
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-02 16:16:13 +01:00
leonardotrapani a9986b3da1 feat: improve onboarding by removing notifications, improving ux in configure 2026-02-02 11:41:33 +01:00
leonardotrapani 35f6c1d818 fix: onboarding back button 2026-02-02 11:36:19 +01:00
leonardotrapani 0b06883bc2 feat: proper reccomendation for llm processing 2026-02-02 11:28:50 +01:00
leonardotrapani 76b9f08a4d gracefully handle legacy config: notify instead of crashing 2026-02-02 11:24:56 +01:00
leonardotrapani 0981317aa2 fix transcriber tests for strict language validation 2026-02-02 10:54:27 +01:00
leonardotrapani b0bb41707d error on unsupported language instead of silent fallback 2026-02-02 10:33:50 +01:00
leonardotrapani b82cd77bc2 remove configured/not configured status from voice provider descriptions 2026-02-02 10:12:01 +01:00
leonardotrapani 195f9f5115 feat: models test and fixes 2026-02-02 01:13:33 +01:00
leonardotrapani 2729882b9d feat: remove legacy configuration 2026-02-01 23:09:33 +01:00
leonardotrapani 500b84caec fix: tests in ci 2026-02-01 22:34:44 +01:00
leonardotrapani 305f64a73d feat: new readme 2026-02-01 22:04:42 +01:00
leonardotrapani 0b0e084155 feat: use new ui bubbletea 2026-02-01 20:40:17 +01:00
leonardotrapani 3ae86f7bae feat: better language selection 2026-02-01 18:53:44 +01:00
leonardotrapani 0025bf97b6 feat: fanalize straeming adapters 2026-02-01 17:53:48 +01:00
leonardotrapani 8df3021a9d feat: refactor 2026-02-01 17:24:43 +01:00
leonardotrapani 13b1de4e04 add migration for transcription.language to general.language 2026-02-01 13:44:12 +01:00
leonardotrapani 0f700f935f validate general.language in config and use effective language for model compatibility 2026-02-01 13:36:49 +01:00
leonardotrapani 170ac22e3c improve language-model compatibility error messages with docs URL 2026-02-01 13:34:50 +01:00
leonardotrapani 811ca71c08 add DocsURL field to Model struct for language support documentation 2026-02-01 13:31:53 +01:00
leonardotrapani 55257db725 add batch/streaming section headers to model picker 2026-02-01 13:28:09 +01:00
leonardotrapani 7eee771876 enable streaming models in TUI model picker 2026-02-01 13:25:03 +01:00
leonardotrapani 87e4e27c3b tui: remove language from transcription edit flow, use Language menu 2026-02-01 13:23:16 +01:00
leonardotrapani cc8c0c8a11 implement editLanguage function in TUI with model compatibility warning 2026-02-01 13:21:10 +01:00
leonardotrapani e005184303 add language menu item to tui configuration 2026-02-01 13:19:21 +01:00
leonardotrapani 1f6fce6941 move language to general section in config template 2026-02-01 13:17:39 +01:00
leonardotrapani 7a3e590977 add effective language resolution for general.language support 2026-02-01 13:16:24 +01:00
leonardotrapani da8a1e5b0e add GeneralConfig with Language field to config types 2026-02-01 13:14:41 +01:00
leonardotrapani a105c8c5a8 add runtime language-model compatibility check with fallback to auto-detect 2026-02-01 02:09:37 +01:00
leonardotrapani 700f7fb633 refactor config validation to use provider registry
- use provider.GetProvider() for provider validation
- use provider.GetModel() for model validation
- use p.RequiresAPIKey() for API key checks
- warn for unrecognized language codes (don't error)
- add ValidateModelLanguageCompatibility for model-language checks
- remove hardcoded isValidLanguageCode function
2026-02-01 02:07:09 +01:00
leonardotrapani 1865de74ef add deepgram api key env var and config support 2026-02-01 02:00:17 +01:00
leonardotrapani 319a0ef8e2 wire streaming adapters into transcriber factory 2026-02-01 01:58:23 +01:00
leonardotrapani d694a39ceb add openai realtime streaming adapter with reconnection logic 2026-02-01 01:55:36 +01:00
leonardotrapani 917eeed978 add gpt-4o-realtime-preview model to openai provider 2026-02-01 01:51:00 +01:00
leonardotrapani e9499b0d6b add deepgram streaming adapter with reconnection logic 2026-02-01 01:47:12 +01:00
leonardotrapani 5f614b19c5 add deepgram provider with nova-3 and nova-2 streaming models 2026-02-01 01:43:50 +01:00
leonardotrapani 29ea33bc9d add reconnection logic to elevenlabs streaming adapter 2026-02-01 01:41:37 +01:00
leonardotrapani eb0f16b583 add elevenlabs streaming adapter with websocket support 2026-02-01 01:37:03 +01:00
leonardotrapani 3c7bfbeaab add TUI validation for language-model compatibility on save 2026-02-01 01:33:59 +01:00
leonardotrapani 3af88e30c9 add language picker dropdown to TUI with filtering and model compatibility warnings 2026-02-01 01:32:02 +01:00
leonardotrapani 973643a698 add whisper-cpp to TUI with dependency check and model download 2026-02-01 01:29:12 +01:00
leonardotrapani 575b55b524 refactor tui to use model metadata for descriptions
- getTranscriptionModelOptions now uses provider.ModelsOfType() instead of hardcoded switch
- getLLMModelOptions now uses provider.ModelsOfType() instead of hardcoded switch
- added currentLang param to show language compatibility warnings on models
- buildModelLabel adds [size] for local models, [streaming] for streaming
- mapConfigProviderToRegistry maps config names to registry names
2026-02-01 01:26:02 +01:00
leonardotrapani a760198a73 config: add threads auto-detection and whisper-cpp validation 2026-02-01 01:16:46 +01:00