feat(handy): correct store template to nested {settings} shape; fleet wiring patch + apply recipe
live store wired 2026-10-09: provider custom -> frank-secondary @ 192.168.0.143:7771, prompt default_improve_transcriptions, post_process on, self-autostart off (niri owns it)
This commit is contained in:
1 parent
4c562d7ed4
commit
37554b0fb0
2 files changed
+42
-21
No files matched your search
@@ -1,5 +1,34 @@
|
|||||||
# Handy Settings Template
|
# Handy Settings Template
|
||||||
|
|
||||||
This directory contains a template for Handy's settings store. The app rewrites the live store at `~/.local/share/com.pais.handy/settings_store.json`.
|
Handy (Tauri v2) keeps its store at `~/.local/share/com.pais.handy/settings_store.json`,
|
||||||
|
shaped `{"settings": {...}}`, and **rewrites the live file on every change** — so the
|
||||||
|
repo carries a merge patch (`settings_store.template.json`), not a full store.
|
||||||
|
|
||||||
Keys that might contain sensitive information (e.g., API tokens, base URLs) should stay out of the repo.
|
## Apply the fleet wiring
|
||||||
|
|
||||||
|
Quit Handy first (it caches settings in memory and overwrites external edits):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pkill -f /usr/bin/handy
|
||||||
|
jq --slurpfile p <repo>/dotfiles/zz-blankpad/.local/share/com.pais.handy/settings_store.template.json '
|
||||||
|
.settings |= (
|
||||||
|
$p[0].settings
|
||||||
|
| .post_process_models = ((.post_process_models // {}) + $p[0].settings.post_process_models)
|
||||||
|
| .post_process_providers = (.post_process_providers
|
||||||
|
| map(if .id == "custom" then .base_url = $p[0].custom_provider_base_url else . end))
|
||||||
|
)' settings_store.json > store.tmp && mv store.tmp settings_store.json
|
||||||
|
setsid nohup handy --start-hidden >/dev/null 2>&1 < /dev/null &
|
||||||
|
```
|
||||||
|
|
||||||
|
Niri also spawns Handy at startup (`cfg/autostart.kdl`:
|
||||||
|
`spawn-at-startup "handy" "--start-hidden"`), hence `autostart_enabled: false` —
|
||||||
|
the compositor owns autostart.
|
||||||
|
|
||||||
|
## Known breaker (2026-10-09)
|
||||||
|
|
||||||
|
`frank-secondary` (`http://192.168.0.143:7771/v1`) is a thinking model: default
|
||||||
|
requests return `content: ""` with the answer locked in `reasoning_content`.
|
||||||
|
Handy reads `content`, so post-processed transcripts come back empty. The
|
||||||
|
per-request cure is `chat_template_kwargs: {"enable_thinking": false}` (verified),
|
||||||
|
which Handy cannot send. Endpoint-side fix required — see
|
||||||
|
`omp-docs/tools/handy.md` → Known issues.
|
||||||
@@ -1,22 +1,14 @@
|
|||||||
{
|
{
|
||||||
"// template: Handy settings store, rewritten live by the app": true,
|
"//": "Handy settings-store wiring patch (blankpad, 2026-10-09).",
|
||||||
"// app rewrites live store: ~/.local/share/com.pais.handy/settings_store.json": true,
|
"//shape": "The live store is {\"settings\": {...}}; the app rewrites it, so this file is a MERGE PATCH, not a drop-in store.",
|
||||||
"// keys stay out of repo": true,
|
"//apply": "see README.md",
|
||||||
"autostart_enabled": false,
|
"//knob": "frank-secondary is a thinking model: it answers via reasoning_content and leaves content empty unless chat_template_kwargs.enable_thinking=false. Handy cannot send that; the fix must live on the endpoint (see omp-docs/tools/handy.md Known issues).",
|
||||||
"post_process_enabled": true,
|
"settings": {
|
||||||
"provider": "custom",
|
"post_process_enabled": true,
|
||||||
"base_url": "http://192.168.0.143:7771/v1",
|
"autostart_enabled": false,
|
||||||
"model": "frank-secondary",
|
"post_process_provider_id": "custom",
|
||||||
"prompt": "default_improve_transcriptions",
|
"post_process_models": { "custom": "frank-secondary" },
|
||||||
"push_to_talk": true,
|
"post_process_selected_prompt_id": "default_improve_transcriptions"
|
||||||
"bindings": {
|
|
||||||
"transcribe": "ctrl+space",
|
|
||||||
"transcribe_with_post_process": "ctrl+shift+space",
|
|
||||||
"cancel": "escape"
|
|
||||||
},
|
},
|
||||||
"keyboard_implementation": "handy_keys",
|
"custom_provider_base_url": "http://192.168.0.143:7771/v1"
|
||||||
"overlay_position": "bottom",
|
|
||||||
"overlay_style": "live",
|
|
||||||
"paste_method": "none",
|
|
||||||
"clipboard_handling": "copy_to_clipboard"
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user