Skip to content

test: execute media and Talk runtime boundaries#101091

Merged
RomneyDa merged 3 commits into
mainfrom
dallin/wave2-media-talk-ui
Jul 6, 2026
Merged

test: execute media and Talk runtime boundaries#101091
RomneyDa merged 3 commits into
mainfrom
dallin/wave2-media-talk-ui

Conversation

@RomneyDa

@RomneyDa RomneyDa commented Jul 6, 2026

Copy link
Copy Markdown
Member

Closes #101074

What Problem This Solves

Resolves a problem where QA scenarios for WebChat audio delivery, browser Talk lifecycle, active Talk run control, and Voice Call entry points could pass without exercising the runtime boundaries named by their coverage claims.

Why This Change Was Made

This replaces shallow canaries with shared script producers that start the real Gateway and plugin runtime while mocking only external model, speech, realtime, and telephony providers. It reuses the existing Playwright browser Talk test, allows Node Gateway clients to send an explicit WebSocket Origin, returns realtime Talk consult acknowledgement without waiting for the full agent run, and permits the built-in mock Voice Call provider to drive realtime media streams.

User Impact

Maintainers get executable evidence that WebChat TTS reaches scoped media tickets, browser Talk starts and releases audio resources, active Talk RPCs control one real embedded agent run, and Voice Call CLI/RPC/tool entry points share a fake-provider runtime whose webhook media stream carries embedded-agent consult context. The Talk acknowledgement fix also prevents realtime tool calls from blocking until the consulted agent run finishes.

Evidence

  • Blacksmith Testbox tbx_01kww5h9qz0xb9rangk2pqnhsw (pearl-hermit), Actions run 28808350733.
  • WebChat producer: real Gateway/WebChat send, one mock TTS synthesis, trusted audio attachment, unauthorized media rejection, scoped ticket retrieval, and exact WAV bytes passed.
  • Active Talk producer: real Gateway consult acknowledgement plus status, steer, follow-up, and cancel against one active embedded run passed; recovered evidence wall time 64182ms on Linux Node v24.13.0.
  • Voice Call producer: actual CLI, voicecall.initiate, tools.invoke, built-in mock telephony, runtime-issued webhook media stream, and embedded consult transcript/provider context passed.
  • ui/src/e2e/browser-talk-start-stop.e2e.test.ts: Playwright browser start/stop passed.
  • packages/gateway-client/src/client.watchdog.test.ts: 15 passed.
  • src/gateway/server-methods/talk.test.ts: 92 passed.
  • extensions/voice-call/src/config.test.ts: 32 passed.
  • QA scenario catalog/runner: 48 passed.
  • Exact-current check:changed passed typecheck, lint, import-cycle, and repository policy gates.
  • Full production build, Control UI build, oxfmt, and git diff --check passed.
  • Fresh autoreview: no accepted or actionable findings.

@openclaw-barnacle openclaw-barnacle Bot added channel: voice-call Channel integration: voice-call gateway Gateway runtime extensions: qa-lab size: XL maintainer Maintainer-authored PR labels Jul 6, 2026
@RomneyDa

RomneyDa commented Jul 6, 2026

Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
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.

@clawsweeper

clawsweeper Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 6, 2026, 5:30 PM ET / 21:30 UTC.

Summary
The PR replaces shallow WebChat/Talk/Voice Call QA canaries with Gateway/plugin-runtime script producers and adds narrow Gateway client Origin, Talk acknowledgement, and mock Voice Call realtime support.

PR surface: Source +118, Tests +536, Other +15. Total +669 across 21 files.

Reproducibility: yes. at source level: current main still points the affected QA scenarios at canaries or injected boundaries, and source inspection shows the Gateway Origin, Talk acknowledgement, and mock Voice Call realtime blockers. I did not run the runtime QA lane in this read-only review.

Review metrics: 1 noteworthy metric.

  • Additive runtime surfaces: 1 client option added, 1 validation allow-list widened. Maintainers should notice the non-test surface because it affects Gateway WebSocket handshake inputs and which Voice Call realtime configs are accepted.

Stored data model
Persistent data-model change detected: serialized state: extensions/qa-lab/src/gateway-child.test.ts, serialized state: test/e2e/qa-lab/runtime/fixtures/voice-call-runtime-plugin/index.js. Confirm migration or upgrade compatibility proof before merge.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #101074
Summary: This PR is the open implementation candidate for the canonical issue requesting media/Talk/Voice Call QA scenarios to run through real runtime boundaries.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

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

Rank-up moves:

  • [P2] Let exact-head CI finish or rerun after rebasing the current base before merge.

Risk before merge

  • [P1] Live GitHub state showed the branch behind current base with exact-head CI still queued during this read-only pass, so maintainers should require a fresh green exact-head gate before merge.

Maintainer options:

  1. Decide the mitigation before merge
    Land this PR after maintainer review and exact-head gates if maintainers accept the combined QA/runtime-support shape; otherwise ask for a split before merging the linked issue's implementation path.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P2] No repair lane is needed because this maintainer-labeled PR has no concrete patch finding; the remaining action is maintainer review plus exact-head CI/merge-gate completion.

Maintainer decision needed

  • Question: Should this maintainer-labeled PR land as the combined implementation for runtime-boundary media/Talk/Voice Call QA, or should it be split before merge?
  • Rationale: The patch is broad and intentionally touches QA producers plus small runtime/config surfaces, so automation can review correctness but should not make the maintainer merge-shape decision.
  • Likely owner: steipete — steipete is the best available routing owner for the cross-runtime merge-shape decision because history and CODEOWNERS connect him to adjacent Gateway and Voice Call runtime surfaces.
  • Options:
    • Land after exact-head gates (recommended): Merge this PR once maintainers accept the combined shape and current-head CI/Testbox gates are green.
    • Request a split: Ask for separate PRs if Gateway client Origin, Talk acknowledgement, Voice Call validation, and QA producers need independent review paths.
    • Pause the direction: Keep the linked issue open and pause this branch if maintainers decide the current canaries are enough for now.

Security
Cleared: No concrete security or supply-chain regression found; the diff adds test fixture runtime code and narrow additive client/config support without workflow, lockfile, dependency, secret, or permission changes.

Review details

Best possible solution:

Land this PR after maintainer review and exact-head gates if maintainers accept the combined QA/runtime-support shape; otherwise ask for a split before merging the linked issue's implementation path.

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

Yes at source level: current main still points the affected QA scenarios at canaries or injected boundaries, and source inspection shows the Gateway Origin, Talk acknowledgement, and mock Voice Call realtime blockers. I did not run the runtime QA lane in this read-only review.

Is this the best way to solve the issue?

Yes, this appears to be the best fix shape: it reuses the real Gateway child, plugin runtime, QA evidence writer, and existing browser Talk path instead of adding a parallel harness. The small runtime support changes are directly exercised by the new producers.

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P2: The PR improves maintainer QA reliability for media, Talk, and Voice Call runtime boundaries with limited direct user blast radius.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The external-contributor proof gate does not apply to this maintainer-labeled MEMBER PR; the PR body nevertheless lists Testbox, runtime producer, Playwright, build, check, and autoreview evidence.
Evidence reviewed

PR surface:

Source +118, Tests +536, Other +15. Total +669 across 21 files.

View PR surface stats
Area Files Added Removed Net
Source 5 155 37 +118
Tests 13 1195 659 +536
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 3 40 25 +15
Total 21 1390 721 +669

What I checked:

Likely related people:

  • RomneyDa: RomneyDa authored this PR, the linked issue, and the merged predecessor PR that introduced the media/Talk/Voice Call canaries now being replaced. (role: feature owner and current implementation owner; confidence: high; commits: 3b4092dbaa96, a09452196645, dfd2600d04ed; files: qa/scenarios/media/webchat-auto-tts.yaml, qa/scenarios/runtime/active-talk-agent-run-status.yaml, qa/scenarios/plugins/voice-call-cli-rpc-agent-tool.yaml)
  • steipete: CODEOWNERS lists steipete for ownership rules, and git history links Peter Steinberger to adjacent Gateway handshake, Talk UI, and Voice Call config/runtime work touched by this PR's support changes. (role: recent adjacent runtime/config contributor; confidence: medium; commits: f5408d82d210, 92cfceac0924, 39135ca3a417; files: packages/gateway-client/src/client.ts, ui/src/e2e/browser-talk-start-stop.e2e.test.ts, extensions/voice-call/src/config.ts)
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.
Review history (2 earlier review cycles)
  • reviewed 2026-07-06T19:21:23.573Z sha 71fdf62 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-06T20:20:16.055Z sha 198512e :: needs maintainer review before merge. :: none

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P2 Normal backlog priority with limited blast radius. labels Jul 6, 2026
@RomneyDa

RomneyDa commented Jul 6, 2026

Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
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.

@RomneyDa

RomneyDa commented Jul 6, 2026

Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
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.

@RomneyDa
RomneyDa force-pushed the dallin/wave2-media-talk-ui branch from d940331 to 198512e Compare July 6, 2026 20:08
@RomneyDa

RomneyDa commented Jul 6, 2026

Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
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.

@RomneyDa
RomneyDa force-pushed the dallin/wave2-media-talk-ui branch from 198512e to 71d95d6 Compare July 6, 2026 20:43
@RomneyDa

RomneyDa commented Jul 6, 2026

Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
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.

@RomneyDa
RomneyDa merged commit 95e3b92 into main Jul 6, 2026
99 of 120 checks passed
@RomneyDa
RomneyDa deleted the dallin/wave2-media-talk-ui branch July 6, 2026 23:25
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 7, 2026
* test: execute media and Talk runtime boundaries

* test(qa): centralize gateway fixture startup

* test(qa): check in voice call plugin fixture
giodl73-repo pushed a commit to giodl73-repo/openclaw that referenced this pull request Jul 8, 2026
* test: execute media and Talk runtime boundaries

* test(qa): centralize gateway fixture startup

* test(qa): check in voice call plugin fixture
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: voice-call Channel integration: voice-call extensions: qa-lab gateway Gateway runtime maintainer Maintainer-authored PR P2 Normal backlog priority with limited blast radius. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: XL status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Execute media and Talk QA scenarios through runtime boundaries

1 participant