v0.3.0 リリースノート
Companion Guide
ステータス:
v0.3.0向け release docs
GitHub release: Sunwood-ai-labs/GeminiVRM v0.3.0
比較基準:v0.2.0..v0.3.0
対象範囲:v0.2.0以降に加わった Gemini 3.1 realtime 整合、新しい streaming podcast relay path、podcast relay benchmark、accessibility 改善、tooling 更新を対象にしています。
Highlights
- character chat と podcast mode は既定で
gemini-3.1-flash-live-previewを使い、Gemini Live の realtime text path へ送るようになりました。古い preview model への自動 fallback は行わず、実際の request error をそのまま確認できます。 v0.3.0で streaming podcast relay path 自体が入り、GeminiVRM は次の話者用 Gemini Live session を prewarm し、その prepared session へ live audio handoff を流し込みつつ、turn ごとの first-audio / playback timing を debug log に残せるようになりました。- repository には、Playwright relay E2E、repeatable benchmark runner、英日 chart 生成、
docs/public/benchmarks配下の JSON / CSV history を含む再現可能な benchmark workflow が追加されました。 - 既存の benchmark snapshot では、3 トピック x 6 turn の run set において、streaming relay path の平均 first audio は
1.22s、handoff silence は2.30sで、batch mode の10.91s/11.91sと比べると、first audio は約8.94x高速 (88.9%低遅延)、handoff silence は約5.18x短縮 (80.7%低遅延) です。 - message label、settings の radio group、browser speech-recognition 入力の型まわりも整理され、flat ESLint runner と現行 dependency stack への更新も入りました。
Runtime And Benchmarking
Settingsではgemini-3.1-flash-live-preview前提であることと、自動 model fallback を無効にしていることを明示するようになりました。- streaming podcast relay の本体は
2026-03-31 JSTの commit7a5a1c9で入り、prepared-session の安定化は2026-04-01 JSTの6e2f181で続けて入っています。 - prepared streaming relay が失敗した場合、app は transcript 継続や旧 model retry へ隠して切り替えず、その Gemini Live error をそのまま止めて表示します。
- benchmark raw artifact の既定出力先は system temp directory になり、長めの Playwright run でも watched repository 書き込みが
next devreload を誘発しにくくなりました。 npm run bench:podcast:topic -- <topic-file>で UTF-8 topic file を安全に扱え、E2E_BENCH_MODES=streaming/batchで片側 mode のみを切り出せます。
Tooling And Docs
scripts/e2e-podcast-relay.mjs、scripts/benchmark-podcast-relay.mjs、scripts/build-podcast-benchmark-report.mjs、scripts/verify-podcast-benchmark-layout.mjsにより、relay 検証、計測、chart 生成、SVG layout check を一通り再現できます。- benchmark report は英日両方で公開され、stable SVG / PNG asset と
podcast-benchmark-overview.json、podcast-benchmark-history.json、podcast-benchmark-history.csvがdocs/public/benchmarksに保存されます。 - repository の lint は
eslint.config.mjsとscripts/run-eslint.mjsベースになり、Tailwind CSS4.2.2、TypeScript6.0.2、@google/genai1.48.0、@types/node25.5.0、actions/configure-pages@v6への更新も取り込みました。 - README と docs の入口も truth-sync し、最新 release note、companion guide、benchmark workflow が英日両方から見つけやすくなっています。
Known Constraints
- app は古い Gemini Live preview model へ自動 fallback しません。3.1 request が invalid な場合は、現在の runtime path 側を修正してください。
- podcast mode は引き続きターン制で、2 人の同時発話は行いません。
- checked-in benchmark report には、temp-dir safeguard 導入前に上書きされた最初の artifact folder の代わりとして、AGI の 1 run 平均を preserved console log から補っています。
- YouTube relay は引き続き inbound-only で、Gemini の返答を 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