chore(gateway): remove talk.speak orphan method declarations (#2724)#2727
Merged
Conversation
talk.speak was declared in server-methods-list.ts (BASE_METHODS) and method-scopes.ts (WRITE_SCOPE) but has no handler — talkHandlers (server-methods/talk.ts) defines only talk.config and talk.mode; the speak capability was gutted at the fork. The declarations advertised a gateway method that always failed to dispatch. Removing both keeps the method-list <-> scope-map consistency invariant balanced (method-scopes.test.ts 23/23; "classifies every listed gateway method name" + "classifies every exposed core gateway handler method" both pass). pnpm check clean (format + tsgo + lint). One item from #2724. Stale talk.speak refs remain in docs/ (the gutted Talk-mode playback mechanism) — separate informed reconciliation, not here. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
alexey-pelykh
enabled auto-merge (squash)
June 17, 2026 15:21
alexey-pelykh
added a commit
that referenced
this pull request
Jun 17, 2026
…lk.speak/secrets docs (#2724) (#2728) secrets.resolve was advertised in BASE_METHODS + classified in method-scopes (ADMIN_SCOPE) but has no handler (server-methods/secrets.ts was gutted) and zero production callers (grep: only the two registry/scope sites). #2720 removed the sibling secrets.reload but deliberately KEPT secrets.resolve, deferring the call to a dedicated evaluation — this resolves that #2724 item: REMOVE. Advertising a handler-less method is strictly worse than honest non-advertisement: the requiredMethods pre-check (call.ts) would pass, then dispatch hard-errors "unknown method". SecretRef resolution in the fork is local (src/secrets/resolve.ts, gateway/resolve-configured-secret-input-string.ts), wholly independent of the RPC. Mirrors the talk.speak cleanup (#2727). Docs reconciled to the fork's actual behavior: - docs/nodes/talk.md + docs/gateway/protocol.md: Talk-mode playback is synthesized on-device by the native apps (ElevenLabs direct, with the platform's system TTS as fallback), not via the gutted talk.speak gateway RPC; the gateway is config/state only (talk.config, talk.mode). - docs/gateway/protocol.md: dropped the gutted secrets.reload + secrets.resolve bullets from the method-families reference and retitled the subsection. Validation: gateway method-scopes + call suites 80/80 (the method-list <-> scope-map consistency invariant holds); tsgo + format:check clean; no rebrand-gate trip. Deeper reconciliation tracked as follow-ups on #2724 (need subsystem-accurate rewrites, not mechanical edits): (A) secrets.md/qr.md command-path SecretRef- resolution docs still name secrets.resolve as the gateway snapshot RPC, but the fork resolves locally; (B) protocol.md method-families list still documents other #2720-gutted methods (models.list, skills.search/detail/bins, plugin.approval.*). 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.
What
Removes the two orphan
talk.speakregistry declarations —BASE_METHODSinsrc/gateway/server-methods-list.tsandWRITE_SCOPEinsrc/gateway/method-scopes.ts. No other changes (2 deletions).Why
talk.speakis declared as a gateway method but has no handler:talkHandlers(src/gateway/server-methods/talk.ts, spread intocoreGatewayHandlers) defines onlytalk.configandtalk.mode. The speak capability was gutted at the fork, so these two declarations advertised a method that always failed to dispatch.Safety
src/gateway/method-scopes.test.ts— 23/23 pass. Its "classifies every listed gateway method name" check is the consistency invariant (every advertised method must carry a scope mapping); removingtalk.speakfrom both sites keeps it balanced. Its "classifies every exposed core gateway handler method" check confirms no real handler was de-classified by the scope-map removal — i.e. it empirically re-confirmstalk.speakhad no handler.pnpm checkclean (format + tsgo typecheck + lint).Scope note
talk.speakis still referenced indocs/(the Talk-mode playback flow indocs/nodes/talk.md+ the protocol method list indocs/gateway/protocol.md). Those describe the gutted gateway-side synthesis mechanism and need an informed reconciliation of how Talk-mode playback works post-gut — deferred to a separate change, not bundled into this registry cleanup.One item from #2724.
🤖 Generated with Claude Code