Manga View 本棚にLAN接続の補助アプリ
================================

0.12.170のLAN接続の表紙更新修正（2026-10-24）
本の内容を更新した直後や表紙の送信に失敗したとき、以前の表紙が更新後の本に表示される問題を修正しました。表紙と現在の本の照合情報が一致した場合だけ取得できるようにし、一覧を読み込んだ後に再登録された場合も、別の世代の表紙を取り込まないようにしました。
拡張機能を再読み込みしてManga Viewタブを開き直し、本があるPCでLAN接続の受付を停止した後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを実行して受付を再開してください。LAN補助アプリは0.12.170です。手動起動用ZIPを使う場合も最新版で再セットアップしてください。本棚・閲覧キー・認証登録は引き継ぎます。追加OCR・Qwen補助アプリは0.12.163のままで、OCRの再設定・モデル再取得・追加権限は不要です。

0.12.169のLAN接続のSVG画像修正（2026-10-24）
ローカルで読めるSVG画像を含む本が、LAN接続先の一覧に載っても開けない問題を修正しました。SVGと他の画像が混在する作品も、保存済みのページ数・内容を確認して読み取ります。表示時には既存の静的SVGの安全検査と1 MiBの容量制限を適用します。
拡張機能を再読み込みし、本があるPCでLAN接続の受付を停止した後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを実行して受付を再開してください。LAN補助アプリは0.12.169です。手動起動用ZIPを使う場合も最新版で再セットアップしてください。本棚・閲覧キー・認証登録は引き継ぎます。追加OCR・Qwen補助アプリは0.12.163のままで、OCRの再設定・モデル再取得・追加権限は不要です。

0.12.167のLAN一覧更新・原本確認修正（2026-10-24）
一覧の保存直後に通信が途切れたり設定画面を閉じたりした場合、追加した本が一覧に表示されても開けなくなる問題を修正しました。保存済みの一覧を確認し、原本の参照を復旧します。再登録や削除で不要になった原本一覧の確認も次の確認区切りで停止し、新しい作品の確認を妨げないようにしました。互換用の画像走査では、上限ちょうどの画像の後に対象外ファイルがあると上限超過になる問題を修正しました。
拡張機能を再読み込みし、開いているManga Viewタブを開き直してください。本があるPCでLAN接続の受付を停止した後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを実行し、受付を再開してください。LAN補助アプリは0.12.167です。手動起動用ZIPを使う場合も最新版で再セットアップしてください。本棚・閲覧キー・認証登録は同じ保存先へ引き継ぎます。追加OCR・Qwen補助アプリは0.12.163のままで、OCRの再設定やモデル再取得は不要です。

0.12.165のLAN接続初回起動・Windows手動起動修正（2026-10-23）
手動起動と拡張機能からの接続が初回に重なると、書き込み途中の認証情報を読み込んで失敗する問題を修正しました。認証情報の読み込み・作成時だけ共通のロックを使い、稼働中の状態確認は引き続き利用できます。Windowsの手動起動では、保存先に日本語などが含まれると起動用のパスが文字化けする問題も修正しました。
拡張機能を再読み込みし、本があるPCでLAN接続の受付を停止した後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを実行して受付を再開してください。手動起動用ZIPを使う場合も、最新版の補助アプリで再セットアップしてください。LAN補助アプリは0.12.165です。同じ保存先の本棚・閲覧キー・認証登録を引き継ぎ、追加権限はありません。

0.12.164のWindows LAN接続起動修正（2026-10-23）
Windowsで初回のLAN接続起動要求が重なった場合、ロックファイルの初期化が競合して起動・状態確認に失敗する問題を修正しました。起動要求の制御とサーバーの多重起動防止の両方で、ロック取得後に初期化します。初期化に失敗してもロックを解放します。
拡張機能を再読み込みし、本があるPCでLAN接続の受付を停止した後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを実行して受付を再開してください。手動起動用ZIPを使う場合も、最新版の補助アプリで再セットアップしてください。LAN補助アプリは0.12.164です。同じ保存先の本棚・閲覧キー・認証登録を引き継ぎ、追加権限はありません。

0.12.143のLAN・OCR接続修正
LAN接続の端末別上限と本があるPC用の処理枠を確保し、未認証接続や複数タブの原本待ちで正規の処理が妨げられる問題を修正しました。接続待ち中に入力を変えた際の誤接続・入力消失と、終了後にOCR・Qwenの処理が起動する競合も修正しました。両側の拡張機能と本があるPCのLAN補助アプリを更新してください。追加OCR・Qwenを使うPCでは、新しい接続登録ファイルを実行してください。準備済みモデル・本棚・認証登録は引き継ぎます。権限の追加はありません。

0.12.142のLAN接続キー更新
本があるPCと見る側の拡張機能を更新し、本があるPCでは最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行してください。セットアップだけでは旧キーは失効しません。設定画面で「閲覧キーと管理キーを更新」を実行すると、受付を一度停止して新しいキーで再開し、信頼済み端末をすべて失効させます。見る側へ新しい閲覧キーを渡して、スマートフォンの認証コードで接続し直してください。スマートフォンの登録と本棚の一覧は保持します。権限の追加はありません。
手動起動用ZIPは最新版に入れ替え、受付を停止してからMacでは `helpers/start-library-share.command --setup --rotate-keys`、WindowsではPowerShellで `helpers/start-library-share.ps1 -Setup -RotateKeys` を実行します。`--setup` / `-Setup` は旧版の専用実行環境を最新版へ更新する指定です。別の保存先を使っている場合は、通常起動と同じ `--data-dir` または `-DataDirectory` を指定してください。表示される新しい管理用・閲覧用キーを控えてから通常どおり起動します。受付中はキー更新を拒否します。

0.12.141のPython選択修正
Mac・Windowsの手動起動ファイルが、固定ライブラリに対応しないPythonを先に見つけても別の対応Pythonを探します。Macの通常セットアップも、版を指定した名前で入っている対応Pythonを探します。手動起動を使う場合は、新しい接続用サーバーZIPに入れ替えてください。

0.12.140のLAN接続の安全性改善
手動セットアップの更新が途中で失敗しても、以前の起動ファイルと設定を復元します。通常セットアップを再実行すると、最後にセットアップした拡張機能IDだけが本があるPCの補助アプリを起動できます。以前のIDから新しく補助アプリを呼び出すことはできません。すでに取得済みの認証情報は、この変更だけでは無効になりません。異なるIDの拡張機能を複数使う場合も、最後の1つだけが補助アプリを起動できます。
本があるPC・見る側の拡張機能を0.12.140へ更新し、開いているManga Viewタブを開き直してください。本があるPCでは「LAN接続の受付を停止」後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行し、完了後に受付を開始してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先へ引き継ぎます。権限の追加はありません。

0.12.139のLAN接続の安全性改善
補助アプリの更新中に通信ライブラリの準備や登録が失敗した場合、以前の起動ファイルと設定を復元します。原本の場所を確認する処理は、中断や時間切れのあとに残りのファイルを調べ続けないようにしました。
本があるPC・見る側の拡張機能を0.12.139へ更新し、開いているManga Viewタブを開き直してください。本があるPCでは「LAN接続の受付を停止」後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行し、完了後に受付を開始してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先へ引き継ぎます。権限の追加はありません。

0.12.138のLAN接続の安全性改善
共有の閲覧キーを知る1台が認証の記録枠を使い切っても、別のIPアドレスからの接続を妨げないようにしました。原本確認を中止した際のフォルダ読み取り終了処理を、上限内で順番に実行します。Windowsの補助アプリ登録では、64ビット側に別の登録がある場合に上書きせず停止します。配布物の作成時も、リンク先への意図しない書き込みや不完全なファイルの公開を防ぎます。
本があるPC・見る側の拡張機能を0.12.138へ更新し、開いているManga Viewタブを開き直してください。本があるPCでは「LAN接続の受付を停止」後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行し、完了後に受付を開始してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先へ引き継ぎます。権限の追加はありません。

0.12.137のLAN接続の安全性改善
表紙の保存に失敗したとき、異なる版の画像を古い版の表紙として再利用する問題を修正しました。原本確認を中止・再試行した際も、応答しないファイル操作が上限を超えて増えないようにしました。認証済みの1端末が再送防止の記録枠を使い切り、ほかの端末の接続を妨げる問題も修正しました。
本があるPC・見る側の拡張機能を0.12.137へ更新し、開いているManga Viewタブを開き直してください。本があるPCでは「LAN接続の受付を停止」後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行し、完了後に受付を開始してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先へ引き継ぎます。権限の追加はありません。

0.12.136のLAN接続の安全性改善
原本の確認中に本棚を反映し直すと、新しい一覧まで古い確認処理のエラーを受け取る問題を修正しました。表紙の整理に失敗した場合も、反映済みの一覧を失敗扱いにしません。補助アプリの更新時に一覧が古い内容へ戻る競合と、古い接続の期限切れ処理が別タブの新しい信頼登録を消す問題も修正しました。
本があるPC・見る側の拡張機能を0.12.136へ更新し、開いているManga Viewタブを開き直してください。本があるPCでは「LAN接続の受付を停止」後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行し、完了後に受付を開始してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先へ引き継ぎます。権限の追加はありません。

0.12.135のLAN接続の安全性改善
接続準備の遅い送信や終了済み通信による接続枠の占有を防ぎます。原本の読み取りが応答しない場合は提供を停止し、タブを開き直す案内を表示します。手動セットアップの同時修復で、成功した修復が巻き戻る問題も修正しました。
本があるPC・見る側の拡張機能を0.12.135へ更新します。本があるPCでは「LAN接続の受付を停止」後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行し、完了後に受付を開始してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先へ引き継ぎます。権限の追加はありません。

0.12.134のLAN接続の安全性改善
本棚のLAN接続で、通信開始直後の中断による接続枠の取り残し、原本の特殊ファイルへの置換による待ち続け、再反映後に閲覧内容の版が混ざる問題を修正しました。
本があるPC・見る側の拡張機能を0.12.134へ更新します。本があるPCでは「LAN接続の受付を停止」後、最新の「Mac用を保存」または「Windows用を保存」からセットアップを再実行し、完了後に受付を開始してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先へ引き継ぎます。
本棚の再反映後は接続先の一覧を更新し、作品を開き直してください。権限の追加はありません。

0.12.131の表示名
----------------
画面と案内の名称を「本棚にLAN接続」へ統一しました。既存の0.12.129との通信互換は維持し、この名称変更だけを理由とする再セットアップは不要です。

このPCにある本を、家庭内・社内LANや対応するプライベートVPN内の別PCからManga Viewで読むための補助アプリです。
本が入っている元のPCでだけ実行します。接続するPCにはManga View拡張機能を入れます。
本があるPCはPython 3.11以降が必要です。初回のみ暗号化ライブラリを固定した公式配布元・バージョン・ハッシュで取得します。AIモデルやクラウド契約は不要です。

安全性と更新
------------
0.12.129ではPython更新後の専用環境の復旧、古い本があるPCタブへの読取割当、LAN接続の更新・停止・再起動時に古い処理や表紙が混入する問題を修正しました。LAN接続の受付を停止し、更新した拡張機能から簡単セットアップを保存・実行するか、最新の手動起動用ZIPで準備し直してください。閲覧キー・スマートフォン登録・信頼した端末は同じ保存先に引き継ぎます。
本があるPC・見る側の拡張機能と補助アプリは0.12.33以降に揃えてください。以前のサーバーは元の起動方法で停止してから更新します。
認証キーそのものをHTTPへ送らず、要求の操作・本文・宛先・時刻・乱数・サーバー起動ごとの識別情報をHMAC-SHA256で認証します。
旧版のキー送信方式、不正な署名、変更された要求本文、要求の再送、再起動前の要求は拒否します。
本・一覧・表紙はWebTransport/HTTP3のTLS 1.3で暗号化します。署名で確認した証明書の指紋に固定し、検証失敗時は中止します。平文への切り替えはありません。
HTTPは公開の接続準備情報だけに使います。Native起動・停止の制御は同じPC内だけです。証明書の秘密鍵はメモリだけに保持し、13日の短期証明書を11日後に更新します。
原本は読み取り専用です。Appleの署名・公証と外部の第三者監査は未実施です。

起動する
--------
1. ZIPを解凍します。このREADMEはZIPの一番上にあります。
2. macOS: manga-viewer/helpers/start-library-share.command を開きます。
   Windows: PowerShellで manga-viewer/helpers/start-library-share.ps1 を実行します。
   初回は専用のユーザー領域へ実行環境を準備します。準備済みなら検査して再利用します。
   server.pyを展開場所で直接実行する方式は、検証済み実行環境がないため使用できません。
   破損時は通常起動を拒否します。再準備はMacで起動ファイルへ --setup、Windowsで -Setup を明示します。
   元の展開フォルダを変更したり、ChromeのNative Messaging登録を作ったりしません。

3. 起動したターミナルに、このPCの設定用アドレス、管理用接続キー、
   別PCからの接続先、閲覧用接続キーが表示されます。
4. 元のPCのManga ViewのLAN接続設定に「https://127.0.0.1:11437」と管理用接続キーを入力します。
5. 「この端末の一覧を反映する」で読み込み済みの本を登録します。
   0.12.39では原本のフォルダを追加指定する必要はありません。
   本があるPCのManga Viewタブが、保存済みの読み取り参照から必要な原本を取得します。
6. 別PCのManga ViewのLAN接続に、表示されたLANアドレスと閲覧用接続キーを入力します。

元のPCで既に持っている一覧を登録します。本があるPCフォルダを再帰的に取り込み直す処理はしません。
LAN接続の受付中は本があるPCのManga Viewタブも開いたままにしてください。設定画面は閉じて構いません。
読み取り参照・許可がない本は、元のPCで通常どおり開き直してから一覧を再LAN接続してください。
ディスク全体やChromeのプロファイルを探索しません。
以下は0.12.38までの原本パス方式についての説明です。旧方式との接続互換性は残しています。
0.12.38では、保存済みの作品情報と表紙を先にLAN接続します。原本の画像一覧は、その本を初めて開くときに確認します。
画像は作品フォルダの直下だけを確認し、保存済みのファイル名・容量・更新日時の一覧と照合します。
PDF・テキストは記録された1ファイルだけです。内容が変わっていたら、そのまま配信しません。
過去の取り込みで照合情報や容量を保存していない作品と、旧補助アプリでは、LAN接続開始時に原本を確認します。
子・孫フォルダや新しい作品を自動で追加することはありません。

接続できないとき
----------------
・両方のPCを同じLANに接続してください。ゲストWi-FiではPC同士の通信が禁止されることがあります。
・元のPCと、このターミナルを起動したままにしてください。スリープ中は接続できません。
・別PCからループバックアドレスには接続できません。本があるPC画面に表示されるLAN・VPN用IPアドレスのうち、そのPCから到達できるものを使います。
・OSに接続許可の画面が出た場合は、必要なプライベートネットワークでの接続を許可してください。
・ファイアウォールで許可する場合は、プライベートネットワークのTCP/UDP 11437を対象にします。
  この補助アプリがOSの許可やファイアウォール設定を自動で変更することはありません。
・Chromeがローカルネットワーク接続の許可を求めた場合は、接続先への接続を許可してください。
・本が開けない場合は、本があるPCのManga Viewタブが開いているか確認し、その本を通常どおり開き直して再LAN接続してください。
・同じポートが使用中なら、起動時に --port 11438 などを指定し、接続先も同じ番号にします。
・本を移動・差し替え・更新した場合は、元のPCで一覧を登録し直してください。
  保存済みのファイル名・容量・更新日時の一覧に一致しないものは、そのまま配信しません。
  旧原本パス方式では、ファイルの実体の識別情報も確認します。

保存とLAN接続の範囲
----------------
・元の画像・PDF・テキストをコピーして保存しません。必要なページを元のファイルから読み出します。
・登録された作品の名前、ページ数、容量、読書位置、グループ、タグ、お気に入り、閲覧統計と
  縮小した表紙画像が、接続した別PCに送られます。絶対ファイルパスは閲覧用一覧に含めません。
・一覧の登録は手動更新です。別PCからの閲覧位置・整理内容を元のPCへ書き戻す機能はありません。
・音声読み上げや文字認識に使うAIアプリは、接続したPC側の設定を使います。
  この補助アプリが元のPCのAIをLAN公開することはありません。
・接続キーを知っているLAN内の利用者は、登録した本を閲覧できます。
  閲覧用接続キーだけを接続PCに渡し、管理用接続キーは元のPCだけに入力してください。
・管理操作は同一PCのループバック（IPv4またはIPv6）からだけ受け付けます。外部インターネット向け公開用ではありません。
  ルーターのポート転送は設定しないでください。本・一覧・表紙はTLS 1.3で暗号化します。
  接続先は対応するLAN・VPN用のIPv4/IPv6に限定し、インターネット公開用の仕組みは提供しません。

保存先と停止
------------
通常、LAN接続設定は次の場所に保存します。原本と分けて、認証情報と一覧・小さな表紙だけを保存します。
macOS: ~/Library/Application Support/Manga View/Library Share
Windows: %LOCALAPPDATA%\Manga View\Library Share
Linux: ~/.local/share/manga-view/library-share

保存先は --data-dir <専用フォルダ> で変更できます。
接続キーは同じ保存先を使う限り変わりません。認証情報は他人に公開しないでください。
このターミナルでControl+Cを押すと停止します。自動起動やバックグラウンドサービスは登録しません。

技術情報
--------
API識別名: manga-view-library-share-v1
標準ポート: TCP/UDP 11437
標準待受: 既定指定0.0.0.0は可能ならIPv4/IPv6の両方で待ち受け、非対応環境ではIPv4を使用。接続元はRFC1918、100.64.0.0/10、fc00::/7、ループバックに限定。管理操作はループバックのみ。
全ての一覧・ファイル配信にTLSと役割別のHMAC認証が必要です。Bearerキーは送信しません。
表紙はJPEG/PNG/WebP、1作品256 KiB以下。
PDFのRange取得に対応し、ファイル全体をメモリに読み込まず256 KiB以下の塊で送信します。
一覧登録JSONは32 MiB以下、最大10000作品・100000ファイルです。
TLS接続・同時処理・要求と応答の待機バッファに上限を設け、認証前の接続は短い時間で終了します。
原本名や本文・AIの出力をOSコマンドや認証の指示として実行するAPIは提供しません。
旧原本パス方式では、シンボリックリンクを介する本があるPCを拒否します。
0.12.39のブラウザ参照方式は、Chromeが許可したFileSystemHandleと保存済みのファイル情報で対象を限定します。
Chromeの参照から絶対パス・inode・リンクの情報を取得できないため、この方式で全シンボリックリンクの拒否を保証するものではありません。
現行の暗号化ライブラリにはMac Intel用の公式wheelがないため、Mac Intelでの本があるPC起動は未対応です。
見る側のIntel Macには補助アプリが不要なので、この制限はありません。Windows実機の動作確認は未実施です。

スマートフォンの二段階認証（0.12.33）
----------------------------
本があるPCで最新の簡単セットアップを行い、拡張機能からLAN接続の受付を開始します。
「スマートフォンを登録する」からQRコードを認証アプリ内で読み取り、6桁のコードで登録を確認します。
認証アプリは、30秒ごとに変わる6桁の認証コードを作るアプリです。
Google Authenticator（Google認証システム）やMicrosoft Authenticatorなどを使えます。
QRコードは通常のカメラではなく、認証アプリのQRコード読み取り機能で登録してください。
登録後のコード生成はオフラインで行えます。Manga View専用のスマートフォンアプリは不要です。
スマートフォン未登録では別PCへ本を返しません。登録直後は次のコードまで待って接続します。
見る側へ渡す閲覧キーはMV2から始まり、本があるPCの本人確認情報も含みます。
見る側は閲覧キーとスマートフォンのコードで接続し、希望するとそのChromeを30日間信頼できます。
本があるPCの端末一覧で信頼を取り消せます。スマートフォンを登録し直すと全端末の信頼を取り消します。
見る側にPythonや補助アプリのインストールは不要です。
共通閲覧キーだけで本のデータを取得する旧方式は拒否します。
秘密鍵・スマートフォンの登録キー・信頼した端末の秘密は本があるPCのユーザー専用領域へ保存します。
実スマートフォン・Windows実機の操作確認と、Apple署名・公証は未実施です。

接続先の表示と省略入力（拡張機能0.12.36以降）
「LAN接続の受付を開始」のすぐ下に、LANのローカルIP・TCP/UDPポートと別PC用の接続先を表示します。
閲覧側は192.168.1.10のようにIPだけで入力でき、標準ポート11437を補います。
http://・https://は省略できます。--portで変更した場合は、192.168.1.10:11438のように指定します。
本と一覧はTLS 1.3で送信します。入力の省略によって暗号化・二段階認証を省略することはありません。

一覧を先にLAN接続で利用する方式と接続の復旧（0.12.38）
本があるPCの補助アプリも0.12.38へ更新してください。拡張機能でLAN接続の受付を停止し、最新の簡単セットアップを保存・実行してから、LAN接続の受付を開始します。
同じ設定保存先を使う場合は、スマートフォン登録と信頼した端末の設定を引き継ぎます。
本の原本を変更した場合は、元のPCで作品を読み込み直し、一覧を再LAN接続してください。
再LAN接続で利用するとファイルの索引をリセットします。同じ作品の表紙は、保存済みの内容識別情報が一致すれば再送しません。
待機中に切れた暗号化接続は、本があるPCの署名を確認して作り直します。平文では接続しません。
LAN接続・認証登録などの変更操作は自動で再送しません。結果が不明な場合は画面の状態を確認して操作してください。

大きな本棚の送信と中断した通信の解放（0.12.40）
--------------------------------------------
中断した待受通信を速やかに解放し、ひとつの通信の中断でほかの本棚へのLAN接続まで止めないようにしました。
大きな一覧・表紙・中継データは、署名で確認した本があるPCからの送信許可を待ち、64 KiB以下の単位で送ります。
受信待ちバッファ256 KiB・一覧登録JSON32 MiBの上限は維持します。LAN接続や認証の変更操作は自動で再送しません。
本があるPCの補助サーバーも0.12.40へ更新してください。暗号化や二段階認証の設定は引き継ぎます。

0.12.42：保存済み本棚の予定ページ数を、実際に保持するファイル情報の上限から分離しました。大きい本棚を登録するために全ページの原本を確認する必要はありません。索引の保持上限と暗号化・二段階認証を維持します。

0.12.48：VPN用アドレス・IPv6のLAN接続
VPNの100.64.0.0/10（100.64〜100.127）と、IPv6のプライベートアドレスfc00::/7に対応しました。従来のLAN用IPv4も使えます。IPv6の接続先は [fd7a:115c:a1e0::1]:11437 のように角括弧で囲みます。標準ポートでは [fd7a:115c:a1e0::1] だけでも入力できます。
本があるPCの接続先表示は「LAN・VPNのIP」とし、複数のIPがある場合は見る側から届くものを選びます。VPNで自宅LANへの経路がある場合は、192.168.x.xなど従来の接続先も使えます。
この対応には、両方の拡張機能と本があるPCの補助サーバーを0.12.48へ更新します。本があるPCでは「LAN接続の受付を停止」後、最新の簡単セットアップを保存して再実行し、「LAN接続の受付を開始」を押します。同じ保存先の閲覧キー・スマートフォン登録・信頼した端末を維持します。見る側に補助アプリは不要です。
暗号化、証明書の固定、二段階認証、端末の信頼、管理操作の同一PC制限を維持します。公開IP・グローバルIPv6・IPv6リンクローカル・ゾーンIDは受け付けません。ルーターへのポート開放や中継サービスは提供しません。
VPNそのものの導入、到達経路、端末間の通信許可、本があるPCへのTCP/UDP 11437の許可は利用環境側で設定します。OSのファイアウォールやネットワーク設定を自動変更しません。
IPv4/IPv6ループバックの暗号化接続と認証を試験しています。実際の外出先VPNからの通信とWindows実機の確認は未実施です。

0.12.49：VPN接続時の状態確認の安定性
接続状態の確認中にPC名の名前解決を同期で待たないようにしました。名前解決が遅い環境でも管理用の応答を返し、数値のLAN・VPNアドレスを先に表示します。名前解決は初回からバックグラウンドで行います。
手動起動の --host は、管理用の同一PC接続を保てる0.0.0.0・::・127.0.0.1・::1を指定します。通常は指定不要です。特定のLAN・VPNアドレスだけで待ち受ける指定は、管理接続が届かなくなるため起動前にエラーを表示します。LAN・VPNのIPは見る側の接続先へ入力します。
本があるPCの補助サーバーを0.12.49へ更新してください。同じ保存先の閲覧キー・スマートフォン登録・信頼した端末は保持します。
見る側の信頼は接続先ごとです。同じPCでもLAN用IPからVPN用IPへ変えた場合や、ポートを変更した場合は、新しい接続先で閲覧キーと認証コードを入力します。元の接続先で登録済みの信頼は維持します。

0.12.50：接続用サーバーの起動と接続継続の追加修正
サーバー起動時に標準ライブラリが行っていた同期の名前解決も除き、DNS応答を待たずに待ち受けを開始します。
既定起動でTCPのIPv6待ち受けを利用できない場合は、限定したエラーだけIPv4で再試行します。ポート競合・権限エラーや、明示的なIPv6指定では切り替えません。
接続元が一致しないUDPパケットは破棄し、既存の正当な暗号化接続を切断しません。通信元の変更を受け入れず、認証・証明書固定・暗号化を維持します。
並行読取時に通信ライブラリが終了通知を失い、本文を受信し終えても待ち続ける問題を修正しました。送信枠に終了通知が収まることを先に確認してから送信します。ライブラリ本体・保存済み環境は書き換えず、接続用サーバーの接続ごとに補正します。
本があるPCの補助サーバーも0.12.50へ更新してください。閲覧キー・二段階認証・信頼済み端末は同じ保存先に保持します。
手動の --host ::1 はIPv6だけの待ち受けです。拡張機能からの自動起動・管理は127.0.0.1を使うため、通常は --host を指定しないでください。

0.12.51：LAN接続の再接続と通信上限の追加修正
------------------------------------------------
サーバーの再起動と再接続が重なった場合でも、接続準備のHTTPエラーだけで信頼済み端末の保存情報を削除しません。
接続先を変更した後に、前の接続先の「信頼を取り消す」の完了表示が新しい接続先を上書きしないようにします。
未完了のHTTP/3ヘッダー・制御データも、解析途中から容量制限の対象にします。
本があるPCの補助サーバーも0.12.51へ更新してください。閲覧キー・二段階認証・信頼済み端末の保存先は引き継ぎます。
信頼の失効を接続準備段階で通知された場合、未検証の通知だけでは端末情報を削除しません。必要なら「この端末の信頼を取り消す」で削除して認証し直してください。

0.12.58：通信管理データの上限を追加
認証前の小さな通信を繰り返しても、通信管理データが増え続けないよう、
接続ごとに保持できるQUIC・HTTP/3の通信管理データをそれぞれ64件に制限します。
完了した通信は解放されるため、通常の連続閲覧・動画の範囲読み取りは継続できます。
接続準備のHTTPヘッダーは合計64 KiB・15秒までとし、ゆっくり送信し続けて
待受枠を占有する通信を終了します。ヘッダー受付後の本文・本の転送時間には適用しません。
本があるPCの補助サーバーも0.12.58へ更新してください。拡張機能だけの更新では、
起動済みの旧サーバーには適用されません。閲覧キー・二段階認証・信頼済み端末は引き継ぎます。
