mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
refactor(config): config-surface reduction tranche 1 — retire dead keys, dedupe channel schemas, add growth ratchet (#111142)
* refactor(config): retire dead and aliased config keys via doctor migrations * refactor(config): dedupe bundled channel config schemas into shared builders * feat(config): add config-surface count ratchet to doc-baseline check * test(config): drop stale fixtures for retired config keys * fix(doctor): migrate only positive finite MCP timeout aliases * fix(migrate-hermes): emit canonical MCP timeouts only * fix(config): satisfy lint and contract gates
This commit is contained in:
committed by
GitHub
parent
33b50089cd
commit
58452de711
+1
-1
@@ -218,7 +218,7 @@ Retention behavior:
|
||||
## Migrating older jobs
|
||||
|
||||
<Note>
|
||||
If you have cron jobs from before the current delivery and store format, run `openclaw doctor --fix`. Doctor normalizes legacy cron fields (`jobId`, `schedule.cron`, top-level delivery fields including legacy `threadId`, payload `provider` delivery aliases) and migrates `notify: true` webhook fallback jobs from `cron.webhook` to explicit webhook delivery. Jobs that already announce to a chat keep that delivery and get a completion webhook destination. When `cron.webhook` is unset, the inert top-level `notify` marker is removed for jobs with no migration target (the existing delivery is preserved unchanged), so `doctor --fix` no longer keeps re-warning about them.
|
||||
If you have cron jobs from before the current delivery and store format, run `openclaw doctor --fix`. Doctor normalizes legacy cron fields (`jobId`, `schedule.cron`, top-level delivery fields including legacy `threadId`, payload `provider` delivery aliases) and migrates `notify: true` webhook fallback jobs from the retired raw `cron.webhook` value to explicit webhook delivery before removing that config key. Jobs that already announce to a chat keep that delivery and get a completion webhook destination. Without a legacy webhook, the inert top-level `notify` marker is removed for jobs with no migration target (the existing delivery is preserved unchanged), so `doctor --fix` no longer keeps re-warning about them.
|
||||
</Note>
|
||||
|
||||
## Common edits
|
||||
|
||||
+27
-29
@@ -368,7 +368,7 @@ Those saved definitions are for runtimes that OpenClaw launches or configures la
|
||||
- `add` builds a definition from flags and probes before saving unless `--no-probe` is set or OAuth authorization is needed first
|
||||
- runtime adapters decide which transport shapes they actually support at execution time
|
||||
- `enabled: false` keeps a server saved but excludes it from embedded runtime discovery
|
||||
- `timeout` and `connectTimeout` set per-server request and connection timeouts in seconds
|
||||
- `requestTimeoutMs` and `connectionTimeoutMs` set per-server request and connection timeouts in milliseconds
|
||||
- `supportsParallelToolCalls: true` marks servers that adapters can call concurrently
|
||||
- HTTP servers can use static headers, OAuth login, TLS verification control, and mTLS certificate/key paths
|
||||
- embedded OpenClaw exposes configured MCP tools in normal `coding` and `messaging` tool profiles; `minimal` still hides them, and `tools.deny: ["bundle-mcp"]` disables them explicitly
|
||||
@@ -620,8 +620,8 @@ Example config shape:
|
||||
"docs": {
|
||||
"url": "https://mcp.example.com",
|
||||
"transport": "streamable-http",
|
||||
"timeout": 20,
|
||||
"connectTimeout": 5,
|
||||
"requestTimeoutMs": 20000,
|
||||
"connectionTimeoutMs": 5000,
|
||||
"supportsParallelToolCalls": true,
|
||||
"auth": "oauth",
|
||||
"oauth": {
|
||||
@@ -663,17 +663,16 @@ If your MCP server genuinely needs one of the blocked variables, set it on the g
|
||||
|
||||
Connects to a remote MCP server over HTTP Server-Sent Events.
|
||||
|
||||
| Field | Description |
|
||||
| ------------------------------ | ---------------------------------------------------------------- |
|
||||
| `url` | HTTP or HTTPS URL of the remote server (required) |
|
||||
| `headers` | Optional key-value map of HTTP headers (for example auth tokens) |
|
||||
| `connectionTimeoutMs` | Per-server connection timeout in ms (optional) |
|
||||
| `connectTimeout` | Per-server connection timeout in seconds (optional) |
|
||||
| `timeout` / `requestTimeoutMs` | Per-server MCP request timeout in seconds or ms |
|
||||
| `auth: "oauth"` | Use MCP OAuth credentials saved by `openclaw mcp login` |
|
||||
| `sslVerify` | Set false only for explicitly trusted private HTTPS endpoints |
|
||||
| `clientCert` / `clientKey` | mTLS client certificate and key paths |
|
||||
| `supportsParallelToolCalls` | Hint that concurrent calls are safe for this server |
|
||||
| Field | Description |
|
||||
| --------------------------- | ---------------------------------------------------------------- |
|
||||
| `url` | HTTP or HTTPS URL of the remote server (required) |
|
||||
| `headers` | Optional key-value map of HTTP headers (for example auth tokens) |
|
||||
| `connectionTimeoutMs` | Per-server connection timeout in ms (optional) |
|
||||
| `requestTimeoutMs` | Per-server MCP request timeout in milliseconds |
|
||||
| `auth: "oauth"` | Use MCP OAuth credentials saved by `openclaw mcp login` |
|
||||
| `sslVerify` | Set false only for explicitly trusted private HTTPS endpoints |
|
||||
| `clientCert` / `clientKey` | mTLS client certificate and key paths |
|
||||
| `supportsParallelToolCalls` | Hint that concurrent calls are safe for this server |
|
||||
|
||||
Example:
|
||||
|
||||
@@ -684,7 +683,7 @@ Example:
|
||||
"remote-tools": {
|
||||
"url": "https://mcp.example.com",
|
||||
"auth": "oauth",
|
||||
"timeout": 20,
|
||||
"requestTimeoutMs": 20000,
|
||||
"headers": {
|
||||
"Authorization": "Bearer <token>"
|
||||
}
|
||||
@@ -768,18 +767,17 @@ If the provider rotates tokens or the authorization state gets stuck, run `openc
|
||||
|
||||
`streamable-http` is an additional transport option alongside `sse` and `stdio`. It uses HTTP streaming for bidirectional communication with remote MCP servers.
|
||||
|
||||
| Field | Description |
|
||||
| ------------------------------ | -------------------------------------------------------------------------------------- |
|
||||
| `url` | HTTP or HTTPS URL of the remote server (required) |
|
||||
| `transport` | Set to `"streamable-http"` to select this transport; when omitted, OpenClaw uses `sse` |
|
||||
| `headers` | Optional key-value map of HTTP headers (for example auth tokens) |
|
||||
| `connectionTimeoutMs` | Per-server connection timeout in ms (optional) |
|
||||
| `connectTimeout` | Per-server connection timeout in seconds (optional) |
|
||||
| `timeout` / `requestTimeoutMs` | Per-server MCP request timeout in seconds or ms |
|
||||
| `auth: "oauth"` | Use MCP OAuth credentials saved by `openclaw mcp login` |
|
||||
| `sslVerify` | Set false only for explicitly trusted private HTTPS endpoints |
|
||||
| `clientCert` / `clientKey` | mTLS client certificate and key paths |
|
||||
| `supportsParallelToolCalls` | Hint that concurrent calls are safe for this server |
|
||||
| Field | Description |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| `url` | HTTP or HTTPS URL of the remote server (required) |
|
||||
| `transport` | Set to `"streamable-http"` to select this transport; when omitted, OpenClaw uses `sse` |
|
||||
| `headers` | Optional key-value map of HTTP headers (for example auth tokens) |
|
||||
| `connectionTimeoutMs` | Per-server connection timeout in ms (optional) |
|
||||
| `requestTimeoutMs` | Per-server MCP request timeout in milliseconds |
|
||||
| `auth: "oauth"` | Use MCP OAuth credentials saved by `openclaw mcp login` |
|
||||
| `sslVerify` | Set false only for explicitly trusted private HTTPS endpoints |
|
||||
| `clientCert` / `clientKey` | mTLS client certificate and key paths |
|
||||
| `supportsParallelToolCalls` | Hint that concurrent calls are safe for this server |
|
||||
|
||||
OpenClaw config uses `transport: "streamable-http"` as the canonical spelling. CLI-native MCP `type: "http"` values are accepted when saved through `openclaw mcp set` and repaired by `openclaw doctor --fix` in existing config, but `transport` is what embedded OpenClaw consumes directly.
|
||||
|
||||
@@ -792,8 +790,8 @@ Example:
|
||||
"streaming-tools": {
|
||||
"url": "https://mcp.example.com/stream",
|
||||
"transport": "streamable-http",
|
||||
"connectTimeout": 10,
|
||||
"timeout": 30,
|
||||
"connectionTimeoutMs": 10000,
|
||||
"requestTimeoutMs": 30000,
|
||||
"headers": {
|
||||
"Authorization": "Bearer <token>"
|
||||
}
|
||||
|
||||
@@ -45,9 +45,6 @@ Aliases: `openclaw chat` and `openclaw terminal` invoke this command with
|
||||
- Launched from inside a configured agent workspace directory, TUI auto-selects
|
||||
that agent for the session key default (unless `--session` is explicitly
|
||||
`agent:<id>:...`).
|
||||
- To show the Gateway hostname in the footer for non-local URL-backed
|
||||
connections, run `openclaw config set tui.footer.showRemoteHost true`. Off by
|
||||
default; never shown for loopback or embedded local connections.
|
||||
- Local mode uses the embedded agent runtime directly. Most local tools work,
|
||||
but Gateway-only features are unavailable.
|
||||
- Local mode adds `/auth [provider]` to the TUI command surface.
|
||||
|
||||
Reference in New Issue
Block a user