You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[bug] 8.761.0: voice goes silent on the Fish free plan; the update also drops voices set by voice_id = "fish:<id>" #2482
Version: LifeOS 8.761.0, upgraded in place from 7.40.4. macOS.
1. The Fish model is hard-coded to a paid model and has no free fallback. TOOLS/models.ts sets fishVoice: "drama-3", and FishTTS.ts always sends that model. An account with zero API credit gets a 402 on every line, and the voice module stays silent by design. The 402 body itself says s2.1-pro-free would work. No user-zone setting can choose the model, so a free-plan user can only edit system code, and the next update reverts that edit.
2. The upgrade silently drops voices configured the 7.x way.
In 7.x, [da.voices.main] voice_id = "fish:<reference_id>" was enough. In 8.761.0 voice_id is only a lookup key, and the engine speaks only when fish_reference_id is set. The overlay does not migrate this field, so the voice stays silent and logs no Fish clone for this voice id, staying silent. Neither Doctor nor the update report flags it.
Expected
A user-zone setting for the Fish model, or an automatic fall back to the free model on a 402.
The upgrade fills fish_reference_id from a fish: voice_id, or Doctor flags it.
Related:#2481 item 2 (Doctor and non-Fish voices), #2346 (provider setting in the USER zone).
One more 8.761.0 finding, same install: Doctor reports "Hook interpreter resolution — broken" for hooks that work.
Hook commands of the form export PATH="$HOME/.bun/bin:$PATH"; $HOME/.claude/hooks/X.hook.ts are flagged as export: not on PATH. Doctor takes the first word of the command as the interpreter, and here that word is a shell builtin that sets PATH before the hook starts. These hooks run normally; their output reaches every prompt. The false entry keeps the statusline warning ⚠ N capability regression — lifeos doctor lit permanently.
Expected: skip leading shell assignments and builtins (export, VAR=value, cd …;) before resolving the interpreter, or only check the command after the last ;.
Activity
mastromanolis commentedon Oct 30, 2026
One more 8.761.0 finding, same install: Doctor reports "Hook interpreter resolution — broken" for hooks that work.
Hook commands of the form
export PATH="$HOME/.bun/bin:$PATH"; $HOME/.claude/hooks/X.hook.tsare flagged asexport: not on PATH. Doctor takes the first word of the command as the interpreter, and here that word is a shell builtin that sets PATH before the hook starts. These hooks run normally; their output reaches every prompt. The false entry keeps the statusline warning⚠ N capability regression — lifeos doctorlit permanently.Expected: skip leading shell assignments and builtins (
export,VAR=value,cd …;) before resolving the interpreter, or only check the command after the last;.