v10.15.1🎉 - #6955
Merged
Merged
Conversation
Co-authored-by: TinyKitten <32848922+TinyKitten@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_01WS1LSBnYTMfm7CyrzqKxuW Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WS1LSBnYTMfm7CyrzqKxuW Co-authored-by: Claude <noreply@anthropic.com>
* 全ナンバリングアイコンでAndroidのグリフ上下ズレを補正 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NcNhShP3R1kZg8MNrvu7kR * 縮小版のナンバリングでも実際の文字サイズから補正量を求める Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NcNhShP3R1kZg8MNrvu7kR --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* iOS本体アプリにVOICEVOX COREの合成モジュールとフレームワーク取得スクリプトを追加 - ios/Modules/VoicevoxTTS: 辞書・VVM を受け取り日本語を WAV へ合成する RN ネイティブモジュール (Swift + ObjC ブリッジ) - voicevox_core 0.17.0 / voicevox_onnxruntime 1.23.2 の xcframework を scripts/fetch-voicevox-frameworks.mjs が SHA-256 検証付きで取得し ios/Frameworks へ展開する (展開物は gitignore) - Xcode プロジェクトは ProdTrainLCD / CanaryTrainLCD にだけソースとフレームワークを追加し、App Clip (非圧縮 15MB 上限) には含めない - npm run ios と iOS ビルドワークフローの pod install 前に取得ステップを追加 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * iOSでリモートTTSが使えない回の日本語をVOICEVOXで読み上げるフォールバックエンジンを追加 - Remote Config に voicevox_tts_enabled_ios / voicevox_tts_manifest_url_ios / voicevox_tts_style_id_ios を追加 (未配信時は無効) - src/lib/voicevox: マニフェスト (zod) と辞書・VVM のダウンロード・SHA-256 検証・バージョン管理 - useVoicevoxSpeechEngine: 日本語を VOICEVOX で合成して expo-audio で再生し、英語は端末内蔵 TTS へ委譲する - useTTS の経路を リモート → VOICEVOX → 端末内蔵 TTS の順にし、使えない条件では従来どおり端末内蔵 TTS へ倒す - scripts/build-voicevox-manifest.mjs: 配信用マニフェストの生成スクリプト Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * VOICEVOX:No.7のクレジットをライセンス画面へ追加しオンデバイスTTSの設計書を整備 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * 自動アナウンス有効化時にオフライン用日本語音声のダウンロードを尋ね設定画面に進捗と操作を表示 - VOICEVOX 資産の取得はユーザーの同意 (MMKV VOICEVOX_DOWNLOAD_CONSENTED) を得てから始め、同意後は中断・更新分を自動で再開する - ダウンロード進捗をファイル横断で合算して購読可能にし (getVoicevoxAssetsStatus / useVoicevoxAssetsStatus)、キャンセルと削除を追加 - TTS 設定画面: 有効化時の同意ダイアログと、未取得 / 取得中 (進捗バー) / 取得済み / 失敗の各状態を出すパネル Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * VOICEVOXネイティブモジュールの参照がiOS限定であることを検証するテストを追加 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * CodeRabbitの指摘に対応しApp Clipでのクレジット非表示・日本語無効時の同意省略・キャンセル直後の再要求などを修正 - VoicevoxTTSModule: deinit が合成キュー上で走った場合の queue.sync デッドロックを回避し、VVM オープン失敗時に合成器を解放する - fetch-voicevox-frameworks: バージョンマーカーだけでなく Info.plist の存在も確認してから取得を省略する - assets: キャンセル直後に requestVoicevoxAssetsDownload が呼ばれても同意を記録し、中断が片付いてから取り直す - Licenses: App Clip では iosOnly のクレジットを出さない (テスト追加) - TTSSettings: 日本語を読まない設定では同意ダイアログを出さない (テスト追加) - manifest.test: 相対パス検証を他の検証と切り分ける - docs: シェルで解釈されない URL プレースホルダーに変更し、3 エンジンの選択順を追記 - 新規の公開関数へ JSDoc を付与 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * リモートTTS設計書のRemote Config節を3エンジン構成の説明に揃える Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * VOICEVOX資産の配信手順をリポジトリ外の作業ディレクトリで行う形に直し配信先の構成を追記 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * VOICEVOX資産をR2へ配信する公開スクリプトを追加しスクリプト群をBiomeで整形 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * VOICEVOX資産の取得手順を失敗時に停止する形にしマニフェストURLのhttps必須を明記 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * VOICEVOX資産の配信スクリプトをwrangler不要のCloudflare API直接呼び出しにしトークンを環境変数に置かずに済むようにする Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb * VOICEVOX資産の配信で公開済みversionを別内容で上書きしないよう検査を追加 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb --------- Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb Co-authored-by: Claude <noreply@anthropic.com>
…のArchive検証失敗を修正 (#6890)
…tアップロードの検証失敗を修正 (#6893) Claude-Session: https://claude.ai/code/session_01XhiZDbeC767daH6qcLpArb Co-authored-by: Claude <noreply@anthropic.com>
* GPXをAndroidのテストプロバイダへ流して実機の測位パイプラインを検証するスクリプトとスキルを追加 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfFqbxEsz7sm3zdCqmmP5B * GPX再生スクリプトの引数検証とtrkpt対応と中断時の後始末競合を修正 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfFqbxEsz7sm3zdCqmmP5B * GPX再生でGPXの長さを超える--startをエラーにして先頭再生への暗黙のフォールバックをやめる Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KfFqbxEsz7sm3zdCqmmP5B --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HZf1ehMYVvEHiinv8wvpzu Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* VOICEVOX資産のstaging配信先の手順を設計書に追記 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011tVYs6Yu7jchkzxe6hAG2t * staging配信先の説明で資産差し替え時に起きることを具体的に書く Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011tVYs6Yu7jchkzxe6hAG2t * staging配信先の説明で反映範囲・資産の同一性判定・トークンの扱いを明確にする Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011tVYs6Yu7jchkzxe6hAG2t * staging配信先の説明にproduction側のスタイルID更新を追記 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011tVYs6Yu7jchkzxe6hAG2t * staging配信先の説明にR2とRemote Configの非原子性と移行手順を追記 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011tVYs6Yu7jchkzxe6hAG2t * staging配信先の説明でマニフェスト取得契機とversion重複検査の範囲を正す Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011tVYs6Yu7jchkzxe6hAG2t * staging配信先の説明でマニフェスト取得の2経路と切り戻し時のスタイルID復帰を明記 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011tVYs6Yu7jchkzxe6hAG2t --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* 設定画面とフィードバック送信前によくある質問への導線を追加して非対応端末の案内をアプリ内判定に頼らない形にする Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D5B5BXLyHgiRiH1ojd87dP * フィードバックモーダルのよくある質問への導線を入力欄より前へ移して長文入力後に知らせる形を避ける Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D5B5BXLyHgiRiH1ojd87dP * フィードバックモーダルのよくある質問への導線をFigmaの確定版に合わせて注意書きの直前の1行リンクにする Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D5B5BXLyHgiRiH1ojd87dP * よくある質問を開けない場合のテストで送信操作まで通して送信フローを妨げないことを実際に検証する Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D5B5BXLyHgiRiH1ojd87dP --------- Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017FqiR5hU3HTFnN5PXNKKp3 Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011YutxZAqkKyfiDREtqHrf2 Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: TinyKitten <32848922+TinyKitten@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_01XAoWar7K2CTWnmF8Q4JwHf Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: TinyKitten <32848922+TinyKitten@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_018ZjNCYFFYPQd3ZHtrPhdaC Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* エージェント向けドキュメントのバージョン管理手順をjjからgitへ戻す Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pm4Bow3JtWJvmHYF78yL9k * レビュー指摘に従い古いremote-tracking参照での比較とHEAD解決の記述を修正 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pm4Bow3JtWJvmHYF78yL9k * レビュー指摘に従い参照の鮮度確認と削除前のローカル枝確認を追記 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pm4Bow3JtWJvmHYF78yL9k * レビュー指摘に従い未pushのheadをpushしてから比較する分岐を追記 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pm4Bow3JtWJvmHYF78yL9k * レビュー指摘に従いリモート参照の判定と枝切り替え前の確認を全スキルで統一 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pm4Bow3JtWJvmHYF78yL9k * レビュー指摘に従い未pushでのfetch回避と終了コード退避と衝突検証の順序を修正 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pm4Bow3JtWJvmHYF78yL9k * レビュー指摘に従い枝の存在判定と削除時のSHA固定と版数抽出の取りこぼしを修正 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pm4Bow3JtWJvmHYF78yL9k --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0153nzW9kBfL71DcfeQR3beo
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Contributor
|
抽出したバージョン 10.15.1 は現在のバージョンと同一です。バージョンを上げる必要がある場合はブランチ名を変更してください。 |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7NJSGcnmF9rF1GRe3gcLL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
v10.15.1 の本番パッチリリース。
devに積まれた 62 コミット(Canary 版数バンプ 22 件、依存更新 2 件、dev←master同期マージ 1 件を含む)に版数バンプ 1 コミットとdev取り込みマージ 1 コミットを加えた計 64 コミットをmasterへ反映し、アプリ版数を 10.15.0 → 10.15.1 に更新する。主軸は測位パイプラインの不具合修正(EMA スムージングの α の正規化、速度フィルタの基準変更、ETA による測位棄却とそのデッドロック解消、実走で悪化した到着圏緩和の廃止)と、TTS の誤読修正・Android のナンバリング表示補正・CI 製ビルドから Sentry へ例外が届かない問題の修正。利用者向けの新規機能追加は無く、既存挙動の修正が中心のためパッチ扱いとする。
変更の種類
変更内容
試験的機能(
ExperimentalSettings)限定の変更は本番の挙動に影響しないため以下には記載していない(例: #6922 のリモート TTS 強制切替)。不具合修正(測位)
assets/gpx配下の全 GPX を測位パイプラインへ流す回帰テストを追加 (ETA補助を有効にした状態でassets/gpx配下の全GPXを測位パイプラインへ流す回帰テストを追加 #6942)不具合修正(TTS・表示)
UI・文言
iOS: VOICEVOX 読み上げ(Remote Config 未配信のため既定では無効)
VoicevoxResultCode型の参照をInt32に置き換えて iOS ビルドを修正 (VOICEVOXモジュールで曖昧になるVoicevoxResultCode型の参照をInt32に置き換えてiOSビルドを修正 #6887)voicevox_onnxruntimeのCFBundleIdentifierに含まれるアンダースコアを取得時にハイフンへ正規化して iOS の Archive 検証失敗を修正 (voicevox_onnxruntimeのCFBundleIdentifierに含まれるアンダースコアを取得時にハイフンへ正規化してiOSのArchive検証失敗を修正 #6890)CFBundleIdentifierに揃え TestFlight アップロードの検証失敗を修正 (VOICEVOXフレームワークを取得時にad-hocで署名し直して署名識別子をCFBundleIdentifierに揃えTestFlightアップロードの検証失敗を修正 #6893)実行経路は
isSupported()(src/lib/voicevox/assets.ts)が ①ネイティブモジュールVoicevoxTTSModuleの存在 ②Remote Configvoicevox_tts_enabled_ios === true③voicevox_tts_manifest_url_ios !== nullの 3 条件すべてを要求する。1 つでも欠けると phase はunsupportedになり、設定画面のパネルも約 160MB のダウンロード同意ダイアログも出ず、読み上げは従来どおり「リモート TTS → 端末内蔵 TTS」のまま変わらない。voicevox_tts_enabled_iosのフォールバック値はfalse、voicevox_tts_manifest_url_iosは未設定なので、このリリース時点では本番で無効である。ただしフレームワークは
ProdTrainLCDにもリンクされるため iOS バイナリサイズは増加する(App Clip には含めない)。配信資産(Cloudflare R2)は本番・staging とも公開済み。 有効化に残っている作業は Remote Config のキー設定(
TrainLCD/functions側のCONFIG_KV)だけで、このリリースのブロッカーではない。manifest.jsonversionassets.trainlcd.app2026-09-08assets-stg.trainlcd.app2026-09-08設計書が本番昇格前の照合を求めている 3 点(
version/files[].path/files[].sha256)は本番と staging で一致している。配信済みの6.vvmはスタイル ID 29 / 30 / 31 を含み、コード既定値VOICEVOX_DEFAULT_STYLE_ID = 30(src/constants/voicevox.ts)と整合するため、voicevox_tts_style_id_iosは未設定のままでも合成できる。有効化するときは canary(dev 側 Remote Config →assets-stg)で確かめてから production 側を立てる。プラットフォーム・CI/CD
SENTRY_DSNを渡して CI 製ビルドから例外が送信されない問題を修正 (ビルドワークフローにSENTRY_DSNを渡してCI製ビルドから例外が送信されない問題を修正 #6946)OutOfMemoryErrorを解消 (Kotlinデーモンのメタスペース上限を明示してAndroidリリースビルドのOutOfMemoryErrorを解消 #6879)開発者向けツール(アプリ挙動に影響なし)
lineGroupIdから GPX を生成できるようにして通過駅をstopConditionから自動判定 (列車種別グループのlineGroupIdからGPXを生成できるようにして通過駅をstopConditionから自動判定 #6911)iosディレクトリからassets配下へ移し総武快速線のサンプルを追加 (GPXの置き場所をiosディレクトリからassets配下へ移し総武快速線のサンプルを追加 #6920)依存更新
joiを 17.13.3 から 17.13.7 へ更新 (Bump joi from 17.13.3 to 17.13.7 #6912)js-yamlを 3.14.2 から 3.15.2 へ更新 (Bump js-yaml from 3.14.2 to 3.15.2 #6885)ドキュメント
同期マージ
dev←master同期マージの取り込み (dev<-master #6865)版数更新
v10.15.1 をリリース:npm run version:bump 10.15.1による版数更新。package.json/package-lock.json/app.config.ts: 10.15.0 → 10.15.1CURRENT_PROJECT_VERSION2906 → 2907、MARKETING_VERSION10.15.1:app:versionCode100000753 → 100000755:wearable:versionCode100000754 → 100000756(:app+ 1 を維持)dev取り込みマージdevの最新をv10.15.1リリースブランチへ取り込み: リリースブランチ作成後にdevへ入った 4 コミット(#6956 / #6957 / #6959 / #6960)を取り込むマージコミット。dev側の Canary 版数バンプ (#6959) と本 PR の版数バンプが同じ数値(buildNumber2907 /:app100000755 /:wearable100000756)へ到達していたため、数値の競合は無い。衝突したのはandroid/app/build.gradleとandroid/wearable/build.gradle.ktsのversionNameのみで、リリース側の10.15.1を採用した(dev側は10.15.0のまま)。マージ後の版数は以下で一貫している。app.config.ts:version10.15.1 /buildNumber2907 /versionCode100000755package.json: 10.15.1project.pbxproj:MARKETING_VERSION10.15.1(4 箇所)/CURRENT_PROJECT_VERSION2907(18 箇所、他の値なし):app100000755 /:wearable100000756、全フレーバーのversionNameが 10.15.1テスト
dev取り込み後のリリースブランチ上でコード品質チェックを再実行し、いずれも成功(自動修正なしの check-only)。実行環境は Node 24.21.0 / npm 11.19.0(.nvmrcの 24 系に一致)。依存はnpm ciでpackage-lock.jsonどおりに導入(再ロックなし)。npm run lint: 747 ファイル、指摘なしnpm run typecheck: エラーなしnpm test: 279 suites / 3040 tests すべて成功なお、含まれる各変更は
devへマージされる時点でレビューと CI を通過済み。リグレッションリスクと緩和
測位パイプライン(最大リスク): EMA の α 正規化・速度フィルタの基準変更・ETA による測位棄却・到着圏緩和 R1 の廃止が同一リリースに同居する。緩和として ETA補助を有効にした状態でassets/gpx配下の全GPXを測位パイプラインへ流す回帰テストを追加 #6942 が
assets/gpx配下の全 GPX(山手線・京王特急・片町線快速・総武快速・東北新幹線)を ETA 補助有効の状態で測位パイプラインへ流す回帰テストを追加済み。R1 廃止 (実走で到着判定を悪化させたETA到着圏緩和(R1)を廃止 #6950) は実走結果を根拠に以前の緩和を差し戻すもので、到着判定は R1 導入前の挙動に戻る。ETA 棄却のデッドロック解消 (地下鉄で到着表示が最大90秒遅れるETA棄却のデッドロックを解消 #6960): ETAが許す進行量を超える測位を棄却して地下鉄で無関係な駅へ飛ぶのを防ぐ #6939 の ETA 進行量上限が測位を棄却して位置が凍結すると、
arrivedが到着駅で張り付いたまま AT_STATION アンカーのobservedAtMsが 5 秒ごとにDate.now()で打ち直され続け、ETA 仮想時計が進まずフェーズが DWELLING に固定される。許容が停車駅 1 つぶんのまま広がらないため棄却が自力で解けず、ETA_BOUND_MAX_HOLD_MSに達するまで(地下鉄で最大 90 秒)到着表示が遅れていた。アンカーの観測時刻を「最後に受理した測位のtimestamp」に限定し、測位が受理されなくなった時点から仮想時計が動き出すようにして解消した。棄却ロジック本体を触るため ETAが許す進行量を超える測位を棄却して地下鉄で無関係な駅へ飛ぶのを防ぐ #6939 と同じ経路に影響する。回帰テストはsrc/utils/etaProgressBound.test.ts/src/hooks/useEtaAnchor.test.tsx/src/store/atoms/location.etaBound.test.tsに追加済みで、ETA補助を有効にした状態でassets/gpx配下の全GPXを測位パイプラインへ流す回帰テストを追加 #6942 の GPX 通し回帰も通っている。iOS バイナリ: VOICEVOX のフレームワークが
ProdTrainLCDにリンクされるためサイズが増加する。TestFlight 側の検証失敗は voicevox_onnxruntimeのCFBundleIdentifierに含まれるアンダースコアを取得時にハイフンへ正規化してiOSのArchive検証失敗を修正 #6890 / VOICEVOXフレームワークを取得時にad-hocで署名し直して署名識別子をCFBundleIdentifierに揃えTestFlightアップロードの検証失敗を修正 #6893 で解消済み。実行経路は Remote Config の 2 キーが未設定のためunsupportedで、同意ダイアログも設定画面のパネルも出ず読み上げ挙動は現行と同じ。R2 側の配信資産は本番・staging とも公開済みなので、有効化は Remote Config の設定だけで足りる(本リリースでは行わない)。Android versionCode:
:app100000755 /:wearable100000756 で、前回リリース(753 / 754)から 2 ずつ進む規約どおり。Play の重複エラーは起きない。dev側 Canary バンプ (chore: Bump version for PR #6958 #6959) も同じ数値のため、マージによる巻き戻し・二重採番は発生していない。Sentry: ビルドワークフローにSENTRY_DSNを渡してCI製ビルドから例外が送信されない問題を修正 #6946 により CI 製ビルドから例外が送信されるようになる。v10.11〜10.15 でイベントが届いていなかった問題の修正であり、本リリース以降で実際に届くかを確認する必要がある。
npm run lintが通ることnpm testが通ることnpm run typecheckが通ること関連Issue
スクリーンショット(任意)
未添付:
devへマージ済みの変更をmasterへ集約するリリース PR で、画面差分は各元 PR(#6943 / #6947 / #6875 / #6926 / #6956 / #6957 など)に添付済みのため。この PR 固有の差分は版数バンプとdev取り込みマージのみで画面変化はありません。🤖 Generated with Claude Code
https://claude.ai/code/session_01Q7NJSGcnmF9rF1GRe3gcLL