Handy/src-tauri
Chirag Agggarwal 0cb8ab2162
feat: implement structured outputs for post-processing providers (#706)
* feat: implement structured outputs for Cerebras, OpenRouter, OpenAI, and Apple Intelligence

- Add structured output support with JSON schema in llm_client.rs
- Update actions.rs to use system prompt + user content approach
- Remove legacy ${output} variable substitution for supported providers
- Update Apple Intelligence Swift code to accept system prompts
- All providers now use consistent structured output format
- Remove duplicate check_apple_intelligence_availability function

* wip changes

* fix(structured-outputs): address PR #706 review comments

- Add settings migration to sync supports_structured_output field for existing providers
- Fix fallback behavior: structured output failures now fall through to legacy mode
- Clone api_key to prevent ownership issues in fallback path
- Clean up build_system_prompt(): remove  placeholder entirely
  (instead of replacing with 'the user's message' which reads awkwardly)
- Add warn import from log crate

* refactor(structured-outputs): apply best practice improvements

- Optimize settings migration: use single match instead of double iteration
- Add TRANSCRIPTION_FIELD constant to replace magic strings
- Keep Apple Intelligence behavior unchanged (no API fallback for privacy)

Addresses code review feedback on PR #706:
1. More efficient provider lookup in ensure_post_process_defaults()
2. Eliminates hardcoded 'transcription' string in JSON parsing
3. Maintains privacy-first approach for Apple Intelligence

* fix groq output

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2026-02-17 12:14:00 +08:00
..
capabilities feat: add models settings page with filtering and management (#478) 2026-02-08 12:18:22 +08:00
gen/apple more wip but roughly is there 2025-08-01 14:15:02 -07:00
icons who knows 2025-05-09 16:07:36 -07:00
resources Improve audio feedback timing using real sound duration and trimmed WAV files (#349) 2025-11-19 10:10:23 +07:00
src feat: implement structured outputs for post-processing providers (#706) 2026-02-17 12:14:00 +08:00
swift feat: implement structured outputs for post-processing providers (#706) 2026-02-17 12:14:00 +08:00
.gitignore basic working transcription. 2025-02-03 09:26:37 -08:00
build.rs feat: add tray menu localization using system locale (#446) 2025-12-18 04:14:32 -08:00
Cargo.lock support moonshine v2 (#837) 2026-02-17 11:44:10 +08:00
Cargo.toml support moonshine v2 (#837) 2026-02-17 11:44:10 +08:00
Entitlements.plist working? ability to package/run on macos 2025-05-05 12:13:27 -07:00
Info.plist working? ability to package/run on macos 2025-05-05 12:13:27 -07:00
rustfmt.toml format everything (#323) 2025-11-10 11:39:14 +08:00
tauri.conf.json release v0.7.5 2026-02-11 20:29:33 +08:00