@voxevolv/client 0.3.12 → 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 +30 -0
- package/README.md +24 -14
- package/dist/browser/index.js +7 -7
- package/dist/browser/index.js.map +3 -3
- package/dist/browser/index.js.sha384 +1 -1
- package/dist/browser/manifest.json +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +103 -36
- package/dist/index.js.map +3 -3
- package/dist/vendor/livekit-client.esm.mjs +66 -12
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,36 @@
|
|
|
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
|
+
|
|
17
|
+
## 0.3.14 - 2026-10-06
|
|
18
|
+
|
|
19
|
+
- Cancel expired context commands and uploads while they wait for reliable
|
|
20
|
+
channel space, preventing stale sends after the channel drains. Preserve
|
|
21
|
+
packets already sent, acknowledgement retries, and existing recovery behavior.
|
|
22
|
+
Both npm and standalone browser builds include the fix. Deploy the accompanying
|
|
23
|
+
worker stream cleanup before upgrading clients so abandoned partial uploads
|
|
24
|
+
release their readers after 30 seconds without progress.
|
|
25
|
+
|
|
26
|
+
## 0.3.13 - 2026-10-04
|
|
27
|
+
|
|
28
|
+
- Recover a missed session ending from durable events after room closure, with
|
|
29
|
+
a bounded lookup that is cancelled by explicit disconnect/end. Preserve
|
|
30
|
+
provider failures and never infer successful completion from an empty replay.
|
|
31
|
+
- Share the recovery deadline across native reconnect and full rejoin; ignore
|
|
32
|
+
late native events after cancellation or exhaustion.
|
|
33
|
+
- Include browser event-loop delay and context-transfer load in recovery diagnostics.
|
|
34
|
+
|
|
5
35
|
## 0.3.12 - 2026-10-04
|
|
6
36
|
|
|
7
37
|
- Let native LiveKit reconnect finish without treating participant cleanup as an
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
150
|
-
The request limit is
|
|
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
|
|
157
|
-
ten seconds
|
|
158
|
-
startup allowance; a recent heartbeat or existing agent prevents replacement.
|
|
159
|
-
The
|
|
160
|
-
|
|
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:
|
|
216
|
+
{ delayBeforeMs: 3_000, readyTimeoutMs: 140_000 },
|
|
207
217
|
],
|
|
208
|
-
timeoutMs:
|
|
218
|
+
timeoutMs: 180_000,
|
|
209
219
|
}
|
|
210
220
|
```
|
|
211
221
|
|