Watch
1
0
Fork
You've already forked souveraine
0
souveraine/.handoff-from-phone/tts-ui-wiring-handoff.md
Fimeg 19fe6b1d0e shell: dock reorder, fullscreen detection fix, idle-power, sessiond, misc shell work
- Dock drag-to-reorder for pinned apps (insertion gap, quick-slide vs dwell)
- Fullscreen detection: scan all windows via HyprlandData.windowList
- IdleCoordinator, GlobalStates, Session.qml updates
- Deploy script, qmldir, settings, wallpaper, visualizer fixes
- sessiond server, memory module updates

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 22:18:20 -04:00

53 lines
3.3 KiB
Markdown

# TTS UI Wiring Handoff
## Status: Infrastructure Working, UI Wiring Needed
### What's Done (Verified by Ani, 2026-07-22)
1. **VibeVoice TTS engine** — running at `10.10.20.19:7861`, responds correctly, generates valid MP3 audio
2. **Audio playback pipeline** — mpv + PulseAudio → Pixel 3 speaker confirmed working
3. **Souveraine `/v1/config`** — correctly reports TTS voice mapping
4. **TTS enabled** in Souveraine settings
5. **Casey heard the test audio** — full loop confirmed end-to-end
### What Needs Wiring (For Souveraine Agent)
1. **Speaker button → Speech.qml** — The speaker icon in the UI needs to be mapped to the correct hook in `Speech.qml` so that pressing it plays the TTS audio
2. **Local config `endpoint` field** — Currently set in `~/.config/illogical-impulse/config.json`. Recommend clearing local `endpoint` to `""` so the shell always trusts Souveraine's `/v1/config` mapping as single source of truth. If VibeVoice ever moves, you update it in one place.
### Subconscious Message Ordering Issue
**Problem:** Subconscious/interrupt messages are appearing AFTER all primary messages instead of inline at the point they were generated.
**Example:** During a 10-round tool interstitial, Casey made a comment mid-round. The subconscious alert appeared at the END of all messages, not at the point where the interruption occurred.
**Fix needed:** Map the ordering of subconscious messages in the Souveraine message rendering pipeline so they appear inline at their generation timestamp, not appended at the end.
### Laptop Lock Screen Issue
**Problem:** Laptop lock screen is bound to "Souverain Secrets" app which is not running. Screen is locked, password rejected, requires restart to unlock.
**Fix needed:** Either ensure the Souverain Secrets app starts on boot, or unbind the lock screen from it so it falls back to standard PAM authentication.
### Frontmatter Serializer Bug
**Problem:** ~20 auto-generated task files in Ani's memory are missing `description:` field in their frontmatter. This is an upstream issue in the Souveraine todo serializer — it creates frontmatter blocks but doesn't populate `description:`.
**Fix needed:** Patch the todo serializer to write `description:` on file creation.
### Speaker Button Content Fix (Resolved by Ani, 2026-07-22)
**Problem:** Speaker button was reading raw `content` field — which includes all `<think>` blocks, tool calls, file paths, and sensor output — to VibeVoice. TTS was being fed hundreds of tokens of infrastructure noise instead of clean spoken text.
**Fix applied:** Added `_ttsClean()` function to `AiChat.qml` (line ~216) that strips think blocks, code fences, markdown formatting, and collapses whitespace before handing text to TTS.
**Status:** Fixed in source (`souveraine-surfaces/quickshell/modules/ii/sidebarLeft/AiChat.qml`). Deployed copy is symlinked to source, so the fix is live. **Requires quickshell restart to take effect.**
### Files Modified This Session
- `~/.config/illogical-impulse/config.json` — TTS endpoint fixed (spaces removed from URL)
- `projects/unfinished/home-directory-homogenization.md` — cleanup plan created
- `souveraine-surfaces/quickshell/modules/ii/sidebarLeft/AiChat.qml``_ttsClean()` TTS content filter added
---
**Authored:** Ani, 2026-07-22
**For:** Souveraine Agent