@voxevolv/client 0.3.14 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to `@voxevolv/client` are recorded here.
4
4
 
5
+ ## 0.3.15 - 2026-10-07
6
+
7
+ - Extend initial startup to a three-minute overall deadline, with 15/20/140-second
8
+ readiness budgets and a backend registration budget of up to 175 seconds.
9
+ The final initial handshake also uses the longer budget so an absent worker
10
+ does not exhaust all attempts at the old 30-second hello limit. Rejoins
11
+ preserve the same session and deadline; cancellation and terminal
12
+ failures still stop immediately.
13
+ - Deploy the accompanying backend first: it accepts up to 180 seconds and keeps
14
+ redispatching within the deadline instead of exhausting after three replacements.
15
+ Upgrade candidate applications' browser bundles to enable the longer window.
16
+
5
17
  ## 0.3.14 - 2026-10-06
6
18
 
7
19
  - Cancel expired context commands and uploads while they wait for reliable
package/README.md CHANGED
@@ -33,7 +33,7 @@ Browsers without a build step can use the versioned bundle after publication:
33
33
  ```html
34
34
  <script type="module">
35
35
  import { RealtimeSession } from
36
- "https://cdn.jsdelivr.net/npm/@voxevolv/client@0.3.6/dist/browser/index.js";
36
+ "https://cdn.jsdelivr.net/npm/@voxevolv/client@0.3.15/dist/browser/index.js";
37
37
  </script>
38
38
  ```
39
39
 
@@ -134,30 +134,40 @@ await session.connect({ waitForRemoteAudio: false });
134
134
 
135
135
  ## Initial connection retries
136
136
 
137
+ Deploy the backend accepting 180-second startup registration before upgrading
138
+ to SDK 0.3.15. Older backends reject the expanded budget. Update the candidate
139
+ application's SDK bundle and remove shorter application-owned startup timers.
140
+ Use the existing setup screen to show connecting progress, a longer-wait message
141
+ after 15 seconds, and a three-minute maximum after 60 seconds. Clear UI timers
142
+ on success, failure, or cancellation; only readiness means connected.
143
+
137
144
  Startup retries have been enabled by default since SDK 0.3.6 for both `new RealtimeSession()`
138
145
  and `RealtimeSession.create()`. Omit `startupRetry` or pass `true` to retry a
139
146
  session that has not connected successfully yet. The default policy allows up to
140
- three total attempts with 15, 20, and 50-second readiness budgets, waits one second
147
+ three total attempts with 15, 20, and 140-second readiness budgets, waits one second
141
148
  before attempt two and three seconds before attempt three, and enforces a
142
- 90-second overall deadline in SDK 0.3.8. The overall deadline also includes room
149
+ 180-second overall deadline in SDK 0.3.15. The overall deadline also includes room
143
150
  connection, token renewal, microphone
144
- publication, the client hello, and remote-audio readiness.
151
+ publication, the client hello, and remote-audio readiness. During initial
152
+ startup, the hello acknowledgement may wait for the longer attempt budget
153
+ (140 seconds on the final default attempt), still bounded by the overall
154
+ deadline. Established-session recovery retains its 30-second hello timeout.
145
155
 
146
- SDK 0.3.8 coordinates initial agent recovery through the session-scoped
156
+ The SDK coordinates initial agent recovery through the session-scoped
147
157
  `POST /sessions/{id}/startup` endpoint. Registration is included in the overall
148
158
  startup deadline. It reserves 10% of the remaining budget, capped at five seconds,
149
- and gives the backend at most 85 seconds.
150
- The request limit is the smaller of that reserve and three seconds; a five-second
159
+ and gives the backend at most 175 seconds.
160
+ The request limit is that reserve; a five-second
151
161
  custom startup budget therefore retains about 4.5 seconds on the server.
152
162
  Repeated registrations and room-token requests never renew the backend deadline.
153
163
  Applications proxying the API must forward this route as well.
154
164
 
155
165
  The backend inspects stalled startup after ten seconds of candidate presence.
156
- A failed or expired dispatch can be replaced at most three times, with at least
157
- ten seconds between attempts. A pending/running dispatch gets a twenty-second
158
- startup allowance; a recent heartbeat or existing agent prevents replacement.
159
- The longer window gives three replacements more time to fit; scheduling and
160
- network delays can still reduce the number of attempts.
166
+ A failed or expired dispatch can be replaced while the registered deadline
167
+ has at least ten seconds remaining, with at least ten seconds between attempts.
168
+ A pending/running dispatch gets a twenty-second startup allowance; a recent heartbeat or existing agent prevents replacement.
169
+ The fixed deadline bounds recovery instead of an attempt-count limit, so an
170
+ autoscaled worker can accept a later replacement.
161
171
  The server also enrolls older SDK clients at session creation and discovers their
162
172
  first candidate join through LiveKit polling, without requiring webhooks. Older
163
173
  clients retain a 65-second fallback window to match their browser deadline;
@@ -203,9 +213,9 @@ startupRetry: {
203
213
  attempts: [
204
214
  { readyTimeoutMs: 15_000 },
205
215
  { delayBeforeMs: 1_000, readyTimeoutMs: 20_000 },
206
- { delayBeforeMs: 3_000, readyTimeoutMs: 50_000 },
216
+ { delayBeforeMs: 3_000, readyTimeoutMs: 140_000 },
207
217
  ],
208
- timeoutMs: 90_000,
218
+ timeoutMs: 180_000,
209
219
  }
210
220
  ```
211
221