docs: say what the connection reads from the voice credential

It reads the token, model, transcription model and tier for diagnostics and
cost accounting, so the credential is not opaque to it. Also lists requestToken's
authMode option in APPLICATION.md.
This commit is contained in:
Sameh Khamis committed 2026-10-14 11:59:51 -07:00
1 parent af95f957ec
commit afb3a92914
2 files changed
+3 -3

No files matched your search

+1 -1
View File
@@ -158,7 +158,7 @@ routing and regional caches. Request parameters cannot override these endpoints.
Voice controls accept an action runner and a controller factory through Voice controls accept an action runner and a controller factory through
`createVoiceCommands` (`./voice/commands`). The default Realtime controller owns `createVoiceCommands` (`./voice/commands`). The default Realtime controller owns
microphone tracks, playback, push-to-talk, tool cancellation and radio handoff. microphone tracks, playback, push-to-talk, tool cancellation and radio handoff.
Its backend supplies `requestToken({ tier, signal })` and Its backend supplies `requestToken({ tier, authMode, signal })` and
`negotiate({ offerSdp, credential, signal })`. The Realtime-compatible adapter `negotiate({ offerSdp, credential, signal })`. The Realtime-compatible adapter
(`./voice/realtime-backend`) accepts separate token and connection transports (`./voice/realtime-backend`) accepts separate token and connection transports
and endpoints. Only the short-lived client secret reaches the SDP endpoint. and endpoints. Only the short-lived client secret reaches the SDP endpoint.
+2 -2
View File
@@ -26,8 +26,8 @@ The backend is replaceable per deployment: `realtimeController.js` accepts it as
`backend` option and falls back to `createRealtimeBackend()`. Its two method `backend` option and falls back to `createRealtimeBackend()`. Its two method
signatures live with [application construction](APPLICATION.md); what belongs here signatures live with [application construction](APPLICATION.md); what belongs here
is the ownership. The connection is the backend's only consumer in the application. is the ownership. The connection is the backend's only consumer in the application.
The resolved credential is opaque to the connection and is handed to `negotiate` The connection reads credential metadata for diagnostics and cost accounting,
whole. Client-secret expiry is refused inside the backend, not by the connection. then passes the complete credential unchanged to `negotiate`. Client-secret expiry is refused inside the backend, not by the connection.
`realtimeOwners.test.mjs` drives whole sessions through a substitute that `realtimeOwners.test.mjs` drives whole sessions through a substitute that
implements only those two methods. implements only those two methods.