openclaw - ✅(Solved) Fix tools.exec.approvalRunningNoticeMs is documented but rejected by the 2026.3.24 config schema [1 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#57270Fetched 2026-04-08 01:51:48
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Timeline (top)
cross-referenced ×1referenced ×1

The OpenClaw docs describe tools.exec.approvalRunningNoticeMs as a supported config key for approval-gated exec follow-up notices, but the local 2026.3.24 (cff6dc9) build rejects that field as an unrecognized key under tools.exec.

This looks like a docs/schema mismatch rather than an operator mistake.

Root Cause

This is easy to trip over because the documented knob is directly relevant when testing approval-gated exec follow-up behavior. Operators trying to tune the running-notice delay will hit a hard config failure even though they are following the docs.

Fix Action

Fix / Workaround

Current operator workaround

PR fix notes

PR #57293: fix(config): add approvalRunningNoticeMs to ToolExecBaseShape

Description (problem / solution / changelog)

Summary

  • tools.exec.approvalRunningNoticeMs was documented and implemented in the runtime but missing from ToolExecBaseShape in the Zod schema, so ToolExecSchema (used for the global tools.exec path) rejected it as an unrecognized key under .strict() mode
  • Moves approvalRunningNoticeMs into ToolExecBaseShape so both the global tools.exec schema (ToolExecSchema) and per-agent exec config (AgentToolExecSchema) accept the field
  • Regenerates schema.base.generated.ts to reflect the fix

Fixes

Closes #57270

Root cause

In zod-schema.agent-runtime.ts, ToolExecBaseShape is the shared shape for both ToolExecSchema (tools.exec) and AgentToolExecSchema (per-agent exec). The field was accidentally added only to AgentToolExecSchema extra fields rather than to the shared base, so it was accepted for agent-level config but rejected for global tools.exec.

Test plan

  • pnpm config:schema:check passes
  • vitest run src/config/ — 889 tests pass; 1 pre-existing Windows symlink failure in load-channel-config-surface.test.ts unrelated to this change
  • vitest run src/config/schema.help.quality.test.ts passes (20/20)
  • vitest run src/config/schema.base.generated.test.ts passes
  • Runtime: ToolsSchema.safeParse({ exec: { approvalRunningNoticeMs: 3000 } }) returns success: true
  • Runtime: .strict() mode still rejects unknown keys

AI-assisted

  • Generated with Claude Code (claude-sonnet-4-6)
  • Testing level: fully tested (runtime + unit tests)
  • I understand what the code does

🤖 Generated with Claude Code

Changed files

  • src/config/schema.base.generated.ts (modified, +10/-5)
  • src/config/zod-schema.agent-runtime.ts (modified, +1/-1)
  • src/daemon/service-types.ts (modified, +1/-0)
  • src/daemon/systemd-unit.test.ts (modified, +35/-0)
  • src/daemon/systemd-unit.ts (modified, +10/-0)
  • src/daemon/systemd.ts (modified, +41/-2)

Code Example

{
  "tools": {
    "exec": {
      "host": "gateway",
      "security": "allowlist",
      "ask": "on-miss",
      "approvalRunningNoticeMs": 3000
    }
  }
}

---

openclaw config get tools.exec

---

Invalid config at /home/dcleres/.openclaw/openclaw.json:
- tools.exec: Unrecognized key: "approvalRunningNoticeMs"
Config invalid
RAW_BUFFERClick to expand / collapse

Summary

The OpenClaw docs describe tools.exec.approvalRunningNoticeMs as a supported config key for approval-gated exec follow-up notices, but the local 2026.3.24 (cff6dc9) build rejects that field as an unrecognized key under tools.exec.

This looks like a docs/schema mismatch rather than an operator mistake.

Version

  • OpenClaw 2026.3.24 (cff6dc9)
  • host: Linux

Docs claim

The exec tool docs currently state:

tools.exec.approvalRunningNoticeMs (default: 10000): emit a single “running” notice when an approval-gated exec runs longer than this (0 disables).

Relevant doc path:

  • docs/tools/exec.md

Reproduction

  1. Add this field under tools.exec:
{
  "tools": {
    "exec": {
      "host": "gateway",
      "security": "allowlist",
      "ask": "on-miss",
      "approvalRunningNoticeMs": 3000
    }
  }
}
  1. Run any config-consuming CLI command, for example:
openclaw config get tools.exec

The command fails during config load before it can return the tools.exec object.

Actual result

The runtime rejects the config with:

Invalid config at /home/dcleres/.openclaw/openclaw.json:
- tools.exec: Unrecognized key: "approvalRunningNoticeMs"
Config invalid

This is a hard config failure, not a warning.

Expected result

One of these should be true:

  1. the config schema accepts tools.exec.approvalRunningNoticeMs, or
  2. the docs stop documenting it at that path for this build

Why this matters

This is easy to trip over because the documented knob is directly relevant when testing approval-gated exec follow-up behavior. Operators trying to tune the running-notice delay will hit a hard config failure even though they are following the docs.

Suspected root cause

The docs and runtime schema appear to have drifted. The key may have moved, been removed, or only exist in another schema surface, but the current tools.exec config validator on 2026.3.24 does not accept it.

Suggested fix

Either:

  • restore the field in the runtime schema at tools.exec.approvalRunningNoticeMs, or
  • update the docs to point at the correct supported path or remove the field for builds where it is not available

Current operator workaround

Do not set tools.exec.approvalRunningNoticeMs on 2026.3.24. The approval flow can still be tested and used successfully, but this specific knob must be treated as unsupported on this build until the docs and schema match again.

Local verification already performed

  • live approval-gated exec flow works on this install
  • Telegram approval routing works after enablement
  • approvalRunningNoticeMs specifically fails at config-parse time when placed under tools.exec

Extra note

This issue is independent of the earlier approval follow-up heartbeat fix. The approval path itself can work correctly while this specific docs-described knob still fails schema validation.

extent analysis

Fix Plan

To fix the issue, we need to update the runtime schema to include the missing field approvalRunningNoticeMs under tools.exec. Here are the steps:

  • Update the schema definition for tools.exec to include the approvalRunningNoticeMs field.
  • Add a default value for the field, e.g., 10000, as mentioned in the docs.
  • Update the config validation logic to accept the new field.

Example code snippet (in JSON Schema format):

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "tools": {
      "type": "object",
      "properties": {
        "exec": {
          "type": "object",
          "properties": {
            "approvalRunningNoticeMs": {
              "type": "integer",
              "default": 10000,
              "description": "emit a single 'running' notice when an approval-gated exec runs longer than this (0 disables)"
            }
          }
        }
      }
    }
  }
}

Alternatively, if the field is not intended to be part of the tools.exec schema, update the docs to reflect the correct supported path or remove the field altogether.

Verification

To verify the fix, try adding the approvalRunningNoticeMs field under tools.exec in the config file and run a config-consuming CLI command, e.g., openclaw config get tools.exec. The command should no longer fail with a schema validation error.

Extra Tips

  • Make sure to update the docs to reflect any changes made to the schema or config validation logic.
  • Consider adding automated tests to ensure that the schema and config validation logic are correctly implemented and updated.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix tools.exec.approvalRunningNoticeMs is documented but rejected by the 2026.3.24 config schema [1 pull requests, 1 participants]