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

3.3 KiB

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