Skip to content

Add assistant listen controls to Voice & Audio#800

Merged
shanselman merged 3 commits into
openclaw:mainfrom
gohilripauv:codex/assistant-mvp-companion-gui
Jun 26, 2026
Merged

Add assistant listen controls to Voice & Audio#800
shanselman merged 3 commits into
openclaw:mainfrom
gohilripauv:codex/assistant-mvp-companion-gui

Conversation

@gohilripauv

Copy link
Copy Markdown
Contributor

Adds a native Companion GUI surface for the OpenClaw assistant MVP on the existing Voice & Audio page.

Changes:

  • Adds AssistantBridgeService to call the local OpenClaw backend bridge/listen-service commands.
  • Adds an Assistant card to Voice & Audio with Refresh, Start, Stop, live listen-service status, selected mic/speaker, and recent input/output turns.
  • Resolves the local backend through OPENCLAW_BACKEND_ROOT or the default D:\Projects\OpenClaw checkout, so dev builds do not depend on PATH.
  • Handles backend stop-requested metadata as a stopped UI state when rendering the card.
  • Adds focused tests for bridge JSON parsing and backend launcher resolution.

Validation:

  • dotnet test tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore: 1100 passed.
  • dotnet build src\OpenClaw.Tray.WinUI\OpenClaw.Tray.WinUI.csproj -r win-x64 --no-restore: succeeded, 0 warnings, 0 errors.
  • Live backend start/status/stop smoke through D:\Projects\OpenClaw.venv\Scripts\openclaw.exe succeeded.
  • Rebuilt local Companion launched from the Debug win-x64 output and connected as the Windows node.

Notes:

  • This intentionally reuses the existing native Voice & Audio page and the backend listen-service bridge instead of creating a separate UI.
  • No changes to the backend repository in this PR.

@clawsweeper

clawsweeper Bot commented Jun 21, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed June 26, 2026, 1:21 AM ET / 05:21 UTC.

Summary
The branch adds a Voice & Audio Assistant card backed by a new AssistantBridgeService that shells out to local backend listen-service commands, plus localization resources and tray tests.

Reproducibility: not applicable. for the central feature request; this PR adds a new Voice & Audio Assistant surface rather than fixing a reproduced bug. Source inspection verifies the changed paths, but real behavior proof for the runtime flow is still missing.

Review metrics: 3 noteworthy metrics.

  • Changed surface: 10 files, +1558/-0. The PR spans UI XAML, code-behind, a new process-launching service, five locale resources, tests, and test project wiring.
  • New process runner: 1 service added. AssistantBridgeService starts local backend commands, so timeout behavior, argument defaults, and proof matter before merge.
  • Localization coverage: 5 locale resource files changed. The latest head addresses the earlier localization gap by adding Assistant strings across the supported resource files.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🐚 platinum hermit
Result: blocked until real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Post redacted real behavior proof showing Assistant status refresh, Start, Stop, and recent-turn rendering in a real Companion/backend setup.
  • Have maintainers explicitly accept or narrow the backend-checkout resolver and OPENCLAW_BACKEND_ROOT behavior as shipped UX.

Proof guidance:

  • [P1] Needs real behavior proof before merge: No inspectable after-fix screenshot, recording, terminal/live output, linked artifact, or redacted log is attached; the contributor should add redacted proof to the PR body so ClawSweeper can re-review. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Mantis proof suggestion
A short visible Companion proof would materially help verify the new Assistant card workflow in a real UI. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis visual task: verify the Voice & Audio Assistant card refreshes status, starts and stops listen service, and shows recent turns with private details redacted.

Risk before merge

  • [P1] No inspectable after-fix proof is attached for refresh, start, stop, and recent-turn rendering in a real Companion/backend setup.
  • [P1] The PR introduces a shipped backend-checkout resolver and OPENCLAW_BACKEND_ROOT override for a new Assistant UX, so maintainers need to accept that product path rather than treating it as only a dev bridge.

Maintainer options:

  1. Decide the mitigation before merge
    Land a reviewed version after redacted real behavior proof is posted and maintainers explicitly accept the backend resolver and Assistant card as the intended Companion UX.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P1] Human review remains because contributor proof is missing and the backend-driven Assistant UX/env override needs maintainer acceptance.

Security
Cleared: No concrete security or supply-chain regression was found in the latest diff; the Start command defaults to local routing and the backend executable resolver is constrained to intended local checkout locations.

Review details

Best possible solution:

Land a reviewed version after redacted real behavior proof is posted and maintainers explicitly accept the backend resolver and Assistant card as the intended Companion UX.

Do we have a high-confidence way to reproduce the issue?

Not applicable for the central feature request; this PR adds a new Voice & Audio Assistant surface rather than fixing a reproduced bug. Source inspection verifies the changed paths, but real behavior proof for the runtime flow is still missing.

Is this the best way to solve the issue?

Mostly yes: the latest patch uses the existing Voice & Audio page, local listen-service bridge, resource-backed strings, and tests for the repaired backend defaults. It is not yet the best shippable path until proof and maintainer acceptance of the backend resolver are covered.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against cd02defd9942.

Label changes

Label justifications:

  • P2: This is a bounded user-facing Voice & Audio feature with limited blast radius, but it still needs proof and maintainer product acceptance before merge.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: No inspectable after-fix screenshot, recording, terminal/live output, linked artifact, or redacted log is attached; the contributor should add redacted proof to the PR body so ClawSweeper can re-review. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed

What I checked:

Likely related people:

  • shanselman: Authored the latest hardening commits on this PR, commented that validation passed locally, and recently merged adjacent tray behavior on current main. (role: recent PR repair author and reviewer; confidence: high; commits: 45e028c24301, caf90c25fe27, cd02defd9942; files: src/OpenClaw.Tray.WinUI/Services/AssistantBridgeService.cs, src/OpenClaw.Tray.WinUI/Pages/VoiceSettingsPage.xaml.cs)
  • ranjeshj: Authored and merged the recent tray UX stack that touched VoiceSettingsPage and localized resource patterns used by this PR. (role: recent tray UX/resource contributor; confidence: medium; commits: 429be9ba9368; files: src/OpenClaw.Tray.WinUI/Pages/VoiceSettingsPage.xaml, src/OpenClaw.Tray.WinUI/Pages/VoiceSettingsPage.xaml.cs, src/OpenClaw.Tray.WinUI/Strings/en-us/Resources.resw)
  • RBrid: Recent current-main history shows multiple localized tray notification/resource changes, which are adjacent to this PR's localized UI surface. (role: recent adjacent localization contributor; confidence: medium; commits: 1a07759a7e6e; files: src/OpenClaw.Tray.WinUI/Strings/en-us/Resources.resw, src/OpenClaw.Tray.WinUI/Pages/VoiceSettingsPage.xaml.cs)
  • Barbara Kudiess: Recent setup/WSL recovery work touched backend process-launching patterns adjacent to the new AssistantBridgeService launcher. (role: recent adjacent process-launching contributor; confidence: low; commits: 1e6951331f1c; files: src/OpenClaw.Tray.WinUI/Services/WslGatewayKeepAliveService.cs)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. merge-risk: 🚨 availability 🚨 Merging this PR could cause crashes, hangs, restart loops, stalls, or process outages. labels Jun 21, 2026
@shanselman

Copy link
Copy Markdown
Contributor

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 22, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@shanselman

Copy link
Copy Markdown
Contributor

Maintainer fix pushed for the two review blockers: the Assistant Start path now defaults to local routing (no --allow-cloud) and timed-out backend commands kill/drain the process tree.\n\nLocal validation completed: .\build.ps1, shared tests, tray tests, focused AssistantBridgeService tests, focused security review, and autoreview all passed. I requested @clawsweeper re-review, but the fresh verdict has not landed yet. Holding this unmerged until ClawSweeper/proof catches up or a maintainer explicitly accepts the remaining proof gap.

@clawsweeper clawsweeper Bot removed merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. merge-risk: 🚨 availability 🚨 Merging this PR could cause crashes, hangs, restart loops, stalls, or process outages. labels Jun 22, 2026
RipauvGohil and others added 3 commits June 25, 2026 21:52
Remove the cloud-enabled start flag from the Voice & Audio assistant path, align the UI copy with the local routing default, and kill/drain backend commands that exceed the bridge timeout.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@shanselman shanselman force-pushed the codex/assistant-mvp-companion-gui branch from 53e3e3a to caf90c2 Compare June 26, 2026 05:14
@shanselman shanselman merged commit 6c56a83 into openclaw:main Jun 26, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants