Brooklyn Nicholson
e40f293796
fix(desktop): carry STT warm-up readiness into transcription and enforce lease ownership
...
Addresses the four unresolved P2 review threads on #106002 .
- Readiness barrier: the recorder stop() and the conversation loop turn
paths await the warm-up issued at mic-open before submitting audio to
transcription, so a cold model load settles inside the lease request own
budget instead of eating the transcription request 180s decode deadline
(#105955 review).
- Warm-only idle eviction: warm_stt_provider() registers the warmed model
with the existing idle-unload watcher, so stt.local.unload_after_idle_seconds
is enforced for a model loaded only by warm-up (mic open then cancel) and on
reload after a prior watcher exited.
- Readiness is validated, never remembered: the lease dedupe now separates
registration from warm-up validation — an HTTP 200 action "error" body
clears readiness and retries the next acquire, and a validated warm-up is
only trusted for a short window so an idle eviction mid-conversation
re-warms on the next listening start. Cloud noop stays a valid outcome.
- Lease ownership: queued operations and dedupe state key on the owning
connection/profile captured at intent time and carried through the wire
call (setSttLease gains the same owner scope speakText uses), so switching
gateway/profile mid-flight releases the lease on the backend that holds it
and a new owner acquire warms its own backend.
2026-09-30 15:16:40 -05:00
..
2026-09-29 02:06:58 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 12:43:03 -07:00
2026-09-29 22:57:48 -04:00
2026-09-29 12:25:29 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 10:21:41 -07:00
2026-09-30 10:00:37 -05:00
2026-09-30 10:00:37 -05:00
2026-09-28 06:06:17 -07:00
2026-09-29 15:58:55 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-23 20:04:27 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 12:43:03 -07:00
2026-09-24 11:50:30 -04:00
2026-09-23 10:13:26 -04:00
2026-09-23 07:36:31 -04:00
2026-09-23 07:36:31 -04:00
2026-09-28 03:34:07 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 03:34:07 -07:00
2026-09-24 01:55:51 -04:00
2026-09-24 03:42:38 -04:00
2026-09-29 14:12:41 -04:00
2026-09-29 18:33:44 +05:30
2026-09-29 19:44:05 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 06:42:00 -07:00
2026-09-28 10:11:33 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:11:33 -07:00
2026-09-28 19:41:57 -04:00
2026-09-28 02:32:05 +05:30
2026-09-28 10:21:41 -07:00
2026-09-27 18:17:20 +05:30
2026-09-23 10:42:18 -04:00
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 12:25:29 -05:00
2026-09-29 02:06:58 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-25 14:58:09 -04:00
2026-09-29 03:28:46 +05:30
2026-09-28 10:21:41 -07:00
2026-09-27 01:10:56 +05:30
2026-09-26 22:26:05 +05:30
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-30 00:59:14 -04:00
2026-09-28 10:21:41 -07:00
2026-09-26 18:27:10 -05:00
2026-09-26 11:16:45 -07:00
2026-09-29 15:08:07 +05:30
2026-09-28 10:21:41 -07:00
2026-09-27 06:26:52 -05:00
2026-09-25 14:27:51 +05:30
2026-09-23 11:41:01 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-23 15:43:51 -07:00
2026-09-28 02:03:42 +05:30
2026-09-28 19:02:20 +05:30
2026-09-28 05:24:26 -07:00
2026-09-27 21:30:10 -07:00
2026-09-26 20:58:16 -04:00
2026-09-27 21:30:10 -07:00
2026-09-26 22:40:54 +05:30
2026-09-28 05:24:26 -07:00
2026-09-27 21:30:10 -07:00
2026-09-28 10:21:41 -07:00
2026-09-24 15:38:22 +05:30
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-25 14:58:09 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 10:21:41 -07:00
2026-09-26 17:19:34 -05:00
2026-09-26 22:19:53 -05:00
2026-09-28 10:21:41 -07:00
2026-09-24 03:52:03 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 12:25:29 -05:00
2026-09-29 12:25:29 -05:00
2026-09-28 10:21:41 -07:00
2026-09-23 15:26:34 -04:00
2026-09-23 18:52:49 -05:00
2026-09-28 10:21:41 -07:00
2026-09-23 18:29:35 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-24 16:49:18 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 20:57:45 -05:00
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-30 15:16:40 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 12:33:01 -07:00
2026-09-26 18:27:10 -05:00
2026-09-26 18:27:10 -05:00
2026-09-26 18:27:10 -05:00
2026-09-23 17:09:54 -07:00
2026-09-26 23:44:55 +05:30
2026-09-28 12:43:03 -07:00
2026-09-29 17:29:05 +00:00
2026-09-29 22:07:30 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-27 03:45:07 -04:00
2026-09-27 03:45:07 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 12:23:25 -07:00
2026-09-26 06:19:34 +05:30
2026-09-23 18:30:12 -05:00
2026-09-28 12:23:25 -07:00
2026-09-26 06:19:34 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 18:19:39 -05:00
2026-09-28 10:21:41 -07:00
2026-09-29 19:14:28 -05:00
2026-09-28 10:21:41 -07:00
2026-09-24 16:17:16 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-23 11:41:01 -04:00
2026-09-28 10:21:41 -07:00