Skip to content

chore(gateway): remove talk.speak orphan method declarations (#2724)#2727

Merged
alexey-pelykh merged 1 commit into
mainfrom
chore/remove-talk-speak-orphan-2724
Jun 17, 2026
Merged

chore(gateway): remove talk.speak orphan method declarations (#2724)#2727
alexey-pelykh merged 1 commit into
mainfrom
chore/remove-talk-speak-orphan-2724

Conversation

@alexey-pelykh

Copy link
Copy Markdown

What

Removes the two orphan talk.speak registry declarations — BASE_METHODS in src/gateway/server-methods-list.ts and WRITE_SCOPE in src/gateway/method-scopes.ts. No other changes (2 deletions).

Why

talk.speak is declared as a gateway method but has no handler: talkHandlers (src/gateway/server-methods/talk.ts, spread into coreGatewayHandlers) defines only talk.config and talk.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.ts23/23 pass. Its "classifies every listed gateway method name" check is the consistency invariant (every advertised method must carry a scope mapping); removing talk.speak from 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-confirms talk.speak had no handler.
  • pnpm check clean (format + tsgo typecheck + lint).

Scope note

talk.speak is still referenced in docs/ (the Talk-mode playback flow in docs/nodes/talk.md + the protocol method list in docs/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

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
alexey-pelykh enabled auto-merge (squash) June 17, 2026 15:21
@alexey-pelykh
alexey-pelykh merged commit 8c1aa92 into main Jun 17, 2026
17 checks passed
@alexey-pelykh
alexey-pelykh deleted the chore/remove-talk-speak-orphan-2724 branch June 17, 2026 15:27
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant