Repository navigation
Conversation
…l policy as gateway-config A dedicated Gateway's tool policy step validates the composed configuration before OpenClaw starts and mapped every invalid report to the gateway-tool-policy hold, whose log line blames the runtime image and the tool allowlist (finding 3045). When no reported issue concerns a setting the step composes, hold check gateway-config (UNAVAILABLE) with the log line and setting paths of the embedded Gateway's hold from #4313 instead. Policy issues, unknown roots and validator failures keep the tool policy hold.
…assification Drop the single-quoted key match: OpenClaw quotes refused keys with double quotes in both its core and plugin schema messages.
Contributor
|
🦞👀 Pull request received. I will update this pull request when review starts. |
…r-neutral module Docker's wrapper now embeds it too; importing it from the Kubernetes provider widened the module-boundary exception (module-policy stale-exception).
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.
Problem
A dedicated Gateway (Codex, or a dedicated OpenClaw worker) composes its tool policy and runs
openclaw config validate --jsonbefore OpenClaw starts. Every invalid report was held asgateway-tool-policy(INCOMPATIBLE_RESPONSE) with one log line: "The dedicated Gateway cannot apply its required tool policy. It remains unready; use the supporting OCE runtime image and a valid Gateway tool allowlist."So a Dedicated Codex Agent whose Configuration had an invalid plugin entry (a
beamentry withoutmirror.endpoint/mirror.catalogs, even withenabled: false) failed fast, but the log gave the wrong cause and the wrong next step, and named no setting. An embedded Gateway with the same entry already logs the right line since #4313 (checkgateway-config).Change
gateway-tool-policy.ts: when the validator reportsvalid: falseand no issue concerns a setting the tool policy step composes, the step now holds checkgateway-config(codeUNAVAILABLE). The composed settings aretools.gatewayPolicy,agents.defaults.modelSelectionScope,cron.triggers.enabledandplugins.entries.codex.config.codexDynamicToolsExclude.Unrecognized key: "enabled"atcron.triggers).gateway-tool-policyhold as before: an issue with no setting path (<root>), a report with no issues, a validator that failed or printed no report, a policy that composition itself refuses, and an unknown runtime source. Thegateway-state-lockhold (finding 2864) is unchanged.invalidOpenClawConfigurationLinenext toopenClawConfigIssues, both now in the provider-neutralcompute/openclaw-config-issues.ts, so Docker does not import them from the Kubernetes provider): up to five setting paths, schema messages only where they carry no value, and the same remedy. Only the opening differs: "The OpenClaw Gateway did not start, and OpenClaw reports its configuration invalid (...)". fix(compute): hold a gateway configuration openclaw refuses at startup #4313's hold now builds its line with the same helper, and its text does not change.Verification
runtime-image-managed-files.test.mjsnow runs fix(compute): hold a gateway configuration openclaw refuses at startup #4313's beam case for an embedded and a dedicated Codex Kubernetes Gateway. The dedicated case holdsgateway-config/UNAVAILABLEabout 2.3 s after the container starts and logs the beam paths. The log never contains the configured value or the tool policy line.enabled: falseandtrue) was held asgateway-tool-policy/INCOMPATIBLE_RESPONSEwith the tool policy line. With the fix it holdsgateway-config/UNAVAILABLEat 2.7 s with "The OpenClaw Gateway did not start, and OpenClaw reports its configuration invalid (plugins.entries.beam.config.mirror.endpoint: must have required property 'endpoint'; plugins.entries.beam.config.mirror.catalogs: must have required property 'catalogs'). ...". A valid Dedicated Codex configuration still becomes ready.plugin-runtime-policy.test.mjs, for Kubernetes dedicated OpenClaw, Kubernetes dedicated Codex and Docker dedicated Codex):gateway-configcases: settings outside the policy, and a refused key next to a composed setting.gateway-tool-policycases: a composed policy issue next to a beam issue, an invalid Codex tool exclusion, a runtime that refuses a composed key, and a report without issues.gateway-configcases fail on main and pass here.tests/helpers/openclaw-config-validation.mjs, whichplugin-compute.test.mjs(fix(compute): hold a gateway configuration openclaw refuses at startup #4313's hold) shares.<root>issue, and a<root>issue never classifies asgateway-config.plugin-runtime-policy.test.mjs,plugin-compute.test.mjs, and both runtime image hold tests.Risks
<root>or with an unusual message staysgateway-tool-policy, as before.agents.defaults.modelSelectionScopeis now held asgateway-config, namingagents.defaults. That is the Agent's own setting.