@spatialwalk/avatarkit 1.0.0-beta.97 → 1.0.0-beta.99

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
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.0-beta.99]
9
+
10
+ ### ✨ Features
11
+
12
+ - **Playback diagnostics** — Added telemetry events for audio buffer stall and frame starvation detection, improving visibility into playback interruption issues.
13
+
14
+ ## [1.0.0-beta.98]
15
+
16
+ ### 🐛 Bugfixes
17
+
18
+ - **Build artifact fix** — beta.97 npm package contained stale build artifacts. This release contains the correct build with all beta.97 changes.
19
+
20
+ ### ⚡ Breaking Changes
21
+
22
+ - **`setVolume()` / `getVolume()` replaced by `volume` property** — `controller.setVolume(0.5)` is now `controller.volume = 0.5`. Aligned with Android and iOS SDKs.
23
+
8
24
  ## [1.0.0-beta.97]
9
25
 
10
26
  ### ⚡ Breaking Changes
@@ -193,7 +209,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
193
209
 
194
210
  ### 🔧 Improvements
195
211
  - **API Documentation** - All public API comments are now in English with JSDoc support for better IDE IntelliSense
196
- - **Type Safety** - Removed internal types from public API exports, using `KeyframeData` instead of `Flame`
212
+ - **Type Safety** - Removed internal types from public API exports
197
213
  - **Build Configuration** - JSDoc comments are now preserved in generated `.d.ts` files
198
214
 
199
215
  ### 📚 Documentation
@@ -282,7 +298,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
282
298
 
283
299
  ### 🔧 Improvements
284
300
  - **Transition API Enhancement** - Updated `generateTransitionFromIdle()` to support both start and end transitions
285
- - Added `transitionType` parameter: `'start'` for Idle -> Flame, `'end'` for Flame -> Idle
301
+ - Added `transitionType` parameter: `'start'` for idle-to-speaking, `'end'` for speaking-to-idle
286
302
  - Removed deprecated linear interpolation code and unused easing functions
287
303
 
288
304
  ## [1.0.0-beta.61] - 2026-01-14
@@ -308,7 +324,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
308
324
  ## [1.0.0-beta.58] - 2026-01-14
309
325
 
310
326
  ### ✨ New Features
311
- - **Pure Rendering Mode APIs** - Added `renderFlame()` and `generateTransitionFromIdle()` methods to `AvatarView` for external-controlled rendering without audio synchronization
327
+ - **Pure Rendering Mode APIs** - Added `renderFrame()` and `generateTransitionFromIdle()` methods to `AvatarView` for external-controlled rendering without audio synchronization
312
328
 
313
329
  ## [1.0.0-beta.57] - 2026-01-09
314
330
 
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { A as APP_CONFIG, l as logger, e as errorToMessage, a as logEvent } from "./index-DtnIjVSC.js";
4
+ import { A as APP_CONFIG, l as logger, e as errorToMessage, a as logEvent } from "./index-CnV_uOSq.js";
5
5
  class StreamingAudioPlayer {
6
6
  // Mark if AudioContext is being resumed, avoid concurrent resume requests
7
7
  constructor(options) {
@@ -305,6 +305,11 @@ class StreamingAudioPlayer {
305
305
  const lastChunk = this.audioChunks[this.scheduledChunks - 1];
306
306
  if (lastChunk && !lastChunk.isLast) {
307
307
  this.log("All audio chunks ended but end=false, pausing and setting autoContinue");
308
+ logEvent("character_player", "warning", {
309
+ event: "audio_buffer_stall",
310
+ scheduled_chunks: this.scheduledChunks,
311
+ audio_time: this.getCurrentTime()
312
+ });
308
313
  this.autoContinue = true;
309
314
  this.pause();
310
315
  } else if (isLast) {