docs(gateway): reconcile RPC surface + local SecretRef resolution (#2724)#2740
Merged
Merged
Conversation
) The fork resolves SecretRefs locally and the gateway secrets.resolve snapshot RPC was dropped in #2728; protocol.md still advertised methods #2720 removed from BASE_METHODS. Reconcile the docs to the fork's actual surface (verified each line against the live code, not a mechanical edit). secrets.md + qr.md (local SecretRef resolution): - Command paths resolve SecretRefs locally and in-process (env/file/exec via src/secrets/resolve.ts + gateway/resolve-configured-secret-input-string.ts), not via a gateway `secrets.resolve` snapshot RPC (removed in #2728). `qr` resolves all refs locally (qr-cli.ts + setup-code.ts) with no gateway client. - Drop the obsolete qr `secrets.resolve` gateway-version-skew note. protocol.md (method families — verified vs BASE_METHODS/GATEWAY_EVENTS/handlers): - Remove methods #2720 dropped from BASE_METHODS: models.list, skills.search/detail/bins, the plugin.approval.* methods, and commands.list. - Remove orphaned sessions.usage* (only a method-scopes classification, no handler) and exec.approval.get/list (no BASE_METHODS entry, no handler). - KEEP the plugin.approval.requested/resolved EVENTS (in GATEWAY_EVENTS) — the methods were removed, the events survive. Verified the docs build (astro/starlight, 319 pages) and rebrand-gate pass. Part of #2724. Co-Authored-By: Claude Opus 4.8 (1M context) <[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.
Part of #2724 (gateway-suite remediation — docs accuracy). One slice of a multi-part tracker — this PR intentionally leaves #2724 open for the remaining parts.
Reconciles the gateway docs to the fork's actual RPC surface and local SecretRef resolution. Every changed line was verified against the live fork code (
BASE_METHODS,GATEWAY_EVENTS, the real handlers, and the resolver modules) — not a mechanical find-replace.(a) Local SecretRef resolution —
docs/cli/qr.md,docs/gateway/secrets.mdThe fork resolves SecretRefs locally and in-process via
src/secrets/resolve.ts(env/file/exec) andsrc/gateway/resolve-configured-secret-input-string.ts. The gatewaysecrets.resolvesnapshot RPC was dropped in #2728 (it had no handler) — there is no RPC path anymore.secrets.md§ Command-path resolution: rewritten to describe local, in-process resolution; removed the "gateway snapshot RPC", the "read from the active snapshot / gateway-unavailable fallback" framing, and theGateway RPC method used by these command paths: secrets.resolveline. The strict (fail-fast) vs read-only (degrade) distinction is kept — both verified:qr --remotefails fast (resolveRequiredConfiguredSecretRefInputStringthrows); theconfigured but unavailable in this command pathdegrade diagnostics are real (commands/channels/status.ts,commands/status-all/channels.ts,commands/doctor-config-flow.ts,gateway/credentials.ts).qr.md: line 44 rewritten to local resolution (qrresolves all refs in-process viaqr-cli.ts+pairing/setup-code.ts, runningexecproviders locally; no gateway client); removed the obsoletesecrets.resolvegateway-version-skew note.(b) RPC method families —
docs/gateway/protocol.mdRemoved the methods #2720 dropped from
BASE_METHODS(confirmed absent fromBASE_METHODSand with no handler incoreGatewayHandlers):models.listserver-startup-unavailable-methods.ts)skills.search,skills.detail,skills.binsplugin.approval.request/.list/.waitDecision/.resolve(methods)commands.listMethods-vs-events distinction preserved: the
plugin.approval.requested/plugin.approval.resolvedevents are inGATEWAY_EVENTS(server-methods-list.ts:139-140) and remain documented under "Common event families".Verified ambiguous families (the handlers do not confirm them → corrected):
sessions.usage/sessions.usage.timeseries/sessions.usage.logs: not in BASE_METHODS, no handler anywhere repo-wide — only an orphan classification inmethod-scopes.ts:76-78. Removed.exec.approval.get/exec.approval.list: not in BASE_METHODS, not in method-scopes, no handler. Removed from the exec-approval line (keptexec.approval.request/resolve+waitDecision, all in BASE_METHODS).Also dropped the now-empty "Node helper methods" subsection (it only documented
skills.bins) and the straymodelstoken in the "## Scope" capability list.Verification
astro buildof the docs site passes (319 pages, exit 0).openclawleakage introduced).0.38.0 --check: all three files correctly formatted.Out-of-scope findings (flagged, NOT changed — surgical 3-file scope)
These reference removed methods but live outside the three named files; flagging for a future #2724 pass (or confirm if they should be folded in):
docs/web/control-ui.md:113— listsmodels.listas a manual debug RPC call.docs/tools/exec-approvals.md:261— describesskills.binsover the Gateway RPC.docs/gateway/bridge-protocol.md:52— listsskills.binsin the scoped gateway RPC set.docs/gateway/secrets.md§ Activation triggers (~lines 387, 396) — reference baresecrets.reload(also not in BASE_METHODS); likely the CLIremoteclaw secrets reloadcommand rather than the gutted RPC.🤖 Generated with Claude Code