Skip to content

fix: migrate to stackvox 0.4.x unified CLI#16

Merged
StuBehan merged 1 commit into
StackOneHQ:mainfrom
StuBehan:fix/stackvox-cli-migration
Apr 30, 2026
Merged

fix: migrate to stackvox 0.4.x unified CLI#16
StuBehan merged 1 commit into
StackOneHQ:mainfrom
StuBehan:fix/stackvox-cli-migration

Conversation

@StuBehan
Copy link
Copy Markdown
Collaborator

@StuBehan StuBehan commented Apr 30, 2026

Summary

stackvox 0.4.x consolidated its CLI — there is no separate `stackvox-say` console_script anymore; speech goes through `stackvox say ` as a subcommand. `notify.sh` and `Speaker.swift` both still pointed at the old binary, so on fresh installs (where only `stackvox` exists in the venv) the existence guard bailed silently and voice never fired.

Closes #14, reported by @OMauriStkOne.

Failure mode this fixes

  • Install looks healthy, daemon running, models downloaded
  • `stackvox say "..."` works manually
  • `STACKNUDGE_VOICE=true` set
  • Hook fires → banner + sound play → voice never speaks, no error surfaced

Changes

`notify.sh`

  • Drop `STACKVOX_SAY` variable
  • `speak_notification` invokes `"$STACKVOX" say ...`
  • `voice_phrase_for` gates on `STACKVOX` existence
  • New `nudge_debug()` helper writes to stderr when `STACKNUDGE_DEBUG=true`. Logs the missing-binary and missing-daemon-socket cases that previously failed silently — so the next time something like this happens, users can diagnose with one env var instead of bisecting the script.

`panel/Speaker.swift`

  • Same migration on the Swift side (used by the menu-bar voice toggle preview and the voice-cycle preview in Settings)

Test plan

  • `stackvox say --voice af_aoede ...` runs cleanly against an installed venv
  • `notify.sh claude-code stop` with `STACKNUDGE_VOICE=true` completes the voice path without error
  • `STACKNUDGE_DEBUG=true` surfaces the diagnostic when stackvox is absent
  • `shellcheck -S warning` and `bash -n` clean
  • `make build` (swiftc path) and `swift build` (Package.swift) both succeed

Out of scope (deliberate)

🤖 Generated with Claude Code

… on fresh installs

stackvox 0.3.x consolidated its CLI — there is no separate `stackvox-say`
console_script anymore; speech goes through `stackvox say <text>` as a
subcommand. notify.sh and Speaker.swift both still pointed at the old
binary, so on fresh installs (where only `stackvox` exists in the venv)
the existence guard bailed silently and voice never fired. install
looks healthy, daemon is running, models are downloaded, the manual
`stackvox speak` works — but hooks never speak.

Reported in #14 by @OMauriStkOne.

notify.sh
- STACKVOX_SAY removed; speak_notification now invokes "$STACKVOX" say
- voice_phrase_for gates on STACKVOX existence (was STACKVOX_SAY)
- nudge_debug() helper writes to stderr only when STACKNUDGE_DEBUG=true.
  Logs the missing-binary and missing-daemon-socket cases that were
  previously hidden by the silent bail. The "voice silently no-ops"
  failure mode is now diagnosable by setting STACKNUDGE_DEBUG=true.

Speaker.swift
- Same migration on the Swift side (used by the menu bar's voice toggle
  preview and the voice-cycle preview in Settings)
- Removed the now-redundant separate stackvox / stackvoxSay paths

Verified locally with stackvox 0.3.x in the venv: `stackvox say --voice
af_aoede ...` runs cleanly; notify.sh's voice path completes without
error when STACKNUDGE_VOICE=true.

Closes #14

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@StuBehan StuBehan force-pushed the fix/stackvox-cli-migration branch from 9e6cebc to 68efe9c Compare April 30, 2026 12:04
@StuBehan
Copy link
Copy Markdown
Collaborator Author

Confirmed against stackvox 0.4.0 on PyPIstackvox say --voice ... --speed ... --lang ... is unchanged from 0.3.x (0.4.0 only adds a per-user TOML config layer for defaults). Force-pushed to bump install.sh's pin from stackvox>=0.3.0 to stackvox>=0.4.0 so we're explicit about the version we've validated against.

@StuBehan StuBehan changed the title fix: migrate to stackvox 0.3.x unified CLI fix: migrate to stackvox 0.4.x unified CLI Apr 30, 2026
@StuBehan StuBehan merged commit a184b0b into StackOneHQ:main Apr 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

notify.sh calls non-existent stackvox-say binary — voice silently broken on stackvox ≥ 0.3.0

1 participant