Commit graph

441 commits

Author SHA1 Message Date
CJ Pais
13cae47ff4 Merge branch 'main' of github.com:cjpais/Handy 2025-12-29 12:29:20 +07:00
CJ Pais
26c4f6c53f try pr test build? 2025-12-29 12:28:35 +07:00
Viren Mohindra
e0b72f5f77
fix: unload model on cancel when immediate unload enabled (#498)
* fix: unload model on cancel when immediate unload enabled

adds model unload check to cancel_current_operation() to match
the behavior in transcribe(). previously, cancelling with escape
would leave the model loaded even with "unload immediately" enabled.

fixes #479

* also fix model not unloading if there is empty transcription

* refactor to util function

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-29 10:59:54 +07:00
Dmitry Gordin
5c5e428e06
fix: replace async-openai library with post request (#480)
* fix: replace async-openai library with post request to support custom providers

* move models call to llm_client too

* tweak post processing ui and add groq and cerebras

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-27 11:21:27 +07:00
Скляров Артем
b55c3fddde
Add Russian language (#474)
* Add Russian language

* Add Russian language

* Clean up hidden Unicode characters in Russian translation

* add languages.ts

* add some missing translations

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-27 10:11:24 +07:00
CJ Pais
d06d318a66 Release v0.6.9 2025-12-23 17:44:01 +07:00
CJ Pais
be1141cd50 description must be human written in PR 2025-12-23 09:17:02 +07:00
CJ Pais
e3aabdd916 fix type errors 2025-12-19 11:53:10 +07:00
Danny Smith
3f401d933a
Prevent possible deadlocks when pressing Escape to cancel recordings (#408)
* PRevent possible deadlocks when pressing Escape to cancel recordings

* same for sigusr2

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-18 21:28:10 +07:00
Viren Mohindra
0a7a1a0aa5
feat: add (Dev) indicator to tray menu version in debug builds (#470) 2025-12-18 04:15:29 -08:00
Viren Mohindra
bfca46fcd6
feat: add tray menu localization using system locale (#446) 2025-12-18 04:14:32 -08:00
CJ Pais
b3dd5a8c8e add better contribution guidelines + pr template 2025-12-17 10:03:59 +07: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
CJ Pais
57629f1374
suggestions from sem (#464) 2025-12-16 10:33:25 +07:00
giuliofoletto
f962054800
Add Italian translation (#459) 2025-12-16 10:29:33 +07:00
Rayearth
5b777dd572
Add Polish translation (#453)
* Polish language added to language list

* Polish translation added

* Corrected language code for Polish
2025-12-15 10:59:07 +07:00
CJ Pais
fdea7e13b2 fix build 2025-12-12 22:23:34 +07:00
CJ Pais
add9544d86 release v0.6.8 2025-12-12 22:15:00 +07:00
CJ Pais
58ac2fb4f3
Update build.rs (#447) 2025-12-12 22:14:17 +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
Viren Mohindra
5f7ffe162b
feat: add german, japanese, and chinese translations (#444)
* feat: add german, japanese, and chinese translations

adds complete translations for:
- german (de)
- japanese (ja)
- chinese simplified (zh)

builds on the internationalization foundation added in #437.
updates CONTRIBUTING_TRANSLATIONS.md to reflect supported languages.

* fix: escape Chinese quotation marks in zh translation

* cleanup

* remove extra keys for now

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-12 21:54:23 +07:00
CJ Pais
8ac98b33bb release v0.6.7 2025-12-12 16:54:44 +07:00
CJ Pais
0cb88994f0
refactor enigo input (#441)
* refactor enigo input

* format
2025-12-12 16:33:49 +07:00
CJ Pais
0477c6a888
move to macos 26 ci (#440) 2025-12-12 16:13:02 +07:00
CJ Pais
f87051f464
Add Internationalization Support (#437)
* basic i18n

* tweak

* translate app

* add linting to make sure we have translations

* run linter on pr

* format
2025-12-12 11:16:54 +07:00
CJ Pais
700eb71abb Release v0.6.6 2025-12-11 17:29:35 +07:00
CJ Pais
e8902ee33e
Set WEBKIT_DISABLE_DMABUF_RENDERER=1 in env (#427)
* default WEBKIT_DISABLE_DMABUF_RENDERER disable

* try even earlier?
2025-12-11 13:01:04 +07:00
CJ Pais
aaade62f9d
Add ctrl+shift+v as option on windows and linux (#430)
* ctrl+shift+v

* clean up some clipboard code

* format
2025-12-10 17:49:43 +07:00
CJ Pais
81bccdea0b
Update README.md 2025-12-09 21:44:52 +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
CJ Pais
933c1b14c2 release v0.6.5 2025-12-08 09:23:56 +07:00
Danny Smith
246feda45d
Add option to append trailing space after pasted text (#405) 2025-12-05 17:37:33 +07:00
mg-dev25
244a99e623
feat(audio): prioritize F32 sample format for better quality (#390) (#393) 2025-11-30 15:59:54 +07:00
CJ Pais
d52bec9d87 fix workflow? 2025-11-30 11:28:41 +07:00
CJ Pais
3d15ee13c5 add prettier format check to pr 2025-11-29 16:52:02 +07:00
CJ Pais
45e7d01e8a release v0.6.4 2025-11-29 16:45:33 +07:00
CJ Pais
6c35a8d912
disable cancel on linux (#392) 2025-11-29 16:44:49 +07:00
CJ Pais
6d6d7fb279 release v0.6.3 2025-11-28 10:18:18 +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
Danielalnajjar
ee571b6810
fix: re-assert always-on-top for overlay on Windows (#383)
* fix: re-assert always-on-top for overlay on Windows

On Windows, the recording/transcribing overlay can lose its topmost
Z-order and fall behind other windows during certain window manager
events (e.g., dragging windows, alt-tabbing, or other apps asserting
focus).

This fix uses the Win32 SetWindowPos API directly with HWND_TOPMOST
to aggressively re-assert the overlay's Z-order immediately after
showing it. Key implementation details:

- Uses Tauri 2's WebviewWindow::hwnd() to get the native handle
- Calls SetWindowPos on the main UI thread via run_on_main_thread
- Applies flags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_SHOWWINDOW
  - SWP_NOACTIVATE prevents stealing focus from the active window
  - SWP_SHOWWINDOW reinforces the topmost state during the show

The fix is called after .show() in both show_recording_overlay and
show_transcribing_overlay, which is more reliable than setting it
before the window is visible.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* keep the fix to windows only

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-28 09:55:13 +07:00
CJ Pais
4fcf0447b3
notes regarding linux (#387)
* notes regarding linux

* fix overlay not being default false on linux

* note
2025-11-28 09:37:49 +07:00
CJ Pais
4734d56021
fix? (#388) 2025-11-28 09:23:26 +07:00
Jackson
381b8a8bfb
Add a cancel hotkey and configuration (#224)
* From scratch

* Cleanup

* Small fixes

* simplify

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-28 09:00:47 +07:00
CJ Pais
8136e6ba1f cf 2025-11-27 18:11:34 +07:00
Lari Hotari
e72bfb4bc0
Add wayland paste support using wtype or dotool (#376) 2025-11-27 17:52:33 +07:00
Maicon Moreira
dbd8827bb2
feat(audio): async play test sound (#375)
Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-27 17:46:41 +07:00
Ole Jakob Schjøth
c8389f34b2
feat: Add disabled option for pasting. (#364)
* feat: Add disabled option for pasting.

* update bindings

* -> none

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-27 17:38:41 +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