Skip to content

Improve voice activation, add va status skill and improve hud rendering - #405

Merged
Shackless merged 15 commits into
ShipBit:developfrom
SawPsyder:feature/improve-va-mic-status
Jul 16, 2026
Merged

Improve voice activation, add va status skill and improve hud rendering#405
Shackless merged 15 commits into
ShipBit:developfrom
SawPsyder:feature/improve-va-mic-status

Conversation

@SawPsyder

@SawPsyder SawPsyder commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Also references #402

Summary

Improve voice activation, add va status skil and improve hud rendering

Changes

  • Fix triggered voice activation state change during audio player playback (saves future state instead of changing anything directly)
  • reuse background opacity for hud outline rendering
  • add new skill that shows the voice activation status on the hud (this is also a community request)

Testing

  • tested locally
  • enable voice activation and change state during playback or generally to investigate shown state in wingman ai and the new skill

Checklist

  • This PR is linked to a GitHub issue
  • I have tested my changes locally
  • I have rebased my branch onto develop

@SawPsyder
SawPsyder requested a review from Shackless July 3, 2026 16:20

@Shackless Shackless left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! The core idea of the toggle fix is sound — I verified that all real end-of-playback paths reliably fire on_playback_finished, and streamed responses produce exactly one started/finished cycle, so the saved intent is applied correctly in the normal flow. The outline-alpha change also checks out (content-layer borders staying opaque is consistent with the design).

I left inline comments on the issues found during review, roughly in order of severity:

  1. Race between the new playback branch and on_playback_started that can silently swallow a mute press (wingman_core.py)
  2. The skill's permanent /ws connection breaks Core's offline-message queueing for the real client (mic_status/main.py)
  3. The intent fix only covers the hotkey path — the /voice-activation/mute endpoint still has the old bug (wingman_core.py)
  4. Icon paths containing ) never render, and the code comment about the parser is wrong (mic_status/main.py)
  5. After a HUD server restart the icon comes back as a default-styled window, and failed draws are cached as successful (mic_status/main.py)
  6. The connected guard in update_config drops config changes after any transient HUD hiccup (mic_status/main.py)
  7. Reading Core internals via sys.modules["__main__"] bypasses the skill facade — uniquely among bundled skills (mic_status/main.py)
  8. icon_size code default (96) drifted from default_config.yaml (72) (mic_status/main.py)

Minor nit not worth its own thread: (55, 62, 74) is now hardcoded in five places across hud_server; a DEFAULT_BORDER_COLOR in hud_server/constants.py would fit the existing pattern there.

Comment thread wingman_core.py Outdated
Comment thread wingman_core.py Outdated
Comment thread skills/mic_status/main.py Outdated
Comment thread skills/mic_status/main.py Outdated
Comment thread skills/mic_status/main.py Outdated
Comment thread skills/mic_status/main.py Outdated
Comment thread skills/mic_status/main.py Outdated
Comment thread skills/mic_status/main.py Outdated
@SawPsyder
SawPsyder marked this pull request as draft July 5, 2026 21:45
@SawPsyder

Copy link
Copy Markdown
Collaborator Author

All issues resolved in newest commit.
But still converted the PR to draft to properly test the changes in my next session.

I moved away from "lets not touch the core where I dont have to" to "lets modify core to give me what I need for a clean state".
But therefore I will give it more time to test now.

@SawPsyder SawPsyder changed the title Improve voice activation, add va status skil and improve hud rendering Improve voice activation, add va status skill and improve hud rendering Jul 10, 2026
@SawPsyder SawPsyder self-assigned this Jul 10, 2026
@SawPsyder
SawPsyder marked this pull request as ready for review July 10, 2026 20:11
@SawPsyder

SawPsyder commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

I think its good to go now. Also included some elevenlabs adjustments for playback state detection fixes

@Shackless Shackless left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second review round — verified all 8 findings from the previous round against the new commits: all properly resolved ✓ (intent model, endpoint path, WS removal, paren regex, HUD restart/create-or-update, .connected guard, facade surface, yaml default sync). The sound_config parameter also fixes a genuine latent NameError in develop's direct-stream path — nice catch.

Four new findings below, posted inline: 1 blocker (VA doesn't resume after a naturally ending ElevenLabs playback — deterministic, both paths), 1 comment/code mismatch, 2 minor notes.

Note on the diff: the branch carries cherry-picked copies of four develop commits (condenser, voice service, config context, template renames) with different SHAs, which inflates the PR diff to 27 files. The effective diff vs. develop is 14 files. A rebase onto current develop before merge would clean that up.

Comment thread providers/elevenlabs.py Outdated
Comment thread wingman_core.py
Comment thread services/audio_recorder.py
Comment thread skills/mic_status/main.py
@SawPsyder
SawPsyder requested a review from Shackless July 16, 2026 20:47
@SawPsyder

Copy link
Copy Markdown
Collaborator Author

@Shackless Open for review again.

@Shackless
Shackless merged commit 9e5c5b4 into ShipBit:develop Jul 16, 2026
1 check 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.

2 participants