旧配布版 v1.0 から v2.0 へ切り替える理由
=========================================

1. Webアップロード方式
旧: 1サイクルごとにsftp.exeを起動しSSH接続/切断。
新: ssh.exeを1プロセス維持し、Native SFTP v3を直接送受信。
理由: 長時間運転時のプロセス/TCP churnを減らし、Uploader死亡を分離・自動復旧できるようにする。

2. HLS公開の安全性
旧: TS/m3u8をSFTP put。
新: .uploadingへ全量送信 -> CLOSE -> remote size確認 -> rename公開。
理由: HTTP側へ書き込み途中のTS/m3u8を見せない。

3. 転送/生成検証
新: 全TS size照合、20本に1本SHA-256 readback、local TS MPEG-TS structure検証。
理由: 音切れ時に「生成」「転送」「再生」のどこかを切り分けるため。

4. HLS window
旧配布例: list_size=8。
新: list_size=20 (2秒TS x 20 = 約40秒)。
理由: 現行ランタイムと設定例を一致させ、8秒再生目標に対して十分な履歴を持つ。

5. playlist snapshot Access Denied
旧/切替前: snapshot処理でAccess Denied 1回でも外側SFTP recoverへ進むケース。
新: local snapshot処理を最大3回、150ms間隔で再試行してからrecover。
理由: 一瞬のファイル共有競合だけでSSHを張り直さない。

6. TwitCore名/文字コード
旧配布サンプル: generic ASCII名へ変更。
新: 実運用安定版の「じゅんちゃんツイキャスコア」名を維持。
理由: Control Centerのprocess検出、利用者の既存手順、文字コードを崩さない。

7. クレジット表記
旧: 作曲/作曲者。
新: 製作者。
理由: 楽曲提供者からの表記要望に合わせ、B1/Web/Twitで統一。内部Composerメタデータは互換性維持。

8. Playlist Timer
旧配布版: 未収録。
新: v1.0.1 VERIFIEDを追加。
理由: 時刻変更時に曲を途中で切らず、現曲終了後 PAUSE -> Playlist Select -> PLAY を厳守するため。
