Conversation
|
Codex review: needs maintainer review before merge. What this changes: This PR updates the bundled voice-call plugin so gateway-delegated CLI calls use operation-specific timeouts and gateway handlers return protocol-shaped errors, with focused unit coverage. Maintainer follow-up before merge: The patch looks functionally narrow and correct, but exact-head CI has multiple failures without a clear PR-local repair from the available annotations; a maintainer should inspect or rerun those checks before merge. Security review: Security review cleared: The diff only changes bundled voice-call CLI/gateway error handling and tests; it does not touch workflows, dependencies, lockfiles, package resolution, secrets, or downloaded code. Review detailsBest possible solution: Land the narrow voice-call plugin fix once exact-head CI is green, keeping the behavior in the plugin-owned CLI/gateway handlers and preserving the existing gateway protocol contract rather than adding a broader core special case. Do we have a high-confidence way to reproduce the issue? Yes. The source-level reproduction is high-confidence: current main sends Is this the best way to solve the issue? Yes. The PR is the narrowest maintainable direction I found: use config-derived timeouts for long voice-call RPCs and return gateway failures through the protocol error argument that the client already consumes. Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 42d73fd955af. |
a1018a1 to
7468386
Compare
|
Landed via temp rebase onto main.
Thanks @serrurco and @DougButdorf! |
Summary
Found two actionable regressions in the new voice-call CLI gateway delegation path. The main issue is a fixed 5s gateway request timeout applied to operations that can legitimately wait much longer.
What ClawSweeper Is Fixing
voicecall continuetimes out long before the voice-call turn timeout (reliability)extensions/voice-call/src/cli.ts:48timeout: "5000"viacallVoiceCallGateway. That includesvoicecall.continueatextensions/voice-call/src/cli.ts:438. ButcontinueCallspeaks, starts listening, and then awaitswaitForFinalTranscriptatextensions/voice-call/src/manager/outbound.ts:377; the configured transcript timeout defaults to180000ms inextensions/voice-call/src/config.ts:343.gateway request timeout for voicecall.continuewhile the gateway-side turn may keep running until the real transcript timeout. The operator loses the transcript result and may retry into an already-active turn.continue, a larger provider-operation timeout forstart/call, or split long operations into accepted/operation-id polling.extensions/voice-call/index.ts:305respond(false, { error: "..." }), for example missing call/message data atextensions/voice-call/index.ts:305, manager failures atextensions/voice-call/index.ts:310, andto requiredatextensions/voice-call/index.ts:459. Gateway responses carry errors in the thirderrorargument, and the client rejects failed frames usingparsed.error?.message ?? "unknown error"atsrc/gateway/client.ts:865. The new CLI delegation rethrows non-transport gateway errors atextensions/voice-call/src/cli.ts:95.unknown errorinstead of the real cause such asto required,fromNumber not configured, provider setup errors, orAlready waiting for transcript. The pre-commit local-runtime path surfaced those manager errors directly.respond(false, undefined, errorShape(..., message)), or otherwise update the gateway method wrapper/client contract so plugin{ error }payload failures preserve their message for CLI callers.Expected Repair Surface
extensions/voice-call/src/cli.tsextensions/voice-call/index.tsextensions/voice-call/index.test.tsSource And Review Context
ClawSweeper report: https://github.com/openclaw/clawsweeper/blob/main/records/openclaw-openclaw/commits/464e57360262b7e0f9a705431bedd402fe8c356b.md
Commit under review: 464e573
Latest main at intake: 42d73fd
Original commit author: Peter Steinberger
GitHub author: @steipete
Highest severity: medium
Review confidence: high
Diff:
e8f9c3e6dedc8b664317264a0a15f6862488edf3..464e57360262b7e0f9a705431bedd402fe8c356bChanged files:
CHANGELOG.md,docs/cli/voicecall.md,docs/plugins/voice-call.md,extensions/voice-call/index.test.ts,extensions/voice-call/index.ts,extensions/voice-call/src/cli.tsCode read: changed files in full, current
mainversions of touched files, gateway RPC client/server framing, plugin service startup, voice-call manager outbound/timer/config pathsIssue context:
https://github.com/openclaw/openclaw/issues/72345Expected validation
pnpm check:changedClawSweeper already ran:
pnpm docs:listpnpm installbecausenode_moduleswas missingpnpm test extensions/voice-call/index.test.tspassed: 25 testspnpm exec oxfmt --check --threads=1 extensions/voice-call/src/cli.ts extensions/voice-call/index.ts extensions/voice-call/index.test.ts docs/cli/voicecall.md docs/plugins/voice-call.md CHANGELOG.mdpassedKnown review limits:
ClawSweeper Guardrails
mainbefore changing code.ClawSweeper 🐠 replacement reef notes:
fish notes: model gpt-5.5, reasoning medium; reviewed against a1018a1.