Commit graph

101 commits

Author SHA1 Message Date
CJ Pais
9b361f661b
fix first launch on macos (#690) 2026-02-01 11:16:13 +08:00
CJ Pais
b733ccc458
init attempt at new kb (#580)
* init attempt at new kb

* 0.1.1 handy-keys

* format

* cleanup

* support for capslock/shiftlock?

* move kb to experimental

* use hook

* fix macos bug

* attempt mouse buttons as well
2026-01-20 08:23:35 +08:00
CJ Pais
28d1d814b7
add experimental features to ui + reorg everything (#620) 2026-01-19 10:33:04 +08:00
ja
6522944886
feat(tray): add copy last transcript action (#598) 2026-01-18 10:33:50 +08:00
Andre Popovitch
e1c6007f71
Add permission step to onboarding (#545)
* Add permission step to onboarding

* translations

* minor ui

* Update AccessibilityOnboarding.tsx

* claude suggestions

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2026-01-14 09:53:49 +08:00
Viren Mohindra
d3a0281062
fix: prevent crash on macos 26.x beta during startup (#473)
defer apple intelligence availability check from app initialization
to when the user actually tries to use the feature. accessing
SystemLanguageModel.default during early app startup causes SIGABRT
on macOS 26.x (tahoe) beta.

- remove availability check from default_post_process_providers()
- always include apple intelligence provider on macos arm64
- add checkAppleIntelligenceAvailable command for lazy checking
- show error message if apple intelligence unavailable when selected
- clear error on any dropdown selection for better UX
2026-01-04 07:52:06 +08:00
Viren Mohindra
bfca46fcd6
feat: add tray menu localization using system locale (#446) 2025-12-18 04:14:32 -08:00
CJ Pais
7bd4a59107
Fix 'history limit' not saving to settings (#463)
* fix history limit not saving

* update the translations as well
2025-12-16 16:50:53 +07:00
CJ Pais
ffd38f4d89
stored settings for language, and also overlay is now transcribed (#465) 2025-12-16 11:01:23 +07:00
Viren Mohindra
b31a41ad2f
fix: prevent model auto-switch from interrupting active transcription (#443)
* fix: prevent model auto-switch from interrupting active transcription

when a model download completes during an active recording/transcription,
the app now skips auto-switching to prevent data loss.

adds is_recording tauri command to check recording state before
auto-switching models on download or extraction completion.

fixes #418

* Update bindings.ts

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-12 22:04:22 +07:00
CJ Pais
0cb88994f0
refactor enigo input (#441)
* refactor enigo input

* format
2025-12-12 16:33:49 +07:00
CJ Pais
d2a11ed53b
Refactor History SQLite (#412)
* yolo rewrite history with claude - needs review

* Update history.rs

* format
2025-12-09 21:17:34 +07:00
Chirag Agggarwal
bfecade869
Apple intel integration (#391)
* feat: add Apple Intelligence post-processing provider

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* feat: guide apple intelligence output

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix(build): add fallback stub for Apple Intelligence on older SDKs

- Checks if 'FoundationModels.framework' is present in the macOS SDK.
- If missing, compiles a stub Swift file that returns 'unavailable' errors instead of failing the build.
- Prevents build errors on older Xcode versions (or macOS versions < 26.0) where the macros are not supported.

* fix(ui): hide Apple Intelligence option when unavailable

- Checks for runtime availability of Apple Intelligence (via 'check_apple_intelligence_availability') in 'settings.rs'.
- Only adds the Apple Intelligence provider to the default settings if it is actually available on the device.
- Ensures the option does not appear in the UI for unsupported Macs (e.g., Intel or older macOS versions), even if the app was built with support enabled.

* move some files around as well as some ui text

* format

---------

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-09 21:04:24 +07:00
Danny Smith
246feda45d
Add option to append trailing space after pasted text (#405) 2025-12-05 17:37:33 +07:00
CJ Pais
39adf1b455
Switch to disable update checking (#362)
* codex thinks it did it

* run format

* properly disable on startup

* text
2025-11-28 10:17:13 +07:00
CJ Pais
9521ab9332
WIP: Add tauri-specta for generating TS bindings (#322)
* initial specta commands

* refactor to use the bindings in the ui

* merge fixes

* remove unused commands

* add clamshell to lib

* Remove Invoke from everything.

* fix settings not being loaded properly

* fix settings being overwritten due to deserialization failure + remove
provider kind

* fix model loading text bug
2025-11-27 17:07:22 +07:00
Danny Smith
5085485e67
Show recording overlay in macOS fullscreen apps, and when switching between spaces (#361)
* Gitignore `*.local.*`

Allows for local files like `CLAUDE.local.md` and `settings.local.json`

* Support macOS spaces and fullscreen apps
2025-11-20 10:28:15 +07:00
CJ Pais
4231cc0059 fix build on windows 2025-11-19 21:28:31 +07:00
johnpyp
9c4b1e1f5c
feat: SIGUSR2 handling for toggles (#354)
* feat: SIGUSR2 handling for toggles

* run format

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-19 09:45:46 +07:00
Jorge
97f3018be0
fix: update laptop detection logic to be more reliable (#348) 2025-11-18 20:43:35 +07:00
CJ Pais
18536aa81e
Add file based debug logging (#347)
* add basic logging to handy

* 100kb of logs

* add open button to the ui for logs

* use log everywhere

* some minor cleanup

* finish debug logging
2025-11-17 12:55:24 +07:00
Jorge
3b3ed5abc5
feat: add more options for deleting recordings automatically and added button to open the folder that holds the recordings (#330)
* feat: add more options for deleting recordings automatically and added button to open the folder that olds the recordings

- deleting automatically options: after certain time, never or preserving certain number of recordings
- new button "Open Recordings Folder" located on History page

* refactor: moved "Delete Recordings" selector to Debug settings

* refactor: simplify opening recordings folder logic by using tauri's opener plugin

* clean up ui and code a bit

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-17 10:41:05 +07:00
Jorge
45eec57226
feat: add fallback microphone for clamshell/desktop mode (#329)
* feat: add fallback microphone for clamshell/desktop mode

* refactor: moved "Closed Laptop Microphone" setting to Debug

* cleanup

* run format

* add check back

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-17 10:38:41 +07:00
Luis Eduardo
f7380fa69a
feat: LLM based post-processing (#222)
* Add LLM post-processing feature with settings management and UI integration

* Refactor LLM post-processing settings and prompt selection logic

* Rename CLAUDE.md to more standard AGENTS.md

* Replace Open Router with OpenAI Compatible endpoints for post-processing

* Fix post processing settings api styles

* refactor or something

* simplify

* cleanup a bit?

* remove useless code

* minor improvements

* fix laggy textarea

* Store post-processing results in db

* fix text color

* new default prompt

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-05 18:29:03 -08:00
CJ Pais
7b99da122a
Revert "feat: SIGUSR2 handling for toggles (#281)" (#296)
This reverts commit 8768ebad84.
2025-11-03 09:02:08 -08:00
johnpyp
8768ebad84
feat: SIGUSR2 handling for toggles (#281) 2025-11-03 09:01:27 -08:00
Maicon Moreira
7c04ee85a7
feat: add “mute while recording” setting (#257)
* feat: mute while recording

* refactor: move MuteWhileRecording from AdvancedSettings to DebugSettings
2025-10-28 17:49:33 -07:00
CJ Pais
db00ff240f
Add Setting to Copy to Clipboard (#220)
* update transcribe-rs

* add copy to clipboard feat
2025-10-17 16:25:35 -07:00
Jackson
93215dc097
A few optimizations on startup (#182)
* Use an optimal release profile... load managers & hotkeys first, add a
splash, simplify app handler

* removed splashscreen, hopefully app boots fast enough anyhow

* No need to load transcription model on start now that its loaded on
demand & cleanup

* Make an unloaded model status

* tiny modification to unloading

* update comment

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-17 16:05:43 -07:00
Jackson
a286fe5143
Add custom sound and control notif volume (#214)
* Add custom sound and control notif volume

* Modularize the picker and slider, consolidate the playback and loading

* Move custom sounds to advanced

* pairs of audio

* custom sound handling

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-16 09:08:27 -07:00
Gr3mIin
aed3a75d54
feat(settings): add autostart toggle in advanced settings (#177)
* feat(settings): add autostart toggle in advanced settings

Enable users to configure autostart behavior through a new toggle in the advanced settings UI. The backend now checks user preferences on startup to enable or disable autostart accordingly, with the setting persisted and manageable via a new Tauri command. This provides better control over app initialization without affecting existing functionality.

* immediate toggle effect?

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-09 10:47:51 -07:00
CJ Pais
18f32c7c8d simplify history slightly 2025-10-08 16:28:01 -07:00
becker
d0e6a17c17
Add history limit setting (#150)
* Add history limit setting

Dearest Reviewer,

I have added a history limit setting. The limit change is applied instantly.
If the limit is 0 then no recordings are saved.

Becker

* remove extra save

save happens on exit

* move to debug menu

* use the text color

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-08 13:01:09 -07:00
CJ Pais
1432bac30f
add support for changing paste method (#187)
* add support for changing paste method

* rename/refactor of methods
2025-10-08 12:32:04 -07:00
Han Pham
9185b3db08
feat: delete a single audio entry (#119)
* feat: delete a single audio entry

* fix(HistorySetting): remove unnecessary loading state
2025-09-19 12:30:50 -07:00
Dylan
b82b3b2f20
Added "Start Hidden" (#105)
* Added "Start Hidden"

* revert visible option in tauri conf

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-09-06 14:07:33 -07:00
CJ Pais
7638f6b827
basic working history (#104) 2025-09-05 16:25:38 -07:00
CJ Pais
ae5f640da5
Add VRAM Inactivity Timer (#101)
* init vram unload

* logging

* add immediate unloading

* thread fixes
2025-09-03 19:00:36 -07:00
CJ Pais
d7cc6ff55c add support for pink tray 2025-09-03 16:08:40 -07:00
CJ Pais
04b006d5b8 new default correction threshold + debug menu 2025-08-15 11:55:15 -07:00
CJ Pais
c2b3815f56 'custom words' everywhere instead of 'correct words' 2025-08-11 15:19:48 -07:00
Vlad Gerasimov
003bf23402 feat(transcription): add word correction with phonetic matching 2025-08-08 17:50:31 +04:00
CJ Pais
c0fc1ba817 some cleanup 2025-08-07 16:53:07 -07:00
Vlad Gerasimov
091b392aa6 feat(overlay): replace show_overlay toggle with position selector 2025-08-06 07:52:09 +04:00
CJ Pais
98eb336ab0 disallow invalid bindings from frontend 2025-08-02 18:43:59 -07:00
CJ Pais
86a1205619 add partial/resumable download capability 2025-08-02 18:25:30 -07:00
CJ Pais
0fa1f37474 change the icon relative to the theme 2025-08-02 12:04:36 -07:00
CJ Pais
58c3d40713 add dark assets for test 2025-08-02 11:19:42 -07:00
CJ Pais
10b3058359 only allow a single instance of handy to run 2025-08-02 10:13:51 -07:00
CJ Pais
1ce954d02f add a very simple debug mode toggle 2025-08-01 18:16:51 -07:00