You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Telegram/forum topics: restore reply routing to the active topic and keep ACP `sessions_spawn(..., thread=true, mode="session")` bound to that same topic instead of falling back to root chat or losing follow-up routing. (#56060) Thanks @one27001.
131
+
- Config/SecretRef + Control UI: harden SecretRef redaction round-trip restore, block unsafe raw fallback (force Form mode when raw is unavailable), and preflight submitted-config SecretRefs before config write RPC persistence. (#58044) Thanks @joshavant.
-`config.patch` (merge a partial update + restart + wake)
910
911
-`update.run` (run update + restart + wake)
911
912
912
913
Tip: when calling `config.set`/`config.apply`/`config.patch` directly, pass `baseHash` from
913
914
`config.get` if a config already exists.
915
+
Tip: these config write RPCs preflight active SecretRef resolution for refs in the submitted config payload and reject writes when an effectively active submitted ref is unresolved.
Copy file name to clipboardExpand all lines: docs/gateway/secrets.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -364,6 +364,7 @@ Runtime-minted or rotating credentials and OAuth refresh material are intentiona
364
364
- Field without a ref: unchanged.
365
365
- Field with a ref: required on active surfaces during activation.
366
366
- If both plaintext and ref are present, ref takes precedence on supported precedence paths.
367
+
- The redaction sentinel `__OPENCLAW_REDACTED__` is reserved for internal config redaction/restore and is rejected as literal submitted config data.
367
368
368
369
Warning and audit signals:
369
370
@@ -383,12 +384,14 @@ Secret activation runs on:
383
384
- Config reload hot-apply path
384
385
- Config reload restart-check path
385
386
- Manual reload via `secrets.reload`
387
+
- Gateway config write RPC preflight (`config.set` / `config.apply` / `config.patch`) for active-surface SecretRef resolvability within the submitted config payload before persisting edits
386
388
387
389
Activation contract:
388
390
389
391
- Success swaps the snapshot atomically.
390
392
- Startup failure aborts gateway startup.
391
393
- Runtime reload failure keeps the last-known-good snapshot.
394
+
- Write-RPC preflight failure rejects the submitted config and keeps both disk config and active runtime snapshot unchanged.
392
395
- Providing an explicit per-call channel token to an outbound helper/tool call does not trigger SecretRef activation; activation points remain startup, reload, and explicit `secrets.reload`.
- Config: apply + restart with validation (`config.apply`) and wake the last active session
89
89
- Config writes include a base-hash guard to prevent clobbering concurrent edits
90
-
- Config schema + form rendering (`config.schema`, including plugin + channel schemas); Raw JSON editor remains available
90
+
- Config writes (`config.set`/`config.apply`/`config.patch`) also preflight active SecretRef resolution for refs in the submitted config payload; unresolved active submitted refs are rejected before write
91
+
- Config schema + form rendering (`config.schema`, including plugin + channel schemas); Raw JSON editor is available only when the snapshot has a safe raw round-trip
92
+
- If a snapshot cannot safely round-trip raw text, Control UI forces Form mode and disables Raw mode for that snapshot
93
+
- Structured SecretRef object values are rendered read-only in form text inputs to prevent accidental object-to-string corruption
help: "Discord bot token used for gateway and REST API authentication for this provider account. Keep this secret out of committed config and rotate immediately after any leak.",
0 commit comments