@voxevolv/client 0.1.0 → 0.2.0

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,16 @@
2
2
 
3
3
  All notable changes to `@voxevolv/client` are recorded here.
4
4
 
5
+ ## 0.2.0 - 2026-07-20
6
+
7
+ - Add `session.outputStream`: a stable `MediaStream` that always holds the
8
+ agent's current remote audio tracks across track arrival, reconnects, and
9
+ rejoin.
10
+ - `connect()` now also waits for the first remote agent audio track (within
11
+ the same `readyTimeoutMs` budget) before resolving, so media is flowing when
12
+ connect resolves. Pass `waitForRemoteAudio: false` to restore the previous
13
+ signaling-only readiness.
14
+
5
15
  ## 0.1.0 - 2026-07-18
6
16
 
7
17
  - Add application-owned audio-track publication and remote-audio access.
package/README.md CHANGED
@@ -100,6 +100,27 @@ a native `MediaStreamTrack` and single-track `MediaStream` for recording,
100
100
  metering, or another application-owned audio graph. Both listener registration
101
101
  methods return an unsubscribe function.
102
102
 
103
+ ## Agent audio readiness
104
+
105
+ By default `connect()` resolves only after the agent reported readiness *and*
106
+ the first remote agent audio track arrived, both within the same
107
+ `readyTimeoutMs` budget (15 s by default). Agent media is therefore already
108
+ flowing when `connect()` resolves, so recording or metering set up right after
109
+ `connect()` does not race track arrival.
110
+
111
+ `session.outputStream` is a stable `MediaStream` available from session
112
+ creation. The stream object never changes; remote agent audio tracks are added
113
+ when they arrive and removed when they end, including across `rejoin()` and
114
+ reconnects. Note that Web Audio's `createMediaStreamSource()` requires the
115
+ stream to already contain an audio track, so audio-graph consumers should
116
+ still attach inside `onRemoteAudioTrack`.
117
+
118
+ Applications that intentionally run without agent audio can opt out:
119
+
120
+ ```ts
121
+ await session.connect({ waitForRemoteAudio: false });
122
+ ```
123
+
103
124
  ## Rejoin and end
104
125
 
105
126
  `rejoin()` can be called from a connected or disconnected state. It obtains a