From c689d9ca2d45003c29c98ef35b5eb95d7b6a87ad Mon Sep 17 00:00:00 2001 From: David Date: Fri, 9 Oct 2026 14:28:37 -0700 Subject: [PATCH 1/2] changelog: the #147 entries go under Unreleased, not 1.38.0 1.38.0 was tagged (2ccb6a4) before #147 merged; the merge folded #147's sections into the released heading. The 1.38.0 section is restored to what was tagged and the #147 work sits under Unreleased for the next release. Co-Authored-By: Claude Fable 5.1 --- CHANGELOG.md | 58 ++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7df99f4..1dbdc19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,39 +5,16 @@ entry points (`.`, `./three`) are frozen for 1.x, while the **scene subpaths** ( `./splat`, `./model`) are a preview tier whose options may change in any release. Entries below say which tier they touch, because that is what tells you whether an upgrade can move your pixels. -## 1.38.0 — 2026-10-09 +## Unreleased Core (`.`) changes are **additive**, with every existing default unchanged: `firstWoven` and `rewoven()` settle on the browser's `wovenState` report where it exists (the hold path elsewhere, byte for byte), the optional `onResize` on `addScene`, a warning on a double attach (the call proceeds as before), and the display reads (`getDisplayInfo()` / `getRenderingModes()` / `requestRenderingMode()`) waiting for a layer's first frame instead of answering `null` / `[]` -before it, and asking again while it still answers `null` / `[]`, until the cap. The **preview tier** has one default change, `rectCover: 'auto'` on `./splat` and -`./model` (the core keeps `'off'`), plus additive handle methods (`finishSwap()`, `rewoven()` on -the splat handle) and the call's self view following `autoConverge`. New types only -(`WovenState`, `WovenWithheldReason`, `RectCoverOption`); no export is removed or renamed. - -### `./call` — the stereo self view auto-converges too - -- The call's self view now follows the call's **`autoConverge`** option (default `true`) instead of - being hard-wired off, so your own stereo camera feed sits at the display plane like the remote - tiles. `autoConverge: false` turns it off for both. (`samples/camera` also starts with - auto-convergence on.) - -### Splat handle: `finishSwap()` and `rewoven()` (scene subpath `./splat`, additive) - -- **`handle.finishSwap()`** ends a running `setSource` transition now: the incoming asset at its - end state, the outgoing one gone, in this task. A no-op when none runs. The sequencer already - did this internally when a newer swap landed; it is now a page call. Needed by a page that keeps - ONE woven canvas across screens and leaves a photo screen mid-crossfade: without it the next - screen waited a transition out (about 1 s measured) before it could draw, and the canvas showed - nothing meanwhile. -- **`handle.rewoven()`** forwards the core window's `TileHandle.rewoven()` (1.1x), which the splat - handle had left out while forwarding `firstWoven`. Cover the canvas across a rect change (moved - into a box, fullscreen, a layout resize) and release on it; `{ woven: false, reason: - 'unsupported' }` at once without a session. -- Both came from a kiosk demo's fast screen switching (black box in the moved canvas, a stalled - stage queue), vendored there as a local patch first. +early. One **preview-tier default** changes: `rectCover` is `'auto'` on `./splat` and `./model` +(`'off'` in the core). New types only (`WovenState`, `WovenWithheldReason`, `RectCoverOption`); +nothing removed. These landed after the 1.38.0 tag and ship in the next release. ### Core: `firstWoven` / `rewoven()` settle on the browser's join report (`.`, additive) @@ -165,6 +142,33 @@ the splat handle) and the call's self view following `autoConverge`. New types o A fully transparent woven frame weaves **black**: a browser bug (browser-pvt #255), listed there as a known limitation. +## 1.38.0 — 2026-10-09 + +Touches the **preview tier** (`./call`, `./splat`) only: one default and two additive handle +methods. No export changes; `SplatHandle` gains two methods in `splat.d.ts`. + +### `./call` — the stereo self view auto-converges too + +- The call's self view now follows the call's **`autoConverge`** option (default `true`) instead of + being hard-wired off, so your own stereo camera feed sits at the display plane like the remote + tiles. `autoConverge: false` turns it off for both. (`samples/camera` also starts with + auto-convergence on.) + +### Splat handle: `finishSwap()` and `rewoven()` (scene subpath `./splat`, additive) + +- **`handle.finishSwap()`** ends a running `setSource` transition now: the incoming asset at its + end state, the outgoing one gone, in this task. A no-op when none runs. The sequencer already + did this internally when a newer swap landed; it is now a page call. Needed by a page that keeps + ONE woven canvas across screens and leaves a photo screen mid-crossfade: without it the next + screen waited a transition out (about 1 s measured) before it could draw, and the canvas showed + nothing meanwhile. +- **`handle.rewoven()`** forwards the core window's `TileHandle.rewoven()` (1.1x), which the splat + handle had left out while forwarding `firstWoven`. Cover the canvas across a rect change (moved + into a box, fullscreen, a layout resize) and release on it; `{ woven: false, reason: + 'unsupported' }` at once without a session. +- Both came from a kiosk demo's fast screen switching (black box in the moved canvas, a stalled + stage queue), vendored there as a local patch first. + ## 1.37.1 — 2026-10-07 ### Depth cursor: hybrid anchor keeps the line of sight, not the foot From 6eb6e965290c50b7f38585b4025886354719e765 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 9 Oct 2026 14:31:22 -0700 Subject: [PATCH 2/2] =?UTF-8?q?release:=201.39.0=20=E2=80=94=20wovenState?= =?UTF-8?q?=20settling,=20rectCover,=20same-task=20resize,=20double-attach?= =?UTF-8?q?=20warning,=20a=20frame=20every=20frame,=20display=20reads=20wa?= =?UTF-8?q?it=20for=20the=20first=20frame?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- CHANGELOG.md | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dbdc19..89d5b17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ entry points (`.`, `./three`) are frozen for 1.x, while the **scene subpaths** ( `./splat`, `./model`) are a preview tier whose options may change in any release. Entries below say which tier they touch, because that is what tells you whether an upgrade can move your pixels. -## Unreleased +## 1.39.0 — 2026-10-09 Core (`.`) changes are **additive**, with every existing default unchanged: `firstWoven` and `rewoven()` settle on the browser's `wovenState` report where it exists (the hold path elsewhere, @@ -14,7 +14,7 @@ proceeds as before), and the display reads (`getDisplayInfo()` / `getRenderingMo `requestRenderingMode()`) waiting for a layer's first frame instead of answering `null` / `[]` early. One **preview-tier default** changes: `rectCover` is `'auto'` on `./splat` and `./model` (`'off'` in the core). New types only (`WovenState`, `WovenWithheldReason`, `RectCoverOption`); -nothing removed. These landed after the 1.38.0 tag and ship in the next release. +nothing removed. ### Core: `firstWoven` / `rewoven()` settle on the browser's join report (`.`, additive) diff --git a/package.json b/package.json index f9d6233..0cf773a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@displayxr/inline3d", - "version": "1.38.0", + "version": "1.39.0", "description": "Turn any HTML into a 3D window on a spatial display, inside an ordinary web page, for the DisplayXR Browser. Dependency-free; progressive enhancement (falls back to plain 2D everywhere else).", "type": "module", "types": "./index.d.ts",