All profile-scoped routing must use the mechanism your IPC/bridge/router actually consumes (e.g., an outer request field or a ...profileScoped() wrapper). Do not attempt to “scope” routing by placing profile inside nested request bodies that the backend simply binds/forwards, or by passing profile only as a query param unless the bridge explicitly treats it as a routing key.

Apply the rule:

Example pattern:

return window.hermesDesktop.api<Response>({
  ...profileScoped(), // routing key understood by the bridge/router
  path: '/api/audio/speak',
  method: 'POST',
  body: { text }, // backend binding; don’t rely on body nesting for routing
});