v0.3.0 Release Notes
Companion Guide
Status: Release docs for
v0.3.0
GitHub release: Sunwood-ai-labs/GeminiVRM v0.3.0
Compare basis:v0.2.0..v0.3.0
Scope: This note covers the Gemini 3.1 realtime alignment, the new streaming podcast relay path, podcast relay benchmarking, accessibility polish, and tooling updates shipped afterv0.2.0.
Highlights
- Character chat and podcast mode now default to
gemini-3.1-flash-live-preview, send chat turns through the Gemini Live realtime text path, and surface the exact request error instead of silently falling back to older preview models. v0.3.0introduces the streaming podcast relay path: GeminiVRM now prewarms the next speaker's Gemini Live session, streams the live audio handoff into that prepared session, and records per-turn first-audio and playback timing in the debug log.- GeminiVRM now ships a reproducible podcast relay benchmark workflow with a dedicated Playwright relay E2E, a repeatable benchmark runner, bilingual chart generation, and tracked JSON/CSV history under
docs/public/benchmarks. - The checked-in benchmark snapshot shows the streaming relay path averaging
1.22sto first audio and2.30sof handoff silence versus10.91sand11.91sfor batch mode on the tracked three-topic, six-turn run set, which means first audio arrives about8.94xfaster (88.9%lower latency) and handoff silence is about5.18xshorter (80.7%lower latency). - Message labels, settings radio groups, and browser speech-recognition typing were tightened for better accessibility while the repository moved to the flat ESLint runner and the current dependency stack.
Runtime And Benchmarking
Settingsnow explicitly calls out thegemini-3.1-flash-live-previewrequirement and the absence of automatic model fallback.- The streaming podcast relay work landed in commit
7a5a1c9on2026-03-31 JST, and its prepared-session stabilization followed in6e2f181on2026-04-01 JST. - If that prepared streaming relay fails, the app now stops on that exact Gemini Live error instead of hiding it behind transcript continuation or an older-model retry.
- Benchmark raw artifacts default to the system temp directory so watched repository writes do not trigger
next devreloads during longer Playwright runs. npm run bench:podcast:topic -- <topic-file>is available for UTF-8 topic files, andE2E_BENCH_MODES=streaming/batchcan isolate a single relay path.
Tooling And Docs
scripts/e2e-podcast-relay.mjs,scripts/benchmark-podcast-relay.mjs,scripts/build-podcast-benchmark-report.mjs, andscripts/verify-podcast-benchmark-layout.mjsnow cover relay verification, measurement, chart generation, and SVG layout checks.- The benchmark report is now published in both locales, with stable SVG/PNG assets plus
podcast-benchmark-overview.json,podcast-benchmark-history.json, andpodcast-benchmark-history.csvcommitted underdocs/public/benchmarks. - The repo now runs ESLint through
eslint.config.mjsandscripts/run-eslint.mjs, and the dependency/tooling updates include Tailwind CSS4.2.2, TypeScript6.0.2,@google/genai1.48.0,@types/node25.5.0, andactions/configure-pages@v6. - README and docs entry points were truth-synced so the latest release note, companion guide, and benchmark workflow are easy to find from both English and Japanese surfaces.
Known Constraints
- The app no longer auto-falls back to older Gemini Live preview models; invalid 3.1 requests must be fixed at the active runtime path.
- Podcast mode is still turn-based. It does not overlap both hosts speaking at once.
- The checked-in benchmark report still carries one AGI run mean from preserved console logs because the earliest artifact folder was overwritten before the temp-dir safeguard landed.
- The YouTube relay remains inbound-only and does not post Gemini replies back into YouTube chat.
Validation
npm run lintnpm run buildnpm run docs:build$env:BASE_PATH='/GeminiVRM'; npm run build:pagesnpm run e2e:smokenpm run e2e:podcastnode scripts/verify-podcast-benchmark-layout.mjs --input docs/public/benchmarks/podcast-benchmark-en.svgnode scripts/verify-podcast-benchmark-layout.mjs --input docs/public/benchmarks/podcast-benchmark-ja.svgpowershell -ExecutionPolicy Bypass -File D:\Prj\gh-release-notes-skill\scripts\verify-svg-assets.ps1 -RepoPath . -Path public/favicon.svg,docs/public/releases/release-header-v0.3.0.svgnpm run verify:release-header-layout -- --input docs/public/releases/release-header-v0.3.0.svgpowershell -ExecutionPolicy Bypass -File D:\Prj\gh-release-notes-skill\scripts\verify-release-qa-inventory.ps1 -RepoPath . -Tag v0.3.0