Skip to content

fix(pages): 残り 4 個の demo HTML にも favicon link を追加 - #586

Merged
ayutaz merged 1 commit into
devfrom
fix/pages-favicon-secondary-demos
Jun 29, 2026
Merged

fix(pages): 残り 4 個の demo HTML にも favicon link を追加#586
ayutaz merged 1 commit into
devfrom
fix/pages-favicon-secondary-demos

Conversation

@ayutaz

@ayutaz ayutaz commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Summary

PR #585 で追加した GitHub Pages の pre-deploy gate が、 merge 後の初回デプロイ run #28370353050 で <link rel="icon"> 不在を 4 件検出して deploy を停止 (deploy job は skip)。 gate が gate として正しく機能したケースで、 残り 4 つの demo HTML (PR #585 で見落としていたサブページ) に同じ favicon link を追加する follow-up。 gate を緩める band-aid は採用しない (feedback_no_band_aid_fixes)。

Affected Components

  • Python (training / src/python_run)
  • Rust (piper-core / piper-cli / piper-python / piper-wasm)
  • C# (PiperPlus.Core / PiperPlus.Cli)
  • C++ (libpiper_plus / iOS / Android)
  • Go (src/go)
  • WASM / npm (src/wasm/openjtalk-web)
  • Docker
  • CI / CD
  • Documentation

Type

  • Bug fix
  • New feature
  • Refactoring
  • Documentation
  • CI/CD
  • Dependencies

Risk Level

  • Patch (bug fix / 内部改善のみ — 既存 API / output に影響なし)
  • Minor (新機能 / 非破壊変更)
  • Major (破壊的変更)

Contract Impact

  • None — docs/spec/*.toml への影響なし。 HTML head に link 1 行追加のみで API / 音響パリティに変更なし

変更内容

機能名 動作 これがないと起こること
multilingual.html に favicon link 追加 <link rel="icon" type="image/svg+xml" href="../../assets/favicon.svg"><title> 直下に挿入 このページを開くと browser auto-fetch で /favicon.ico 404、 console noise + PR #585 で追加した pre-deploy gate が fail
piper-espeak-complete.html に同上 同上 同上
piper-espeak-english.html に同上 同上 同上
simple-multilingual.html に同上 同上 同上

設計判断

  • 5 個全 HTML を統一: PR fix(pages): favicon SVG 同梱 + post-deploy 404 検知 gate を追加 #585 では root index (deploy 後の index.html / 404.html / multilingual-demo/index.html) のみ favicon link を追加していた。 deploy step は cp -r src/wasm/openjtalk-web/test/multilingual-demo/* deploy/multilingual-demo/ demo HTML を bundle に含めるため、 secondary HTMLs にも link を追加しないと console noise が残る
  • deploy 側 sed の path 書き換え: source HTML は ../../assets/favicon.svg (depth 2 から root)。 deploy workflow の s|\.\./\.\./|../|g で multilingual-demo/ subdir の場合 ../assets/favicon.svg に書き換わり、 https://ayutaz.github.io/piper-plus/assets/favicon.svg に解決される (PR fix(pages): favicon SVG 同梱 + post-deploy 404 検知 gate を追加 #585index.html で実証済の挙動)
  • gate を緩める band-aid は採らない: PR fix(pages): favicon SVG 同梱 + post-deploy 404 検知 gate を追加 #585 の gate を「primary HTML だけ検証」 に書き換える方が変更行数は少ないが、 console 404 を意図的に許容することになり gate の目的に反する。 secondary HTMLs を直す方が正しい (feedback_no_band_aid_fixes)
  • 画一的な insert ポイント: 全 4 ファイルとも <meta name="viewport"> 直下、 同一の link 行。 機械的に検査可能で、 将来 demo HTML を追加した時の漏れも pre-deploy gate が catch する

Test Plan

  • grep -L 'rel="icon"' src/wasm/openjtalk-web/test/multilingual-demo/*.html の出力が空 (= 全 5 HTML に link あり)
  • CI: Deploy WebAssembly Demo to GitHub Pages workflow の Pre-deploy gate が 0 件 MISSING で pass
  • CI: Post-deploy verification が 13 アセット全て 2xx
  • merge 後 https://ayutaz.github.io/piper-plus/multilingual-demo/multilingual.html をブラウザで開き console に favicon.ico 404 が出ないこと
  • 同様に piper-espeak-complete.html / piper-espeak-english.html / simple-multilingual.html で 404 不在

Checklist

  • Tests pass locally (grep -L で全 5 HTML カバレッジ確認済)
  • No GPL / LGPL deps introduced (HTML 1 行追加のみ)
  • Documentation updated (該当なし — spec 文書への影響なし)

Related Issues

PR #585 follow-up (同 PR の pre-deploy gate が初稼働で検出した漏れの修正)

PR #585 で追加した pre-deploy gate が初回デプロイで favicon-<link> 不在を
4 件検出 (multilingual.html / piper-espeak-{complete,english}.html /
simple-multilingual.html)。 gate が gate として機能したケース。

PR #585 では index.html のみに <link rel="icon"> を追加していたため、
deploy bundle にコピーされる他の demo HTML 4 個では browser auto-fetch
による favicon.ico 404 が残る状態だった。 root cause を直す
(gate を緩める band-aid は採らない、 feedback_no_band_aid_fixes)。

5 個全 HTML が deploy 後に <link rel="icon" type="image/svg+xml"
href="../../assets/favicon.svg"> を持ち、 deploy 側 sed で
multilingual-demo/ subdir 配置の場合は ../assets/favicon.svg に
正しく書き換わる。
Copilot AI review requested due to automatic review settings June 29, 2026 15:31
@github-actions

Copy link
Copy Markdown
Contributor

Required status-check gate (deferred)

Head SHA f28d20f is no longer the branch tip (latest: b28aeb6). Waiting for the new commit's spoke runs to complete before re-evaluating.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

GitHub Pages の pre-deploy gate が検出した「<link rel="icon"> 不在」を解消するため、multilingual-demo/ 配下の残り 4 つの demo HTML に favicon SVG への link を追加し、ブラウザの /favicon.ico 自動 fetch による 404 と gate fail を防ぎます。

Changes:

  • multilingual-demo/ 配下の 4 HTML に <link rel="icon" type="image/svg+xml" href="../../assets/favicon.svg"> を追加
  • 既存の favicon asset(src/wasm/openjtalk-web/assets/favicon.svg)への参照を統一

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
src/wasm/openjtalk-web/test/multilingual-demo/simple-multilingual.html head に favicon link を追加
src/wasm/openjtalk-web/test/multilingual-demo/piper-espeak-english.html head に favicon link を追加
src/wasm/openjtalk-web/test/multilingual-demo/piper-espeak-complete.html head に favicon link を追加
src/wasm/openjtalk-web/test/multilingual-demo/multilingual.html head に favicon link を追加

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

Copy link
Copy Markdown
Contributor

Runtime Parity Deep — audio (informational tier)

Pairs compared: 15, failing: 14, runtimes skipped: 0.

A B Tier Result Detail
cpp csharp sha256 ⚠️ cff4ad6225b3 vs 8686b457ea53
cpp csharp peak_rms ⚠️ Δrms=0.13973 (≤ 0.005)
cpp csharp snr ⚠️ frame count differs: 3129 vs 6615
cpp go sha256 ⚠️ cff4ad6225b3 vs 45bab11c8512
cpp go peak_rms ⚠️ Δrms=0.31778 (≤ 0.005)
cpp go snr ⚠️ SNR=0.16 dB (≥ 60.0)
cpp python sha256 ⚠️ cff4ad6225b3 vs b250c663883f
cpp python peak_rms ⚠️ Δrms=0.13931 (≤ 0.005)
cpp python snr ⚠️ SNR=-2.20 dB (≥ 60.0)
cpp rust sha256 ⚠️ cff4ad6225b3 vs ed989ee566c2
cpp rust peak_rms ⚠️ Δrms=0.26682 (≤ 0.005)
cpp rust snr ⚠️ frame count differs: 3129 vs 7539
cpp wasm sha256 ⚠️ cff4ad6225b3 vs e1b74969bb1a
cpp wasm peak_rms ⚠️ Δrms=0.37844 (≤ 0.005)
cpp wasm snr ⚠️ frame count differs: 3129 vs 3328
csharp go sha256 ⚠️ 8686b457ea53 vs 45bab11c8512
csharp go peak_rms ⚠️ Δrms=0.17804 (≤ 0.005)
csharp go snr ⚠️ frame count differs: 6615 vs 3129
csharp python sha256 ⚠️ 8686b457ea53 vs b250c663883f
csharp python peak_rms Δrms=0.00043 (≤ 0.005)
csharp rust sha256 ⚠️ 8686b457ea53 vs ed989ee566c2
csharp rust peak_rms ⚠️ Δrms=0.12709 (≤ 0.005)
csharp rust snr ⚠️ frame count differs: 6615 vs 7539
csharp wasm sha256 ⚠️ 8686b457ea53 vs e1b74969bb1a
csharp wasm peak_rms ⚠️ Δrms=0.23871 (≤ 0.005)
csharp wasm snr ⚠️ frame count differs: 6615 vs 3328
go python sha256 ⚠️ 45bab11c8512 vs b250c663883f
go python peak_rms ⚠️ Δrms=0.17847 (≤ 0.005)
go python snr ⚠️ SNR=-10.53 dB (≥ 60.0)
go rust sha256 ⚠️ 45bab11c8512 vs ed989ee566c2
go rust peak_rms ⚠️ Δrms=0.05096 (≤ 0.005)
go rust snr ⚠️ frame count differs: 3129 vs 7539
go wasm sha256 ⚠️ 45bab11c8512 vs e1b74969bb1a
go wasm peak_rms ⚠️ Δrms=0.06066 (≤ 0.005)
go wasm snr ⚠️ frame count differs: 3129 vs 3328
python rust sha256 ⚠️ b250c663883f vs ed989ee566c2
python rust peak_rms ⚠️ Δrms=0.12752 (≤ 0.005)
python rust snr ⚠️ frame count differs: 3129 vs 7539
python wasm sha256 ⚠️ b250c663883f vs e1b74969bb1a
python wasm peak_rms ⚠️ Δrms=0.23913 (≤ 0.005)
python wasm snr ⚠️ frame count differs: 3129 vs 3328
rust wasm sha256 ⚠️ ed989ee566c2 vs e1b74969bb1a
rust wasm peak_rms ⚠️ Δrms=0.11162 (≤ 0.005)
rust wasm snr ⚠️ frame count differs: 7539 vs 3328

@github-actions

Copy link
Copy Markdown
Contributor

Bundle size gate

Status Ecosystem Package Baseline Observed Delta Tolerance
SKIP npm piper-plus n/a 59.2 KiB n/a ±3%
SKIP npm @piper-plus/g2p n/a 71.1 KiB n/a ±3%
SKIP nuget PiperPlus.Core n/a 111.6 KiB n/a ±5%
SKIP nuget PiperPlus.Cli n/a 125.38 MiB n/a ±5%
SKIP cargo piper-plus n/a n/a n/a ±5%
SKIP maven piper-plus-g2p-android n/a 2.92 MiB n/a ±5%

Summary: 0 fail / 6 skip / 0 ok

SKIP means the artifact was not built in this job, or the baseline is a placeholder. The gate never fails on SKIP.

@github-actions

Copy link
Copy Markdown
Contributor

Multi-Runtime RTF Benchmark

Policy: warn-only (thresholds: RTF +/-10%, P50 +/-10%, P95 +/-15%)

Model: test/models/multilingual-test-medium.onnx (warmup=5, runs=30)

Runtime Text RTF P50 (ms) P95 (ms) Baseline RTF RTF Δ Baseline P50 P50 Δ Baseline P95 P95 Δ
python short 4.097 5565.3 5651.5 4.4317 -7.6% 6324.8 -12.0% 6757.1 -16.4%
python medium 1.267 6970.7 7175.8 1.0438 +21.4% ⚠️ 5882.0 +18.5% ⚠️ 6208.1 +15.6% ⚠️
python long 0.2582 8861.4 9124.7 0.2251 +14.7% ⚠️ 7755.6 +14.3% ⚠️ 8124.9 +12.3%
rust short 0.9017 1358.7 1414.9 0.8309 +8.5% 1310.9 +3.6% 1359.6 +4.1%
rust medium 0.1984 1261.4 1311.1 0.2501 -20.7% 1614.3 -21.9% 1636.8 -19.9%
rust long 0.1053 3713.5 3753.0 0.1039 +1.3% 3673.8 +1.1% 3697.7 +1.5%
go short 2.2968 2958.5 2973.6 2.3051 -0.4% 3125.1 -5.3% 3216.7 -7.6%
go medium 0.5358 3314.0 3350.1 0.5123 +4.6% 3158.6 +4.9% 3358.1 -0.2%
go long 0.1445 5297.7 5476.8 0.1464 -1.3% 5374.6 -1.4% 5467.3 +0.2%
csharp short 2.8207 1530.6 1611.4 2.8462 -0.9% 1542.0 -0.7% 1627.3 -1.0%
csharp medium 0.8838 1598.4 1671.2 0.8929 -1.0% 1608.6 -0.6% 1811.7 -7.8%
csharp long 0.1789 2287.5 2351.3 0.1413 +26.6% ⚠️ 1813.8 +26.1% ⚠️ 1913.0 +22.9% ⚠️
cpp short 0.9193 1398.6 1453.9 0.8694 +5.7% 1402.4 -0.3% 1431.6 +1.6%
cpp medium 0.219 1441.2 1471.1 0.2529 -13.4% 1686.2 -14.5% 1724.0 -14.7%
cpp long 0.1013 3644.6 3726.0 0.0988 +2.5% 3573.3 +2.0% 3641.5 +2.3%
wasm short (missing) - - n/a - n/a - n/a -
wasm medium (missing) - - n/a - n/a - n/a -
wasm long (missing) - - n/a - n/a - n/a -

⚠️ One or more cells regressed beyond the RTF, P50, or P95 threshold. Warn-only while the baseline is being calibrated; this will become a hard gate once we have ~2-3 weeks of variance data.

@ayutaz
ayutaz merged commit ca573fb into dev Jun 29, 2026
91 checks passed
@ayutaz
ayutaz deleted the fix/pages-favicon-secondary-demos branch June 29, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants