fix(voice-call): add missing fields to plugin config JSON Schema#38892
Closed
giumex wants to merge 1 commit into
Closed
fix(voice-call): add missing fields to plugin config JSON Schema#38892giumex wants to merge 1 commit into
giumex wants to merge 1 commit into
Conversation
The plugin manifest configSchema (openclaw.plugin.json) was missing several fields that the Zod schema and runtime code support, causing the gateway to reject valid config with additionalProperties errors. Add: - webhookSecurity object (allowedHosts, trustForwardingHeaders, trustedProxyIPs) - streaming sub-fields (preStartTimeoutMs, maxPendingConnections, maxPendingConnectionsPerIp, maxConnections) - staleCallReaperSeconds
Contributor
Greptile SummaryThis PR fixes a schema alignment bug in the voice-call plugin manifest ( Key changes:
Confidence Score: 5/5
Last reviewed commit: aa531db |
17 tasks
steipete
added a commit
that referenced
this pull request
Mar 7, 2026
…lds (#38892) Co-authored-by: giumex <[email protected]>
Contributor
|
Landed on What was landed:
Validation before commit:
Thanks for the fix and clear write-up, @giumex. |
Contributor
|
Closed as landed in cf290e31bd4f99dd58714ade6e36a38b6f9089ec. Thanks again! |
vincentkoc
pushed a commit
to BryanTegomoh/openclaw-contrib
that referenced
this pull request
Mar 8, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
openperf
pushed a commit
to openperf/moltbot
that referenced
this pull request
Mar 8, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
mcaxtr
pushed a commit
to mcaxtr/openclaw
that referenced
this pull request
Mar 8, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
GordonSH-oss
pushed a commit
to GordonSH-oss/openclaw
that referenced
this pull request
Mar 9, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
jenawant
pushed a commit
to jenawant/openclaw
that referenced
this pull request
Mar 10, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
V-Gutierrez
pushed a commit
to V-Gutierrez/openclaw-vendor
that referenced
this pull request
Mar 17, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
alexey-pelykh
pushed a commit
to remoteclaw/remoteclaw
that referenced
this pull request
Mar 21, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]> (cherry picked from commit cf290e3)
alexey-pelykh
pushed a commit
to remoteclaw/remoteclaw
that referenced
this pull request
Mar 21, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]> (cherry picked from commit cf290e3)
alexey-pelykh
pushed a commit
to remoteclaw/remoteclaw
that referenced
this pull request
Mar 21, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]> (cherry picked from commit cf290e3)
lovewanwan
pushed a commit
to lovewanwan/openclaw
that referenced
this pull request
Apr 28, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
ogt-redknie
pushed a commit
to ogt-redknie/OPENX
that referenced
this pull request
May 2, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
github-actions Bot
pushed a commit
to Desicool/openclaw
that referenced
this pull request
May 9, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
github-actions Bot
pushed a commit
to Desicool/openclaw
that referenced
this pull request
May 24, 2026
…lds (openclaw#38892) Co-authored-by: giumex <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The plugin manifest configSchema (openclaw.plugin.json) was missing several fields that the Zod schema and runtime code support, causing the gateway to reject valid config with additionalProperties errors.
Add:
Summary
openclaw.plugin.json) declares"additionalProperties": falsebut is missing several config fields that the Zod schema, runtime code, and official docs all support. The gateway's AJV validation rejects these fields before the plugin ever loads, making documented config likewebhookSecurityandstreamingsecurity limits unusable.configSchemainextensions/voice-call/openclaw.plugin.jsonso AJV accepts them, and the existing Zod validation + runtime code can use them as designed.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
User-visible / Behavior Changes
Users can now set these config fields without the gateway rejecting them on startup:
webhookSecurity.allowedHostswebhookSecurity.trustForwardingHeaderswebhookSecurity.trustedProxyIPsstreaming.preStartTimeoutMsstreamingstartframestreaming.maxPendingConnectionsstreamingstreaming.maxPendingConnectionsPerIpstreamingstreaming.maxConnectionsstreamingstaleCallReaperSecondsNo defaults change. Users who don't set these fields are unaffected.
Security Impact (required)
NoNoNoNoNoNote: This fix unblocks security-hardening config (
webhookSecurity, streaming rate limits) that was already implemented in runtime code but unreachable due to the schema gap.Repro + Verification
Environment
Steps to reproduce (before fix)
webhookSecurity,streaming.maxPendingConnections,staleCallReaperSeconds, etc.) to voice-call plugin configopenclaw gateway run)Expected
Actual (before fix)
additionalPropertiesviolation for the undeclared fieldsAfter fix
openclaw.plugin.json. Gateway starts successfully and the plugin loads with all documented fields accepted.Evidence
Root cause trace:
src/plugins/loader.ts:778-787callsvalidatePluginConfigwith the manifest'sconfigSchemasrc/plugins/schema-validator.ts:21-25initializes AJV withremoveAdditional: false"additionalProperties": false(line 164) rejectswebhookSecurityandstaleCallReaperSecondsstreamingsub-object"additionalProperties": false(line 318) rejectspreStartTimeoutMs,maxPendingConnections,maxPendingConnectionsPerIp,maxConnectionscontinueat line 787)Meanwhile, the Zod schema (
extensions/voice-call/src/config.ts:253-350) and all runtime consumers (runtime.ts:112,125,webhook.ts:87-90,media-stream.ts:97-101) fully support these fields.Human Verification (required)
webhookSecurity,streamingsecurity limits, andstaleCallReaperSecondsall present in config. Before the fix, the same config caused a gateway startup failure. Also ranextensions/voice-call/src/config.test.ts(7 tests),src/config/config.plugin-validation.test.ts(8 tests),src/plugins/voice-call.plugin.test.ts(7 tests),src/plugins/schema-validator.test.ts(7 tests) -- all pass.VoiceCallConfigSchema(Zod) against theconfigSchema(JSON Schema).allowedHosts), but the runtime code paths are already covered by existing unit tests.Compatibility / Migration
Yes-- only adds new accepted properties; existing configs are unaffectedNoNoFailure Recovery (if this breaks)
extensions/voice-call/openclaw.plugin.jsonRisks and Mitigations
config.ts) remains the authoritative runtime validator and will still reject truly invalid values (wrong types, out-of-range numbers, etc.) even if AJV passes them through.