2 Commits
Author SHA1 Message Date
Fauxx fa8441352c Release v0.93.3: 3D side by side, YouTube Premium, your Channels and the notification bell (#6)
## What and why

Release **v0.93.3** (`develop` → `main`). No issue: this is the
maintainer's release merge, not an outside contribution.

Everything since v0.88.1, partly from feedback by
[u/TehSuperFruitSnack](https://www.reddit.com/user/TehSuperFruitSnack/)
on Reddit and [@damics80](https://x.com/damics80) on X:

- **3D side by side** (asked for by [@damics80](https://x.com/damics80);
the VR180 case spotted by
[u/TehSuperFruitSnack](https://www.reddit.com/user/TehSuperFruitSnack/)):
**180° 3D side by side** and **Cinema 3D side by side** in the Format
menu, each eye seeing its half of the frame.
- **YouTube Premium:** **1080p Premium** in the Quality menu and **Jump
ahead** at the seek bar's end, both with the Diamond.
- **Subscriptions:** You → **Channels** with YouTube's sort choices, and
the **notification bell** on the Channel panel.
- **Format menu:** every format with its icon; the button always says
"Format".
- **Fixes:**
- videos open from the Channel panel and History when VR started on a
channel page
  - menus no longer cover the pointing ring
  - the Channels list loads all the way down
- **Docs:**
  - decision 0002 (StreamXR never bypasses the site's player)
- the README's "What's new" and roadmap (Chrome Web Store as 1.0, then
Twitch, Jellyfin / Plex, music streaming and an experimental barebones
mode)
  - Meta Quest 2 reported working

The full list is in `CHANGELOG.md` (0.89.0 to 0.93.3); the details of
each change are in the `Feature-2-Premium-and-Subscrptions` → `develop`
pull request.

## How

See the feature branch's pull request. In short:
- per-eye cropping in the sphere, the cinema screen and the glass
(`formats.eyeSpans`)
- YouTube's Premium quality entry chosen by its `formatId`, and Jump
ahead clicking YouTube's own pill
- the Manage page's shelves and sort choices read by
`youtube-subscriptions.js`
- new generic shell pieces: side-panel menus, round cards, coloured
icons, a seek-row button slot
- in-page navigation sent from `ytd-page-manager`

No new permissions.

## Tested on

- Headset and controllers: Valve Steam Frame with its controllers
- VR runtime / connection: SteamVR, "Stream VR without game"
- Browser and version: Google Chrome 155.0.8059.82 (Official Build)
(64-bit) (cohort: Control)
- Signed in to YouTube: yes, with YouTube Premium
- What I tried in VR: each version from 0.89.0 to 0.93.3 as it was
built:
  - both 3D formats, with each eye and the glass
  - 1080p Premium
  - Jump ahead
  - You → Channels with its pills and the Purchased flag
  - the bell
  - opening videos from a channel page
  - the menus
- Not yet: Skip ad taking Jump ahead's spot during an ad (needs a
non-Premium view).

## Checklist

What the automatic summary and the Checks can't see:

- [x] There's an agreed issue for this, and this PR does only that one
thing. *(Release merge by the maintainer; no issue.)*
- [x] I understand every line of this change and can explain it in
review.
- [x] I tested it in a real VR session on the hardware listed above.
- [x] YouTube access stays in `src/sites/youtube/page/youtube-*.js`;
tunables are in the config files.
- [x] Every new file and function has its comment, and comments I
touched match the code.
- [x] New files are in `manifest.json` in the right **order** (the
summary only checks they're listed).
- [x] No new permissions, or they were agreed in the issue.

<!-- pr-summary:start -->
## Automatic summary

<!-- Filled in by .github/workflows/pr-summary.yml on every push; edits
here are replaced. -->

**FauxxYT** wants to merge `FauxxYT:develop` into `main`: 4 commits, 38
files (+1051 −193).

- ⚠️ No linked issue: add `Closes #<issue>` under "What and why" (an
agreed issue is required).
- ✅ Version: 0.88.1 → 0.93.3
- ✅ `CHANGELOG.md` updated
- ⚠️ The shell should name no site, but added lines mention YouTube in:
`src/streamxr/shared/formats.js` (fine in comments giving an example;
otherwise move it to the provider).

#### Commits (4)

| Commit | Message | Author |
|---|---|---|
|
[`8078578`](https://github.com/FauxxYT/StreamXR/commit/80785784c9384a76602b886ecf5efc39d9565fad)
| Update documentation with some feedback and a new design decision for
not bypassing the YouTube player | @FauxxYT |
|
[`fd80f53`](https://github.com/FauxxYT/StreamXR/commit/fd80f536218c4bb8156effc7bfaa412d18494606)
| Interim Commit before finishing features | @FauxxYT |
|
[`ef539f9`](https://github.com/FauxxYT/StreamXR/commit/ef539f9a39f378a154b0d5a6c2c4f51a767e3ac4)
| Added: 3D Side-By-Side support for VR180 and 2D Cinema, YouTube
Premium (high bitrate 1080p and Jump Ahead), Your Channels, Notification
Bell on Channel Panel, and tidied up Format menu on Control panel |
@FauxxYT |
|
[`b554542`](https://github.com/FauxxYT/StreamXR/commit/b554542559d3e07a99639a1fe7fd86fb3a1c639d)
| v0.93.3: 3D side by side, YouTube Premium, your Channels and the
notification bell (#5) | @FauxxYT |

<details><summary>Files changed (38)</summary>

- ✏️ `AGENTS.md` +4 −1
- ✏️ `ARCHITECTURE.md` +10 −3
- ✏️ `CHANGELOG.md` +146 −0
- ✏️ `README.md` +51 −44
- 🆕 `docs/decisions/0002-site-player-only.md` +70 −0
- ✏️ `docs/design-choices.md` +17 −0
- ✏️ `docs/features/subscriptions-page.md` +16 −3
- ✏️ `docs/features/video-page.md` +19 −4
- ✏️ `docs/known-issues.md` +1 −1
- ✏️ `docs/whats-left.md` +62 −14
- ✏️ `docs/youtube.md` +40 −4
- ✏️ `manifest.json` +1 −1
- ✏️ `src/core/page/vr-panel/panel-pass.js` +21 −11
- ✏️ `src/core/page/vr-panel/panel-ui.js` +50 −14
- ✏️ `src/core/page/vr-panel/popups-ui.js` +11 −4
- ✏️ `src/core/page/vr-panel/styles/kit.js` +8 −2
- ✏️ `src/core/page/vr-panel/styles/profile.js` +12 −3
- ✏️ `src/core/page/vr-panel/symbols.js` +29 −1
- ✏️ `src/core/page/vr-panel/vr-panel.js` +42 −6
- ✏️ `src/sites/youtube/page/provider/browse.js` +39 −6
- ✏️ `src/sites/youtube/page/provider/channel.js` +65 −4
- ✏️ `src/sites/youtube/page/provider/extras.js` +18 −4
- ✏️ `src/sites/youtube/page/provider/panels.js` +7 −1
- ✏️ `src/sites/youtube/page/provider/provider.js` +26 −2
- ✏️ `src/sites/youtube/page/provider/strings-en.js` +5 −0
- ✏️ `src/sites/youtube/page/provider/strings-es.js` +5 −0
- ✏️ `src/sites/youtube/page/youtube-channel.js` +40 −1
- ✏️ `src/sites/youtube/page/youtube-page.js` +6 −3
- ✏️ `src/sites/youtube/page/youtube-player.js` +64 −11
- ✏️ `src/sites/youtube/page/youtube-subscriptions.js` +78 −10
- ✏️ `src/streamxr/page/cinema-screen.js` +26 −12
- ✏️ `src/streamxr/page/video-sphere.js` +12 −7
- ✏️ `src/streamxr/shared/formats.js` +17 −8
- ✏️ `src/streamxr/shared/strings-en.js` +4 −0
- ✏️ `src/streamxr/shared/strings-es.js` +4 −0
- ✏️ `src/streamxr/ui/shared/formats.js` +17 −8
- ✏️ `src/streamxr/ui/shared/strings-en.js` +4 −0
- ✏️ `src/streamxr/ui/shared/strings-es.js` +4 −0

</details>
<!-- pr-summary:end -->
2026-10-17 19:53:32 -07:00
Fauxx 3a0c1f0d13 Release v0.88.1: live chat, chat replays, movable side panels (#3)
## What and why

Release **v0.88.1** (`develop` → `main`). No issue: this is the
maintainer's release merge, not an outside contribution.

It brings everything since v0.78.9: 
- **live chat** (reading, reactions, typing with emoji pages, Top fans)
- **chat replays**
- **movable side panels**
- **hide everything with one trigger pull**
- **Auto-hide while paused**. 
It also adds Quality menu icons, clearer controller icons, and fixes.
The full list is in `CHANGELOG.md` (0.78.10 to 0.88.1) and the README's
"What's new".

## How

- Live chat: `src/sites/youtube/page/youtube-chat.js` (YouTube's chat
requests) and the panel controller
`src/sites/youtube/page/provider/live-chat.js`, drawn by the new shell
style `src/core/page/vr-panel/styles/chat.js`. The shell only got
generic registry options (`available`, `autoOpen`, `stays`), no
chat-specific fields.
- Movable side panels, and recentering that keeps your moves:
`vr-panel.js`, `orbiters-ui.js` and `math3d.js` (`invertRigid`), with
the "Recenter resets panels" switch in `safe-zone-options.js`.
- Trigger-to-hide and "Auto-hide while paused" (suggested by
u/TehSuperFruitSnack): `vr-panel.js`, `fade-options.js`.
- Docs: the README (What's new, a help-test list for the live chat, the
Meta Quest 2 reported working by u/TehSuperFruitSnack),
`docs/youtube.md` (Live chat findings), `design-choices.md`,
`whats-left.md`, `known-issues.md`, `hardware.md`.
- The automatic summary flags `styles/info.js` for naming YouTube: those
are two comments in the Top fans part, not code.

## Tested on

- Headset and controllers: Valve Steam Frame with its controllers
- VR runtime / connection: SteamVR, streamed with "Stream VR without
game"
- Browser and version: Google Chrome 155.0.8059.82 (Official Build)
(64-bit) (cohort: Control)
- Signed in to YouTube: yes
- What I tried in VR: each version from 0.79.0 to 0.88.1 as it was
built. Live chat on live streams (reading, reactions, typing, Top fans,
retry while loading), chat replays (plays along, pause, seek), moving
both sides and recentering (with and without "Recenter resets panels"),
trigger-to-hide playing and paused, Auto-hide while paused on and off.

## Checklist

What the automatic summary and the Checks can't see:

- [x] There's an agreed issue for this, and this PR does only that one
thing. *(Release merge by the maintainer; no issue.)*
- [x] I understand every line of this change and can explain it in
review.
- [x] I tested it in a real VR session on the hardware listed above.
- [x] YouTube access stays in `src/sites/youtube/page/youtube-*.js`;
tunables are in the config files.
- [x] Every new file and function has its comment, and comments I
touched match the code.
- [x] New files are in `manifest.json` in the right **order** (the
summary only checks they're listed).
- [x] No new permissions, or they were agreed in the issue.

<!-- pr-summary:start -->
## Automatic summary

<!-- Filled in by .github/workflows/pr-summary.yml on every push; edits
here are replaced. -->

**FauxxYT** wants to merge `FauxxYT:develop` into `main`: 9 commits, 36
files (+2084 −171).

- ⚠️ No linked issue: add `Closes #<issue>` under "What and why" (an
agreed issue is required).
- ✅ Version: 0.78.9 → 0.88.1
- ✅ `CHANGELOG.md` updated
- ✅ Every source file is listed in `manifest.json`
- ✅ `ARCHITECTURE.md` updated
- ⚠️ The shell should name no site, but added lines mention YouTube in:
`src/core/page/vr-panel/styles/info.js` (fine in comments giving an
example; otherwise move it to the provider).

#### Commits (9)

| Commit | Message | Author |
|---|---|---|
|
[`5dfddfb`](https://github.com/FauxxYT/StreamXR/commit/5dfddfb746e15b862181305495944d8ad162c598)
| Minor change to `CHANGELOG.md` | @FauxxYT |
|
[`b49b3c7`](https://github.com/FauxxYT/StreamXR/commit/b49b3c79b34b8370c9761e2f219883dd65a30aa8)
| Start preparing for Live Chat integration and add icons to each popup
menu item in the Resolution popup | @FauxxYT |
|
[`dec401c`](https://github.com/FauxxYT/StreamXR/commit/dec401c2be0766ae31027756b8a3803748b66182)
| Create Live Chat panel on the right Toolbar. See Top Chat and Live
Chat | @FauxxYT |
|
[`e93b1a9`](https://github.com/FauxxYT/StreamXR/commit/e93b1a9a627dbe37e8679ed096f1326f7613b050)
| Update Design Choices document and add support for reactions in live
chat | @FauxxYT |
|
[`80934fc`](https://github.com/FauxxYT/StreamXR/commit/80934fcab4bc3eda0fcbf7754a829e859bcaef45)
| Added typing in Chat | @FauxxYT |
|
[`200a864`](https://github.com/FauxxYT/StreamXR/commit/200a8644c60952bee4fd3cc777ea781786a666a4)
| Add support for Live Chat Replays | @FauxxYT |
|
[`3b0d26d`](https://github.com/FauxxYT/StreamXR/commit/3b0d26d0823d1ab1fbc85e1598cebf46fe94d773)
| Hide/Show panels when clicking on empty space and added "Auto-Hide
While Paused" setting to enable auto-hide while paused | @FauxxYT |
|
[`8f5815d`](https://github.com/FauxxYT/StreamXR/commit/8f5815dc1a8ff5fbad3c1e7962b9ba0d0d666065)
| Update docs and give proper credit | @FauxxYT |
|
[`605972d`](https://github.com/FauxxYT/StreamXR/commit/605972dfc455943da9b598682a3d8a4d6d9046af)
| Feature 1 live chat (#2) | @FauxxYT |

<details><summary>Files changed (36)</summary>

- ✏️ `AGENTS.md` +5 −5
- ✏️ `ARCHITECTURE.md` +25 −9
- ✏️ `CHANGELOG.md` +183 −6
- ✏️ `README.md` +56 −9
- ✏️ `docs/Spatial-Layout.md` +4 −2
- ✏️ `docs/design-choices.md` +55 −2
- ✏️ `docs/features/video-page.md` +37 −10
- ✏️ `docs/hardware.md` +7 −0
- ✏️ `docs/known-issues.md` +13 −0
- ✏️ `docs/whats-left.md` +7 −2
- ✏️ `docs/youtube.md` +116 −0
- ✏️ `manifest.json` +4 −1
- ✏️ `src/core/page/controllers/icons.js` +3 −1
- ✏️ `src/core/page/math3d.js` +14 −1
- ✏️ `src/core/page/vr-panel/fade-options.js` +15 −6
- ✏️ `src/core/page/vr-panel/keyboard.js` +62 −11
- ✏️ `src/core/page/vr-panel/orbiters-ui.js` +57 −14
- ✏️ `src/core/page/vr-panel/panel-ui.js` +2 −1
- ✏️ `src/core/page/vr-panel/popups-ui.js` +33 −15
- ✏️ `src/core/page/vr-panel/safe-zone-options.js` +15 −5
- 🆕 `src/core/page/vr-panel/styles/chat.js` +226 −0
- ✏️ `src/core/page/vr-panel/styles/info.js` +175 −4
- ✏️ `src/core/page/vr-panel/styles/kit.js` +6 −4
- ✏️ `src/core/page/vr-panel/symbols.js` +9 −0
- ✏️ `src/core/page/vr-panel/vr-panel.js` +162 −55
- ✏️ `src/core/shared/strings-en.js` +4 −0
- ✏️ `src/core/shared/strings-es.js` +4 −0
- ✏️ `src/core/ui/shared/strings-en.js` +4 −0
- ✏️ `src/core/ui/shared/strings-es.js` +4 −0
- 🆕 `src/sites/youtube/page/provider/live-chat.js` +370 −0
- ✏️ `src/sites/youtube/page/provider/panels.js` +10 −3
- ✏️ `src/sites/youtube/page/provider/provider.js` +12 −5
- ✏️ `src/sites/youtube/page/provider/strings-en.js` +22 −0
- ✏️ `src/sites/youtube/page/provider/strings-es.js` +22 −0
- 🆕 `src/sites/youtube/page/youtube-chat.js` +340 −0
- ✏️ `src/streamxr/page/xr-session.js` +1 −0

</details>
<!-- pr-summary:end -->
2026-10-17 09:14:24 -07:00

Diff Content Not Available