PDFMetaTag v3.6.60

[Version History]

v3.6.60 - 2026-10-17
- Vector公開準備：HTMLヘルプ一式を更新し、PDF結合・分割・ページ編集等の新しい説明ページを含む構成に差し替えた。
- pinsetsの既定プリセットをDefault.json・ForScore.jsonに差し替え。配布プリセットから開発者固有のRoot・検索履歴のみ除外した。
- 開発用pdfmetatag_config.jsonを指定ファイルへ差し替え。配布初期設定default_config.jsonは指定値を基礎として個人Root・履歴等を除外し、配布ビルドの安全性を維持。
- 配布パッケージ生成時、設定スキーマの数値versionをソフトのバージョン文字列で上書きしないよう修正。READMEのプリセット名を現行名へ更新。


v3.6.59 - 2026-10-17
- ワンクリックEXE化関連ファイルの配置を整理。release_assets/build_release.batを入口とし、BUILD_RELEASE_README.txt・build_release.py・PDFMetaTag.spec・requirements-build.txtを同じフォルダに集約。旧toolsフォルダは廃止し、実行パスとspecのソース参照を修正。
- 配布ZIPの作成ロジックやPMT本体の操作は変更せず、ビルド済みEXEの同梱物と初期設定の分離を維持。
- 引継ぎ用ソースZIPからtestsディレクトリを除外。作業用テストは実装検証時に実行し、次版に自動継承しない。


v3.6.58 - 2026-10-17
- Windows向けの再利用可能なワンクリック配布ビルドを追加。build_release.batから隔離された仮想環境と固定版依存を用意し、PyInstaller one-folder形式のEXE、配布ZIP、SHA256とビルド情報を自動生成する。
- PDFium、tkinterdnd2、PDF編集・結合・分割の関連モジュール、アイコンを同梱する固定specを追加。従来公開物のHTMLヘルプ・ライセンス・プリセットをビルド資材に整理。
- リリース用初期設定を開発中の設定から分離し、個人Root、Current、検索履歴やキャッシュが配布物へ混入しないよう配布ファイルを許可リスト方式で集約。アプリの通常操作コードは変更なし。
- ビルドとパッケージングの検証テストを追加。過去のテストに残った「最新版がv3.6.57固定」の判定を将来の採番でも通るように修正。Linux仮想GUIで全554件passed／17件skipped／1974 subtests passed。Windows上でのPyInstaller実ビルド／EXE起動の検証は未実施。


v3.6.57 - 2026-10-17
- PDF編集モードのカード形状を［正方形／横長／縦長］の3種類から切替可能にした。倍率メニュー横に［カード形状▼］を追加。100%のカード寸法は225×225 / 260×195 / 195×260pxで、面積を概ね維持しつつ縦横比を切り替える。PDFページの実際の縦横比は保持する。
- どの形状でも縦横のカード間隔は10px固定。通常時背景・枠線なし、選択枠、Hidden Aの画像部分オーバーレイ、透明セルの当たり判定、DnD、ホイール行スナップ、ズーム・非同期PDFium描画は維持する。形状変更時は旧形状のサムネイルを破棄し、描画中の旧結果を採用しない。
- 形状はアプリ全体の設定 page_editor_card_shape として保存。別のPDFへ移動しても引継ぎ、再起動時に復元。お気に入り設定JSONにも含め、［ビューア設定］の読込対象を有効にした場合に読み戻し、編集中画面にも即反映する。未対応値は正方形にフォールバック。
- トリミング右ペインのプレビュー領域がウインドウ縦方向に無制限に引き伸ばされていたため、通常は238×270pxまでの表示領域に限定。背の低いウインドウでは数値欄や適用パターンが隠れない範囲までプレビューを縮小し、画像のアスペクト比・Crop枠を保ったまま収める。
- 横幅が小さいウインドウ（900px等）では形状選択メニューを自動的に次行へ配置し、ツールバーの右端見切れを防ぐ。GUI／設定永続化／形状切替回帰テストを追加。v3.6.56を基準とする。


v3.6.56 - 2026-10-17
- PDF編集モード一覧のカードを透明な正方形セルへ変更。PDFページ画像は縦横比を維持したまま中央配置し、縦長・横長・正方形のページを同じグリッドで扱う。ページ番号・回転／トリミング／非表示の表示はセル下部に維持する。
- カード間隔は縦横とも10px固定とし、50～400%への倍率変更でも広がらない。通常のカード背景色・外枠線および読込中の灰色プレースホルダーを廃止し、選択／アクティブの青枠とDnDの挿入補助線のみ表示。先頭挿入位置の識別表示は維持する。
- クリック選択・複数選択・DnDの当たり判定は透明な正方形セル全体で維持。ホイールの行境界スナップ、表示ページの優先描画と96MiBサムネイルキャッシュは新しい寸法へ追従させる。
- Hidden Aの非表示ページの灰色オーバーレイはPDF画像本体にだけ重ね、正方形セルの未使用領域は塗りつぶさない。画面外で画像参照を解放するときはオーバーレイも消し、空の灰色タイルが残らないようにする。
- 正方形寸法・10px間隔・背景／枠線・縦横画像比・Hidden表示・透明セルのヒット判定・DnD並替・250%でのホイール補正をGUIテストに追加。v3.6.55を基準とする。

v3.6.55 - 2026-10-17
- PDF編集モードのサムネイル非同期描画は既存の96MiB LRUを維持し、画面内ページを先読み対象より優先。スクロールで古くなった未実行の描画キューは差し替え、表示対象の再要求を最小化する。
- トリミング右ペインと詳細編集のMediaBox画像に共通の80MiB上限LRUを追加。同じページを再度詳細編集した時は同じ解像度の画像を再利用し、高解像度のキャッシュから小さい右ペイン画像を生成できるようにする。低解像度画像を詳細編集へ引き伸ばすことはしない。
- MediaBox描画キャッシュのキーはソース・ページ・回転等に基づき、トリミング枠だけの変更では元画像を再レンダリングしない。連続ズームで旧要求が完了しても、再訪時に有効な画像はキャッシュして活用し、同じ倍率の再レンダリングを避ける。
- 一覧Canvasのレイアウト再生成時は古いPhotoImage参照のみ解除し、PILキャッシュは保持して新Canvas項目に再割当。ページ内容が変わる場合は従来のキャッシュキー照合、別PDF・保存時はキャッシュ全破棄を維持。
- CHON Newborn Sun（72ページ）9ページ目のMediaBox描画を実測。初回約0.40秒、同解像度キャッシュ参照約0.02ms、詳細画像から右ペイン用縮小約4ms（Linux仮想GUI、参考値）。表示の鮮明さを維持し、PDFium/pypdfium2以外のPDFレンダラーは追加しない。
- GUI/キャッシュ/優先度/倍率連打の回帰テストを追加。Windows 11実機・PyInstaller版での最終検証は未実施。

v3.6.54 - 2026-10-17
- PDF編集モードのページ一覧サムネイルをPDFiumの専用バックグラウンドワーカーで生成し、Tkイベントループ上の同期描画を廃止。表示中＋先読み範囲だけを順次要求し、PhotoImageとCanvas描画は引き続きGUIスレッドで実行する。
- 編集モード右ペインのトリミング簡易プレビューも同じバックグラウンド経路へ移行。既存の高品質MediaBox描画とCrop枠の外側罫線を維持し、トリミング数値変更時は画像を再描画せず枠だけ更新する。
- トリミング［詳細編集］の高解像度プレビューを別ワーカーで非同期生成。ウインドウの表示を重いPDF描画でブロックせず、倍率・ウインドウサイズの連続変更では最新の要求だけを表示する。100～400%、中ボタン移動、Crop枠調整は維持する。
- PDFiumは従来のpypdfium2だけを使用。全ワーカーで既存のプロセス共通PDFIUM_LOCKを使用し、PDFドキュメントをワーカー専有としてTk操作を一切行わない。ファイル変更／ページ編集／ズーム／終了による古い要求は識別して破棄する。
- ページ編集の終了・再読込み・保存前にワーカーを停止してPDFiumハンドルを閉じ、Windows上書き保存時のファイルロックを回避。編集モード内のサムネイルLRU（320件／96MiB）は維持し、ワーカー内の開放PDFハンドルは最大3個に制限。
- 新規GUI／スレッド回帰テスト4件追加。実サンプルPDF（CHON Newborn Sun / 72ページ、約28MB）でも非同期表示のスモークテストを実施。Windows 11実機の表示・終了・PyInstaller動作は未検証。

v3.6.53 - 2026-10-17
- PDF編集モードのサムネイル一覧で、ホイールスクロールを現在位置への行高の単純加算から、ページカードの行境界に揃える方式へ変更。スクロールバーやリサイズによって行が途中で見切れていても、ホイール1ノッチで次（逆方向なら前）の行が自然な位置に揃う。複数ノッチは行数分進める。
- Canvas座標の±1px程度の丸め誤差は既に整列しているものとして扱い、不要な飛び越しを防止。先頭・末尾ではスクロール可能範囲に制限。既存レイアウトキャッシュから行高を取得するだけで、Canvas再描画やファイル走査は追加しない。
- Ctrl＋ホイールの倍率変更、スクロールバー・ドラッグ・ページ編集、トリミング詳細編集の100～400%ズームは変更なし。途中位置からの上下移動・複数ノッチ・末端クランプ・実Tk Canvasでの位置補正を回帰テスト。

v3.6.52 - 2026-10-17
- トリミング［詳細編集］のホイール倍率に100%を復活。下限は100%、上限は400%とし、100%未満だけを除外する。初期値も100%に戻す。
- v3.6.51のPDF編集モード一覧の最低1段ホイールスクロールおよびその他の機能は変更しない。

v3.6.51 - 2026-10-17
- トリミング［詳細編集］のホイール拡大縮小から100%以下を除外。詳細プレビュー専用の倍率候補を120～400%とし、開始倍率・下限を120%に変更。PDF編集の一覧サムネイル倍率50～400%は変更しない。
- PDF編集モードのページ一覧をホイールでスクロールする際、倍率にかかわらず最低1段分（ページカードの実測配置行高）を移動する。複数ノッチは段数分移動し、先頭・末尾では範囲内に制限する。Ctrl＋ホイールによる倍率変更、スクロールバー・DnDなど既存操作は維持。
- 表示中の行高・行数・余白の既存レイアウトキャッシュを使用し、Canvas全件走査／再構築なしで位置だけを更新。既存のサムネイル先読み経路を維持する。

v3.6.50 - 2026-10-17
- PDF編集モードのページ一覧倍率へ250／300／350／400%を追加。従来の50～200%と操作体系は維持し、倍率メニューとCtrl+ホイールの双方で利用可能にした。
- トリミング［詳細編集］のプレビューCanvasで、マウスホイールによる段階的な拡大縮小を追加（50～400%）。マウス位置を基準にズームし、中ボタンドラッグで拡大後の表示位置を移動できる。既存のCrop枠ドラッグ、数値入力、保存値、適用処理には影響させない。
- 詳細編集の拡大時は元ページから必要倍率のラスターを再生成し、粗いサムネイルの単純拡大を避ける。連続ホイール時は既存の60ms予約に集約し、ダイアログ終了時には予約をキャンセルする。
- 250～400%表示による大容量サムネイルの蓄積を防ぐため、既存320件LRUに96MiBの画像データ容量上限を追加。通常倍率のキャッシュ再利用は維持する。
- Linux仮想GUIで詳細編集のズーム／パン／値維持／予約キャンセル、拡大倍率とLRU容量上限を回帰テスト。Windows 11実機およびPyInstaller環境は未検証。

v3.6.49 - 2026-10-16
- 通常起動のメインウインドウをWidget構築・設定復元・メインシート初期描画の間はwithdraw状態とし、完了後の最初のidleで表示する。未完成のUIや黒い未描画部分が見えるのを抑える。固定待機や定期更新は加えず、既存のサイズ調整を表示直後に実行して保存済みgeometryを維持する。PDF単体Viewer直起動は既存の専用表示経路を維持。
- 結合リストの初回生成でも通常表示・State D&D用一時生成の両方をwithdraw状態で構築。Canvasと出力欄等を完成させてから通常表示する。D&Dから作成する場合は非表示を維持し、ドラッグ中の従来の一時表示・ドロップ成功後の表示維持／最小化復元を変更しない。
- withdraw中はwinfo_ismapped()が全子Widgetで偽になるため、上部リボン／Foldermap・Fieldmapのレイアウト所属判定をpack/grid所属で行うよう修正。初回表示時の配置不整合を防止。フォーカス・DnD・結合リスト独立Toplevelの既存仕様、Hidden Aのデータ構造には変更なし。
- Linux仮想GUIで通常起動・結合リスト初回構築・Stateドラッグ一時表示の確認を実施。Windows実機での初回描画の見え方／PyInstallerビルドは未検証。

v3.6.48 - 2026-10-15
- v3.6.46の全機能を維持したまま、v3.6.47試験版のHidden A（PDF Page Treeから除外したページオブジェクトをCatalogのPMT独自辞書へ退避）を正式採用。Hidden Bの新規作成と比較ボタンは廃止（v3.6.47のB試験ファイルは読込可能、次回保存時にAへ正規化）。
- PDF編集モード上部操作バーの［削除］直後に［非表示／再表示］を配置し、混在選択は非表示優先。下部のA/B比較ボタンを撤去。編集画面では非表示ページをグレー表示し、Undo/Redo、実状態Dirty、既存の並べ替え・回転・トリミングを維持する。表示ページが0枚になる非表示は拒否する。
- Hidden Aを含むPDFの上書き保存・別名保存の両方で、外部ソフトでの保存によるページ消失とPMT結合・分割出力への非引継ぎを明示する確認ダイアログを表示。［理解して保存］の明示操作のみ保存を続行し、［キャンセル］／Esc／Xではファイルを変更しない。v3.6.47の別名保存限定と試験用サフィックスを撤廃。保存は既存の一時PDF→内容検証→os.replaceを維持する。
- 非表示ページは通常のViewer／結合／分割の対象に含まず、結合・分割出力に退避オブジェクト情報は引き継がない。外部PDF編集ソフト（CubePDF Utilityの回転後保存で実ページオブジェクト消失を確認済み）での再保存は非表示ページを不可逆消失させ得る。これらはPDF標準機能ではなく機密保護ではない。
- pikepdf未導入のLinux環境では実PDFのHidden A書込み・復元の統合試験がskipされる。Windows実機での上書き保存を含む一連の運用確認は未検証。


v3.6.47 - 2026-10-14
- PDF編集に比較用の仮ボタン［非表示A］（ページオブジェクト参照）／［非表示B］（非公開の内部PDFストリーム）を追加。選択ページをグレー表示し、再クリックで復元可能。両方式の混在にも対応。Undo/Redoと実状態Dirtyに組み込む。
- 通常のPage Treeには表示ページだけを登録し、PMT独自Catalog辞書 /PMTHiddenPages 内へ非表示位置・方式・しおり・復元用ページ情報を保持。Viewerや一般的なPDFビューアでは表示ページだけを扱うことを意図した試験実装。PMTの編集モード再入時は非表示ページを一時PDFへ抽出して復元。
- 非表示ページありの保存では元ファイルの上書きを禁止し、別名保存へ誘導。既存一時ファイル→os.replaceの保存手順を維持し、保存後の表示ページ数と内部記録数の整合性チェックを追加。比較用の使用説明を同梱。
- PDFの標準的な「非表示ページ」属性ではない。pikepdf未導入の検証環境では実PDF保存・復元の統合試験はskipされるため、Windows実機での確認までは試験版として扱う。編集画面の他の機能・データ形式は変更しない。


v3.6.46 - 2026-10-14
- GUIイベント管理・更新経路を横断調査し、実行回数と遅延予約を再現できた箇所だけ合理化。Viewer進入時はメインToolbox表示状態が保存値と異なる場合だけ設定を保存し、同値の設定JSON再書込みを廃止した。
- Viewerからメインシートへ戻る際、対象行のスクロール位置を描画なしで先に確定してからCanvasを1回だけ更新するよう変更。従来の全体refresh直後にensure_visibleがもう一度全描画する経路を1回へ統合した。
- ViewerのTag/Column Info・Toolbox構成を状態・幅・実Pane順の署名で管理し、同一構成への再適用ではPaneのforget/add、Toolbox再集計予約、幅復元を省略。表示状態や幅が変化した場合、Viewer再進入時は従来どおり再構築する。
- F11全画面切替のafter／after_idleを用途別に所有・キャンセルし、連続切替時に旧遷移の再フィット、フォーカス変更、完了処理、zoomed復元が残らないよう整理。即時フィット後の80ms安全確認はウインドウ／Canvas寸法が変化した場合だけ再フィットする。Windowsの2回限定配置補正は維持する。
- Viewer Queue／ESCのidle描画を1件へ集約し、非表示・Canvas再構築時に予約をキャンセル。非表示後に古い予約がQueueを再生成する競合を防止する。
- 制御ベンチマーク（同一操作20回）で、同値Viewer進入の設定保存20→0、同一Pane再適用のToolbox更新20→1、Viewer復帰の全Canvas描画2→1、F11高速切替の残留予約60→3・再フィット40→1を確認。既存UI・設定形式・Viewer操作・v3.6.45のWindows配置補正を維持し、v3.6.29の不採用機能は復活させていない。
- Windows実機でViewer進入／復帰・F11・Pane再配置・Canvas描画・update_idletasksの呼出し回数／時間を採取できる任意実行のWINDOWS_GUI_TRANSITION_PROBE.pyを同梱。通常起動では読込・実行されない。

v3.6.45 - 2026-10-14
- ViewerのWindows F11全画面化で、結合リストが存在する場合などにウインドウ枠だけ消え、モニタ全体への拡張が反映されない場合に対処。従来のTk geometry要求は維持しつつ、Win32のトップレベルHWNDを絶対デスクトップ座標で配置する。負座標を含むマルチモニタ構成と64bit HWNDを扱う。
- WMによる装飾変更・最大化解除後の遅延配置を、切替時のみ2回の限定チェックで補正する。配置失敗が検出された場合は枠なしの中途半端な状態を残さず元のウインドウへ戻す。通常Viewer処理中の監視・再描画は追加しない。
- 全画面切替中の一時的なFocusInによる結合リスト前面化を抑制し、切替完了後は表示中の結合リストのみ相対的な前面順位を復帰。非表示／最小化は変更しない。全画面Viewerから［結合リスト追加］すると通常どおり結合リストを前面表示し、Viewer全画面は維持する。全体最前面固定は行わない。
- 既存Viewer/結合リストのボタン・DnD・キュー・設定・保存形式・履歴には変更なし。負座標・遅延配置補正・復元・Peerウインドウ状態と失敗時ロールバックを回帰テスト追加。v3.6.44を基準とする。

v3.6.44 - 2026-10-12
- メインシートState列・Foldermap／Fieldmapからの結合リストDnDで、非表示（withdrawn／未生成）の結合リストを一時表示した場合、実際にファイルを1件以上追加できたときだけ、そのまま通常の表示状態を維持する。追加0件／ドロップキャンセル／追加エラー時は従来どおり非表示へ戻す。
- ドラッグ前から最小化（iconic）されていた結合リストは、追加成功後も従来どおり最小化に戻す。表示中のウインドウはそのまま表示を維持する。DnD追加関数の実追加件数（戻り値）で成功を判断し、追加がない場合に勝手に開かない。
- 一時的な最前面指定は必ず解除し、表示を維持するときはフォーカスを奪わずに前面へ戻す。既存のウインドウ位置、青い挿入ガイド、クリック操作、結合リスト保存形式は維持。成功／失敗／キャンセル／初回作成／最小化を回帰テストに追加。v3.6.43を基準とする。

v3.6.43 - 2026-10-12
- メインシートの全列ヘッダーで文字幅を実測し、現行ヘッダーフォントサイズから約6ptまで段階的に縮小して完全表示を優先。それでも収まらない場合だけ省略記号（…）を用いる。State列42pxは維持し、左右余白を小さくして「State」の表示を改善する。
- 通常描画と高速列選択オーバーレイでフォント選択ロジックを共有。列名・列幅ごとの結果を上限256件のLRUへ保持し、サイズ別フォントを使い回す。ズーム／基本フォント変更時はキャッシュを無効化する。本文のフォント・省略処理、列幅・固定列・クリック／DnDは変更しない。
- Stateの全文表示、6pt下限での省略、キャッシュ再利用、リサイズとズーム時の再計算、通常／高速オーバーレイの一貫性をGUIテストに追加。v3.6.42を基準とする。

v3.6.42 - 2026-10-12
- ViewerのAuthor／Subject入力中にDirty通知から80ms後のLibrary更新がTag/Column Info全体を破棄・再生成し、Entryのフォーカスとカーソル位置を失う問題を修正。Library変更通知はViewerの該当仮想列だけを局所更新し、入力中のEntry、選択範囲、カーソル、候補表示に触れない。
- LibraryのAlias接頭表示が変化した場合も、対象Alias行のみ局所的に組み直す。通常の仮想テキスト欄はStringVarで値だけ更新し、星評価欄も変化時のみその行を更新。通常Viewerと結合リストViewerで共通のViewer処理を使用。
- update_item_dirty() のLibrary通知を「保存値と異なる間ずっと」から「直前に通知したAuthor／Subjectの実値から変化した時だけ」へ変更。無関係な項目編集での重複通知・無駄な更新を抑止。保存状態、Undo/Redo、Libraryデータ形式は変更しない。
- Author／SubjectのEntryフォーカス・カーソル・選択維持、Alias接頭の局所更新、仮想列編集中の保護、80ms遅延通知、Dirtyの重複通知抑止をGUI回帰テスト7件で検証。v3.6.41を基準とする。

v3.6.41 - 2026-10-12
- 結合出力前に参照素材PDFのDirty状態をパス単位で検出し、［保存して続行］／［戻る］の2択を表示。保存完了を受けた場合だけ元PDF・ページ指定・メタデータ引用元を再評価して結合開始。保存失敗、キャンセル、保存対象欠落時は結合しない。部分成功で移動・改名された素材の参照先だけは更新して不整合を防止。元PDFの自動破棄・無断保存は行わない。
- 結合リスト由来ViewerでPDF編集・PDF分割モードへの制限を解除。PDF編集の上書き保存は同一素材を参照する結合行のページ数を更新し、別名保存時は編集中の結合行のみ新ファイルへ差替え。明示Pages指定は維持し、無効になった範囲は結合時に検証エラーとする。分割出力は既存機能をそのまま使用。
- 結合リストViewerでのメタデータ保存やToolbox操作はmerge:UUIDから対象PdfItemを直接解決し、背後のメインシート選択行に誤保存・誤復帰しない。PDF編集開始・保存後もmerge:UUIDを保持し、結合リスト専用PDFを勝手にCurrentへ追加しない。
- 独立したPDF編集画面に未保存ページ編集が残った状態で結合出力を実行した場合も、保存確認を行い、保存成功前の結合を阻止。既存の通常Viewer動線とESC／Queue構成には変更なし。
- Dirty検出、キャンセル・失敗時の結合抑止、部分成功の参照更新、編集／分割解禁、保存対象の誤選択防止を回帰テストに追加。v3.6.40を基準とする。


v3.6.40 - 2026-10-11
- Viewer左上のESCボタンをQueue表示コンテナから分離し、独立したCanvasウインドウとして生成・破棄するよう変更。Queueが空（結合リストViewerの空/不整合トークン、メインシートの可視行なし等）でも左上ホバーでESCを表示し、Viewerから戻れるようにした。
- Queueが存在する場合は従来どおりESC直下に一覧を表示。Queueだけの更新・破棄ではESCを破棄せず、Viewer再描画/終了/ホバー終了時は両方を確実に解放。既存のキーボードEscとQueueのファイル移動操作は変更しない。
- QueueなしのESC表示・クリック、QueueありからのQueue単体破棄、再ホバー・全HUD破棄、連続ホバー再生成抑止のGUI回帰テストを追加。Dirty結合出力の扱いは今回未変更。v3.6.39を基準とする。


v3.6.39 - 2026-10-11
- メインシートState列の通常状態▷の内部を、透明（白抜き）から薄いグレー（#dce1e6）へ変更。既存のグレー輪郭、6ドットのドラッググリップ、42px幅は維持。
- Dirty／Move／Copyのオレンジ、エラーの赤、M/C白文字、ホバー時の薄青背景、クリック／DnD処理およびホバーの局所更新は変更しない。v3.6.38を基準とする。

v3.6.38 - 2026-10-11
- しおり表の再生成・破棄後に残ったafter_idle予約が、別Widgetに再利用されたTclコマンド名と衝突し、ユーザー操作なしに削除ボタン等のコールバックを発火させる場合がある問題を修正。
- 表の高さ測定と初期ページ同期に関する遅延予約を、一時的なしおり表Frameではなく長寿命のViewerに登録するよう変更。さらに実行時に現在の表インスタンスとの一致を確認し、古い表に対する遅延処理を無効化する。
- 既存のしおり編集・追加／削除・ページ追従、State列の描画や操作は変更しない。全しおり保持の検証、予約元Widgetの寿命および表再生成時のGUI回帰テストを追加。v3.6.37を基準とする。


v3.6.37 - 2026-10-11
- メインシートState列を、立体的な灰色のボタンからCanvas描画のフラットな「ドラッググリップ（6ドット）＋Viewer用三角形」へ変更。列幅42px（100%時）・クリックViewer起動・5px以上ドラッグで結合リストに追加する既存イベント処理は変更しない。
- 通常はグレー輪郭の▷、DirtyまたはMove/Copy指定ではオレンジの▶、読込エラー時は赤の▶として表示。エラー優先。Move/Copy指定時は▶の内部へ白抜きM/Cを表示し、エラーと重なる場合は赤い▶＋白文字。全セル背景の従来の状態色塗りは廃止し、既存の選択色を維持する。
- Stateセルのホバー時だけ薄青のフラット背景を表示。背景用Canvas矩形を予め行ごとに生成し、ホバー行の切替時だけitemconfigureで旧行・新行を更新。表全体・行全体の再描画や追加Widget/PNG/アニメーションは使わない。Tooltip OFF時もホバー表示可能。選択高速オーバーレイと50～200%表示倍率にも対応。
- 通常／Dirty／エラー／M/Cの優先色・ホバー更新・ズーム時の図形範囲・既存の状態データ解釈をGUI回帰テストに追加。v3.6.36を基準とし、v3.6.29没版の仕様は復活させない。


v3.6.36 - 2026-10-11
- Viewer Tag/Column Infoのしおり一覧の下端に細いドラッググリップを追加。下方向・上方向のドラッグで最大表示行数を変更する。デフォルト6行、しおり件数が少ないときはその件数まで自動縮小する。
- しおりの実測行高、固定列ヘッダー・タイトル・グリップの高さを別々に計測し、行数単位でリスト領域を伸縮。表示領域に余裕がない場合は完全に収まる行数まで切り下げる。極端に狭く一行も入らない場合はTagパネル内に収めることを優先。
- スクロール位置を実測行高の単位へ量子化し、ホイール・スクロールバー・ページ移動追従時の行途中での見切れを防止。固定ヘッダー、編集、pageジャンプ、削除、現在ページ一致の複数青行、前後2行マージンは維持。
- ユーザー指定行数をviewer_bookmark_rowsとして既存設定JSON／設定プロファイルへ保存・復元。ドラッグ中の設定ディスク書込みはせず、リリース時のみ保存。既存設定にキーがない場合は6行。
- GUI回帰テストでドラッグの行単位スナップ、スクロール位置の行境界、Tag領域が狭い場合の自動制限と復帰、しおり件数少時の縮小を追加。v3.6.35のソースを基準とし、v3.6.29の没仕様は復活させない。


v3.6.35 - 2026-10-10
- Viewerページ移動時のしおりリスト追従を調整。対象しおりが上下端に接近した時点で、約2行分の余裕を確保する最小スクロールを行う。すでに余裕があれば動かさない。
- 実測行高とCanvas表示高を使用。上下2行ずつの余裕を置けない狭い表示領域では従来の2pxマージンに戻し、しおりの見切れ防止を優先。先頭・末尾ではCanvasの通常スクロール限界を維持。
- 現在ページ一致の青背景（同ページの複数しおりを含む）、直前しおりの追従、手動スクロール保持、タイトル編集中の抑制を維持。GUI回帰テスト追加。

v3.6.34 - 2026-10-10
- Viewerページ確定後、Tag/Column Infoのしおり一覧を現在ページへ同期。しおりがないページでは現在ページ以前で最も近いしおりをスクロール対象とし、それより前にしおりがないときは先頭を対象とする。対象行が表示範囲内ならスクロールしない。リストを最初に開いたときも現在ページに合わせる。
- しおり行の青背景は従来の選択／編集インデックス連動を廃止し、「Viewerの現在ページとページ番号が一致する全しおり行」だけを表す。複数しおりが同ページにある場合は全件青、該当がない場合は全件白。page・タイトル・削除列を同じ背景にする。
- ページ遷移時にはしおり行Widgetの再生成や全表描画を行わず、ページ番号の二分探索と旧／新一致範囲のみの背景更新で反映する。Viewerの各種ページ移動は共通描画完了地点から同期し、Seekbar再表示時には未変更の表を再利用する。しおり選択だけの表再生成は撤去する。
- タイトル編集中は自動ページ遷移があっても入力位置のスクロールを保ち、フォーカスを離したときに追従する。既存のタイトル未確定編集、No titleプレースホルダー、スクロールバー実測判定、固定ヘッダー、Bookmark/Viewer Queue、Dirty処理は維持。
- v3.6.33を基準にGUI回帰テストを追加。v3.6.29の没仕様は引き続き不採用。Windows実機固有の挙動は未検証。

v3.6.33 - 2026-10-10
- Viewer Tag/Column Infoのしおり表を変更。［page／タイトル／削除］の列ヘッダーをスクロールCanvasから分離して常時固定し、ヘッダー下へ1pxの罫線を追加。本文だけが縦スクロールし、実コンテンツ高さ判定・自動スクロールバー・狭いパネルでの末尾到達を維持する。
- 各行のpage列の右端に1pxの縦罫線を追加。従来の行下罫線1本・枠なしタイトルEntry・枠なし削除ボタンによる高密度UIは維持し、セルごとの囲み枠は追加しない。
- タイトルが空の行にはグレーの「No title」をプレースホルダー表示。入力フォーカス時には空欄になり、FocusOut時に空なら表示を復帰。保存対象のタイトル文字列やDirty判定、並替え・削除時の未確定編集に「No title」が混入しないよう分離する。
- ページ遷移に対するしおりリストの自動スクロール同期は今回未実装。各ページ移動経路と共通描画経路の予備調査のみ。
- v3.6.32を基準にGUI回帰テスト4件追加。v3.6.29没仕様は含めない。Windows実機検証は未実施。

v3.6.32 - 2026-10-10
- Viewer Tag/Column Infoのしおり一覧について、スクロールバー表示を従来の「しおり件数が6件超」判定から「実コンテンツ高さ > Canvas表示領域」の実測判定へ変更。ヘッダー・行高・DPI・パネル高さに応じて、6件以下でも収まりきらなければスクロール可能にし、十分な高さではバーを非表示にする。MouseWheelも件数に依存しない。
- しおり行を縦方向に圧縮。タイトルの編集欄は枠なしEntry、削除は枠なし×ボタンとし、各行には細い下線1本だけを表示。pageクリックで移動・タイトル直接編集・削除・ホバーサムネイルは継続。
- しおり表の［＋ 現在ページをしおりに追加］行と直下の余分な区切り線を撤去。ViewerのBookmarkボタンや右クリック等、既存の追加動線は維持。
- ポップアップの高さを実測行高に合わせて最大6行分まで自動調整。Tagパネルを表示中にリサイズした場合も領域内に収め、スクロールバーを再判定する。旧v3.6.29の没仕様は復活させない。
- 既存のしおり編集・遷移テストに加え、狭いパネルで6行以下のスクロール、末尾到達、行密度、パネルリサイズをGUI回帰テストへ追加。実施結果は配布時に報告。

v3.6.31 - 2026-10-10
- Viewerのシークバー／しおりホバーサムネイルを軽量化。高速スクラブ中の未処理要求は従来どおり最新1件だけを保持しつつ、要求ごとのThread生成を単一ワーカーへ統合し、同一PDFの短い操作バーストではPdfDocumentを再利用する。バースト終了後35msでDocumentを閉じるため、アイドル時にWindows上のPDFファイルを掴み続けない。
- サムネイルポップアップの固定寸法を生成時に1回だけ測定し、ページ移動／画像到着ごとのupdate_idletasksを廃止。シークドラッグが同じページ範囲内を移動している間はポップアップ位置だけを追従し、シークバー全再描画と同一ページラベル再設定を省略する。
- シークバーのしおりマーカーホバー判定を、Motionごとの全マーカー線形走査から、マーカー描画時に作るX座標Hit表の定数時間参照へ変更。密なしおりを持つPDFでもポインター移動負荷がしおり件数に比例しないようにした。
- 210×275px、ホバー115ms、100件LRU、ファイルサイズ／更新時刻を含むキー、PDFium共有ロック、単ページプレビュー、GUIスレッド限定のTk更新、プレビューだけでは本文を移動しない仕様を維持。v3.6.29の不採用機能は復活させていない。
- 同一条件の200ページPDF・40ページ描画を11回比較した中央値で、ページごとのDocument open方式116.3msに対しDocument再利用105.6ms（約9.2%短縮、1.10倍）。同一ページ内100回のドラッグではシークバー再描画100回→1回、ポップアップ寸法測定40回→1回。最新要求優先、LRU、ファイル更新無効化、しおりページ対応を回帰検証した。

v3.6.30 - 2026-10-10
- Viewerのしおり操作UIから「表示モード／編集モード」の区別を撤廃し、表を［page／タイトル／削除］の3列に統合。Tag/Column Infoの従来［編集］［表示］は単一［表示］へ整理し、［固定ON/OFF］と［非表示］、現在ページからのしおり追加は維持する。
- page欄クリックで対応ページへジャンプ。タイトルは各行に常時表示するEntryから直接編集可能（Return／フォーカス移動でDirtyへ反映）。行末の×でそのしおりだけを削除する。しおりの並び順、Viewerのページ移動、従来のサムネイルホバーとPDF保存フローは維持。
- タイトル入力後にpage欄／削除欄をクリックしてもFocusOutに依存せず未確定テキストを反映。表示更新／非表示時の未確定入力、同一ページ複数しおりのソート、スクロール位置、ファイル切替時の古いEntry値誤適用を対策。小幅パネルでも列が切れないようEntryの要求幅を限定。
- v3.6.28を実装基準とし、v3.6.29で試した最寄りBookmark小型サムネイルは含めない。GUI回帰テスト6件追加。Linux Xvfbで386 passed / 16 skipped / 1974 subtests passed、構文チェック済み（Windows実機、pikepdf依存の実書込み経路は未検証）。

v3.6.29 - 2026-10-10 （没版・不採用）
- シークバーの最寄りBookmarkページに小型サムネイルを追加し、1ページ目も候補とする試作。実機フィードバックで撤回し、後続版には引き継がない。v3.6.30はv3.6.28から構築。

v3.6.28 - 2026-10-10
- Viewerのシークバー、シークバー上のしおりマーカー、およびしおり一覧（Tag/Column Info上の表示・編集と旧Contents欄）にページサムネイルのホバープレビューを追加。しおりページ番号は1-basedからViewerの0-basedへ変換し、マーカー近傍では実際のしおりページを優先してプレビューする。
- サムネイル生成はPDFiumの独立PdfDocumentを使用し、ホバー後115ms／ドラッグ中は即時に要求。最大幅210px・高さ275px、共有メモリLRU上限100件。全ページ事前読込／ディスク保存はしない。ファイルパス・サイズ・更新時刻・ページをキャッシュキーにして保存後の古い画像の流用を防止する。
- バックグラウンド生成の同時実行を1件に制限。高速スクラブでは古い中間要求を積まず最新ページだけ処理。PDFiumがスレッドセーフではないためViewer・編集・既存サムネイル生成と共有ロックでPDFium呼出しを直列化。Tkウィジェット生成・PhotoImage更新は必ずGUIスレッドで実施する。
- ホバープレビューはViewerキャンバス内の一時オーバーレイで、キー・ファイル・ドラッグ終了・シークバー破棄・しおり非表示時に消す。プレビュー中でも実際のページ移動は発生させず、ドラッグ時は従来どおりリリース時に本体描画を1回だけ行う。見開き時はシーク位置の単ページを表示する。
- LRU・ファイル更新時の無効化・PDFium実レンダリング・非同期最新要求優先・シーク/しおりのページ対応・Tk表示を回帰テストで確認した。

v3.6.27 - 2026-10-10
- 結合リストViewerキューのID不整合を修正。Viewerのファイル位置表示が結合リスト由来のmerge:UUIDをメインシートの整数行IDへ書き換えていた副作用を排除。結合リストViewer時には専用トークン配列からn/totalを表示し、位置表示の参照処理はcurrent_rowidを一切変更しない。これにより選択位置・Queue・前後ファイル移動の整合性を保つ。
- PDF編集モードで実際のDirty差分がある状態からESC（画面ボタン・キーボード）でViewerへ戻ろうとした際、変更破棄の確認を追加。キャンセル時は編集内容を維持し、変更がない場合・設定OFFの場合・保存成功による遷移（discard=False）では確認しない。
- ［設定 > 全般 > 確認・通知］へ［PDF編集モードから未保存のまま戻る時に確認］（初期ON）を追加し、設定JSONおよび全般設定の読込プロファイルへ保存／復元する。既存設定ではONを補完。
- PDFページ編集画面の下部［Viewerモードへ戻る］を撤去し、左上の操作バー先頭へ灰色・角型・文字幅に合わせた［ESC］を配置。トリミング・保存ボタンの下部位置は維持する。
- Viewerキュー・破棄確認・キャンセル保持・設定の互換・GUI配置の回帰テストを追加。


v3.6.26 - 2026-10-10
- メインシートToolbox非表示時の右端ホバー復帰ボタンを、ヘッダー列との重なりを避けるため従来より80px下（Canvas上端からy=86px）へ移動。Toolbox非表示時の占有幅ゼロ・右端ホバー判定・クリック復元は変更しない。
- 独立Toplevelの結合リストとPMTメインシートが重なるWindows環境でExplorer D&D対象がメインシートへ奪われる問題に対処。結合リストが通常表示されている場合のみメインシートFocusIn／Explorer D&Dホバー時に結合リストをメインより前面へ戻す（全アプリ最前面固定ではない）。OSがメインシートへDropイベントを配送してしまった場合も、画面座標が結合リストCanvas内なら結合リストへの追加・位置指定として処理する。閉じ／最小化は勝手に変更しない。
- 結合出力成功時の単一［OK］完了ダイアログを専用二択へ置換。［リストを維持］・X・Escはダイアログを閉じるだけ。［リストをクリア］は既存Clear処理を呼んでダイアログを閉じる。元素材のファイル削除は行わず、後続のPMT読込み／Viewer自動表示設定も維持する。
- 結合リストViewer Queueの位置異常の原因を特定（今回未修正）。Viewerの表示欄 viewer_file_index を描画する _viewer_file_index_text() が結合リスト用 current_rowid（merge:UUID）をメインシートの整数IDに上書きする場合があり、merge_list_viewer_move() が現在トークンを見つけられず先頭基準（index=0）へフォールバックする。独立トークンの維持・結合リスト専用の位置表示が次版の修正対象。


v3.6.25 - 2026-10-04
- v3.6.23の見切れ監査で追加した共通fit_dialog()が「現在ページの要求サイズ」をそのままwm minsizeへ昇格していたため、設定・プリセット・補助ダイアログが高DPI環境で必要以上に縮小不能になる構造を修正。要求サイズは初期／現在の推奨サイズにだけ使用し、最小サイズは各画面が元から持つminsizeまたは明示した保守的なminimumだけを維持するよう分離した。どちらも現在モニタの作業領域以内へ制限する。
- メインシートの上部リボン要求幅をアプリ全体の最小幅へ直接設定していたv3.6.23の処理を撤回。従来の900x560を通常時の最小サイズとし、より小さい作業領域ではその範囲まで自動的に下げる。リボン要求幅は起動時の推奨幅としてのみ利用し、ユーザーが後からウインドウを縮められるようにした。
- 結合出力設定は従来から存在した690x420の最小サイズを復元し、820x490は初期表示サイズとしてのみ扱う。PDF分割プリセットはv3.6.23で新たに820x690を最小サイズ化していた指定を撤去し、既存の初期geometryと内容Fitだけを維持する。長文折返し、自然文字幅、DPI対応行高、結合リスト／トリミングの局所レイアウト修正など見切れ監査の有効な変更は維持する。
- v3.6.25向け回帰テストを追加し、要求サイズとminsizeの分離、作業領域による最小サイズ上限制限、メインシートでリボン幅をminsizeへ昇格しないことを固定した。


v3.6.24 - 2026-10-04
- メインシートToolboxを非表示にした際に残っていた細い［Toolbox ▶］PanedWindow復帰領域を廃止。Toolbox非表示時は右Paneを完全にforgetし、メインシートがその幅をすべて取り戻すよう変更した。
- Toolbox非表示時にメインシートCanvas右端へホバーすると、Canvas右上へ［Toolbox ▶］ボタンを一時オーバーレイ表示する方式へ変更。ボタンはplace描画のみでレイアウト幅を消費せず、右端から離れると自動で隠れ、クリックするとToolboxを通常幅で再表示する。選択／DnD中は誤表示しない。
- Viewer側のToolbox表示は従来どおり下部HUDで独立管理し、旧復帰Paneへの依存を削除。Viewer往復時のメインシートToolbox状態保存／復元も「Toolbox Paneが存在するか」の単純な状態へ整理した。v3.6.24向け回帰テストを追加した。


v3.6.23 - 2026-10-04
- GUI全体の見切れ監査を行い、設定各ページ、結合リスト／結合・分割プリセット、Viewer、Toolbox、Author/Subject Library、Field Map補助画面、パターン命名、ショートカット設定、PDFページ編集／トリミング、進捗画面を100・125・150・175%相当のTk scalingと日本語フォント実寸で確認した。
- 設定等の長い説明文を親Frameの実幅に追従して折り返す共通レイアウト補助を追加。日本語幅を固定文字数で制限していたButton／Labelは既存幅を最小幅として扱い、Treeview行高、Folder/Field Mapヘッダー、Toolbox復帰領域、星入力をフォント実寸へ追従させた。設定画面と各独自Toplevelは内容とモニタ作業領域から必要最小サイズを算出する。
- 結合リストを単一grid構成へ整理し、Canvas表だけを伸縮領域として下部の出力操作、File name／Path、クリア／ゴミ箱、件数表示が高DPI・縮小時にも画面外へ押し出されないよう修正。Canvasのヘッダー／行高と列最小幅も実フォントから算出する。
- PDFページ編集のトリミング右ペインは固定表示を維持しつつ、固定高さを廃止してプレビューだけが余剰高さを吸収する構造へ変更。詳細編集／分割Viewerの操作領域、進捗表示、独自ダイアログもDPIに応じた自然サイズを確保する。UI構成、機能名、項目名、保存形式は変更していない。


v3.6.22 - 2026-10-03
- 結合リストの出力操作直下へ［File name］［Path］の編集可能Entryを追加。現在の引用元と選択中プリセットの生成規則から展開した実際の出力予定値を表示し、引用元／プリセット変更時には生成規則から再計算する。Entryを直接編集した値は現在の出力値として優先し、引用元／プリセット等が変わって再生成されるまで保持するが、プリセット自体は変更・保存しない。
- 結合出力の実行先決定を上記Entryの現在値優先へ変更。Entryが存在しない互換経路では従来どおりプリセット生成規則から算出する。引用元削除／Clear等で引用元が変わった場合も予定値を再計算し、通常のリスト再描画では手入力値を上書きしない。
- 結合出力［詳細設定］の出力先タブを［File name 生成規則］［Path 生成規則］と明記し、結合リスト本体の展開済み実値とプリセット側の生成規則をUI上で区別した。生成規則を実際に変更して保存した場合だけ本体Entryを再生成する。v3.6.22向け回帰テストを追加した。


v3.6.21 - 2026-10-03
- Folder Map／Field Mapの各項目を左ドラッグした場合、その項目が表すファイル群をまとめてStateボタンドラッグと同じ結合リストD&D経路へ渡せるようにした。通常クリックは5px未満の移動では従来どおりFolder Map Filter／Field Map検索としてButtonRelease時に実行し、中クリック・右クリック・Root再読込ボタンの既存操作も維持する。
- Map行にはファイル集合を常時保持せず、ドラッグ閾値5pxを超えた瞬間だけdisplay_base_items()を1回走査して対象rowid群を解決する軽量方式とした。Folder MapはRoot全体または選択Subfolder配下、Field Mapはその階層条件に一致する項目群を解決し、以降のドラッグカード・結合リスト一時前面化・青太線挿入ガイド・ドロップ処理は既存State D&D実装をそのまま再利用する。
- v3.6.21向け回帰テストを追加し、クリック／ドラッグ閾値の分離、対象解決の遅延実行、既存State D&D経路の再利用、Mapの中クリック／右クリック維持を固定した。

v3.6.20 - 2026-10-03
- メインシートの［結合リスト］ボタンをウインドウ表示トグルとして整理。結合リストが通常表示／最大化状態で既に開いている場合は同ボタンで最小化し、最小化中／閉じ（withdraw）状態で押した場合は従来どおり再表示して前面化・フォーカスする。独立Toplevel／Stateドラッグ時の一時表示仕様は維持する。
- 結合出力プリセットの「出力したPDFをPMT Viewerで開く」を、親項目［出力したPDFをPMT で読込む］と、その配下の［Viewerで開く］へ分離。PMT読込みのみを選べるようにし、ViewerはPMT読込み有効時だけ選択可能とした。旧プリセットでopen_viewer=Trueの場合はload_pmt=Trueへ自動移行して従来動作を維持する。
- 結合リスト上段の［クリア］を撤去し、下段の［リストのファイルをゴミ箱へ］の直左へ［リストをクリア］として移動。確認なし即時クリアというv3.6.9以降の動作は変更しない。v3.6.20向け回帰テストを追加した。

v3.6.19 - 2026-10-03
- v3.6.16を実装ベースへ戻し、Stateドラッグ中に閉じ／最小化状態の結合リストを一時表示する際の「反対側コーナー位置計算・一時geometry適用・終了時geometry復元」を撤去。閉じ／最小化状態でも普段の保存位置のまま一時表示し、ドラッグ終了後は成功・キャンセルを問わず元のwithdraw／iconic状態だけを復元する。表示中の結合リストは従来どおりドラッグ中のみ一時topmost化する。
- 一時位置を保存対象から除外するための特例処理、ドラッグ復元用geometry状態、位置計算関数、ポインタ座標受け渡しなど不要になったコードを削除。結合リストの通常geometry保存処理を単純化し、普段の位置を常に唯一の表示位置として扱う。
- v3.6.17／v3.6.18は一時表示位置を維持するための修正版だったが、この方針自体を採用しないため没版として履歴のみ保持。版番号は巻き戻さずv3.6.19へ進めた。

v3.6.18 - 2026-10-03 （没版）
- PMTメインシートStateドラッグ開始時、最小化中（iconic）の結合リストへ一時表示位置をgeometry指定してもWindows/Tkでは通常位置のままdeiconifyされる場合があったため、iconic→withdrawへ一度遷移して非表示状態を確定してから一時位置を設定し、その後deiconifyする順序へ変更。閉じ状態／最小化状態のどちらもドラッグ開始位置と反対側の一時位置へ確実に表示する。
- ドラッグ終了時の閉じ状態復元を、withdraw→update_idletasksで非表示をWMへ反映→topmost復元→通常ジオメトリ復元の順へ変更。元位置のgeometryを見えている状態と同じWM更新バッチで適用しないことで、一時位置から通常位置へ戻ってから消える一瞬のジャンプを防止する。
- 最小化状態への復元も一旦withdrawして非表示を確定後、通常ジオメトリを復元してからiconifyする方式へ統一。通常表示中だった結合リストの前面化挙動、一時位置をMergeList.jsonへ保存しない仕様、DnD成功／キャンセル双方での復元は維持する。v3.6.18向け回帰テストを追加した。

v3.6.17 - 2026-10-03 （没版）
- PMTメインシートStateドラッグで閉じていた結合リストを一時表示した後、ドラッグ終了時に保存済み位置へ戻る瞬間が画面上に見えていた挙動を修正。withdraw状態へ先に戻して完全に非表示にしてから、通常時の保存ジオメトリを内部的に復元する順序へ変更した。
- 最小化状態から一時表示した場合も、保存位置へ戻すより先にiconifyしてからジオメトリを復元する順序へ変更し、終了時の見える位置移動を防止。表示中だった結合リストの既存前面化挙動、DnD追加／キャンセル双方での状態復元、一時位置をMergeList.jsonへ保存しない仕様は維持する。v3.6.17向け回帰テストを追加した。

v3.6.16 - 2026-10-03
- PMTメインシートState列から結合リストへドラッグする際、結合リストのドラッグ開始前状態を「表示中／閉じ（withdraw）／最小化（iconic）」の3状態として保持するよう変更。表示中の場合はv3.6.15どおりフォーカスを奪わず一時topmost化する。
- 結合リストが閉じている場合はStateドラッグ開始時だけ一時表示し、ドラッグ開始位置と反対側のモニタ作業領域コーナーへ配置してドロップ先として使えるようにする。ドロップ成功・リスト外でのキャンセルのどちらでもドラッグ終了後に元のwithdraw状態へ戻す。未生成の結合リストもフォーカスを奪わずwithdraw状態で構築して同じ一時表示を行う。
- 結合リストが最小化中の場合も同様に一時deiconifyして反対側へ表示し、ドラッグ終了後に元の保存ジオメトリへ戻して再度iconifyする。一時表示中の位置はMergeList.jsonへ保存しない。既存の青太線挿入ガイド、State D&D追加処理、表示中ウインドウの前面化挙動は維持する。v3.6.16向け回帰テストを追加した。

v3.6.15 - 2026-10-03
- 独立Toplevel化した結合リストがPMTメインシートのStateドラッグ開始時に背面へ隠れる問題を修正。結合リストが既に表示中の場合だけ、ドラッグ中はフォーカスを奪わず一時的に前面／topmostへ上げ、ドロップ判定後に元のtopmost状態へ戻す。withdraw／最小化中の結合リストを勝手に再表示することはしない。
- メインシートState→結合リストのDnD中も、ポインタが結合リストCanvas上へ入った時点でリスト内並べ替えと同じ青太線の挿入位置ガイドを表示。ポインタが外れた場合／ドロップ終了時はガイドを消去する。
- Explorer等からの外部ファイルDnDについて、DropEnter／DropPosition／DropLeaveを追加で受け、ドラッグ中から同じ青太線の挿入位置ガイドを表示するよう変更。Drop時は表示中の挿入境界を使って既存のバッチ内File name昇順追加を行う。
- 結合リストCanvasの固定ヘッダーを論理位置より上側へ4pxだけ不透明にオーバードローし、縦スクロール途中の行文字がヘッダー上端から数pxだけ見える描画漏れを防止。Hit Test／行高／ヘッダー高は変更しない。v3.6.15向け回帰テストを追加した。

v3.6.14 - 2026-10-03
- 結合リストをメインPMTへwm transientで従属させるダイアログ扱いから、同一プロセス内の通常Toplevelへ変更。transient指定とモーダル所有関係を使用せず、Windows上でメインウインドウとは独立してフォーカス・最小化・Alt+Tab切替できる通常ウインドウとして扱う構成にした。結合リストのデータモデル／MergeList.json／結合処理は変更しない。
- 結合リストの新規表示・withdraw後の再表示・Viewerからの復帰を共通のウインドウ活性化処理へ統一し、deiconify→lift→focus_force→Canvas focus_setの順でキーボードフォーカスを明示的に戻すよう変更。Windowsではtoolwindow属性を明示的にFalseとし、通常Toplevel用のPMTアイコンも設定する。
- ［X］では従来どおり結合リスト内容を保存してウインドウだけwithdrawし、PMT本体とは同一プロセスのまま維持。別プロセス起動／本体と独立した終了ライフサイクルは今回対象外とした。v3.6.14向け回帰テストを追加した。

v3.6.13 - 2026-10-03
- 結合リストの表UIを、引用元／No.／File name／ページ数／出力ページ数／予定ページ数／Pathを複数ttk.Treeviewへ分割して同期する構成から、単一Canvasで全列・全行を直接描画する専用Gridへ置換。縦スクロール・選択・DnD・セル背景・引用元ラジオ・列境界を1つの座標系へ統合し、Treeview間の行位置／DPI／スクロール同期と引用元背景画像による擬似セル装飾を廃止した。
- 結合リストの列幅をCanvasヘッダー境界ドラッグで変更可能にし、最小幅を設定。ユーザー指定の基本幅をMergeList.jsonのcanvas_uiへ保存／復元し、ウインドウ横幅に余剰がある場合はPath列だけが伸長、狭い場合は保存幅を維持して水平スクロールする仕様へ変更した。
- File name／Pathヘッダーの通常クリックをSortではなく見切れ方向切替に割り当て、File nameは先頭優先、Pathは末尾優先を初期値として各々独立保存。ヘッダー表記へ記号は追加せず、Tooltipでは常に実値全文を表示する。
- Canvas版でもExplorer型の単一／Ctrl／Shift／Ctrl+A選択、複数選択行DnD、挿入位置ライン、外部D&D、State D&D、引用元選択、出力ページ数Entry編集、Viewer／右クリック／Delete／Alt+上下を維持。選択変更は差分行だけ再描画し、構造変更時のみ全Canvasを再構築する。既存MergeList.jsonのitems／metadata_source_id／プリセットはそのまま互換読込する。
- 旧Treeview専用の4列Widget構成、選択／Yスクロール同期、引用元セル画像生成、Treeview列背景Style等を削除。Canvas専用実装をpmt_merge_list_ui.pyへ分離し、v3.6.13向け回帰テストを追加した。

v3.6.12 - 2026-10-03
- PDF編集モードのトリミング右ペインを常時固定表示へ変更。上部バーの［トリミング］表示切替ボタンを廃止し、サムネイル編集画面ではモデルページ・プレビュー・現在値/変更予定値・プリセット・適用パターンを常に確認できるようにした。
- ［トリミング実行］を右ペイン内の縦レイアウトから外し、スクロールや画面高さに依存しない下部バー右端へ移動。Dirty時の既存オレンジ強調を維持し、PDF編集モードのバルクトリミング主操作として常時到達できる配置にした。
- 下部右側のページ情報を適用パターンと選択状態に連動させ、例として「39 pages / 選択 26 (T対象13)」のように実際に［T］が適用されるページ件数を表示。件数表示は［トリミング実行］の直左へ配置し、[T][T] / [T][ ] / [ ][T] 切替時にも即時更新する。
- トリミング右ペインの冗長な［現在値 / 変更予定］見出し行を削除。左/上/右/下ラベルと現在値の間隔を詰め、現在値・変更予定・単位の列幅を再配分して［変更予定］見出しが見切れないよう整理した。
- v3.6.12向け回帰テストを追加し、固定トリミングペイン、下部バーのトリミング実行、適用対象件数表示、コンパクトな現在値/変更予定UIを固定した。

v3.6.11 - 2026-10-03
- PDF編集モード右側トリミングペインのプレビューで、v3.6.10の外側Crop枠描画追加時にPillowのImageをimportせずImage.new()を呼んでいたため「name 'Image' is not defined」でプレビュー不能になっていた不具合を修正。
- トリミング右ペイン／詳細編集のPDFプレビュー描画を、最終Fitサイズ相当の低scaleで直接PDFium描画する方式から、通常Viewer同様に最低2.0倍で一度高解像度ラスタライズしてからLANCZOSで表示サイズへ縮小する方式へ変更。大きな詳細表示では必要に応じ最大4.0倍までスーパーサンプリングし、自炊PDF端部の細い線・ゴミが低解像度ラスタライズ段階で消えにくくした。MediaBox全体を表示し既存CropBoxを編集枠として扱うv3.6.3以降の仕様は維持。
- トリミング対象外側へ重ねていた暗色／stippleシェードを右ペインと詳細編集の両方から撤去。切り落とし候補領域の画素自体を改変せず表示し、v3.6.10の「太い青枠・四隅ハンドルは保持領域の外側だけへ描画」を境界表示として使用する。端の黒線・汚れ・スキャン残りをCropBoxの内外どちらでも確認しやすくした。
- v3.6.11向け回帰テストを追加し、PDFトリミングプレビューの最低2倍スーパーサンプリング、MediaBox一時展開後の元CropBox復元、詳細画面で画像上へシェードを重ねないこと、右ペインのImage import漏れ再発防止を固定した。

v3.6.10 - 2026-10-03
- PDF編集モードのトリミング右ペイン／詳細編集で、太いCropBox枠を境界線中心へ描いて残す領域側へ食い込ませていた表示を修正。上・下・左・右の枠線をすべてCropBoxの外側だけに描く方式へ変更し、保持される画像領域へ1pxも枠を重ねない。
- 右ペインの小プレビューはMediaBox画像の外側へ数pxの描画余白を追加し、トリミングなし（CropBox=MediaBox）の場合も枠線を画像外へ表示可能にした。除外領域のシェードとCrop計算自体は従来どおりで、枠の太さ・見やすさを維持する。
- 詳細編集の四隅ハンドルも保持領域へ重ならない外側四象限へ移動。マウスの境界Hit判定幅・ドラッグ操作・CropBox値計算は変更せず、表示だけを外側化した。
- Crop枠の外側描画を純粋関数化し、Pillowプレビューでも整数丸め後に保持領域へ描画しない回帰テストを追加。

v3.6.9 - 2026-10-03
- 結合リストの［クリア］から確認ダイアログを削除。リストが空でない場合はクリック直後に結合リスト内容・引用元・Viewer用キャッシュをクリアして保存し、一覧を即時更新する。
- 結合リストの［リストのファイルをゴミ箱へ］は実行前確認を維持しつつ、全件正常終了後の完了ダイアログを廃止。成功時はステータス表示だけ更新し、部分失敗／失敗時の警告ダイアログと失敗行をリストへ残す既存挙動は維持する。
- v3.6.9向け回帰テストを追加し、Clearの無確認実行とゴミ箱成功時showinfo非表示・失敗時showwarning維持を固定した。

v3.6.8 - 2026-10-03
- PDF編集モードのDirty強調色を、メインシート上部の［検索クリア］［絞込］等で使用している黄色強調色（通常 #FFE08A／Active #FFD15C）へ統一。［上書き保存］［トリミング実行］［このページに適用］の実差分判定ロジックはv3.6.5以降を維持し、色だけをPMT全体の操作フィードバックへ揃えた。
- PDF編集モードの先頭BlankをShift範囲選択の端点として使用可能にした。Blank→Shift+任意ページでは1ページ目を開始点、任意ページ→Shift+Blankでは1ページ目を終了点として解釈し、Blank自体は実ページ選択へ混入させない。先頭Blankのダブルクリックには全ページ選択を追加した。
- 結合リストへExplorer D&D、追加ダイアログ、State D&D等から複数ファイルを一括登録する場合、その登録バッチ内をファイル名の大文字小文字を無視した昇順へ正規化してから挿入するよう変更。単一ファイル追加、既存リスト行の順序、ユーザーによる結合リスト内DnD並べ替えは変更しない。
- 結合出力後に生成PDFをViewerで確認する際、メインシートの現在Filter等によって出力PDFが表示集合外にあると左上Queue/ESCホバーが0件扱いで消える問題を修正。Viewer中の実PDFを1件Queueとしてフォールバックし、左上ホバー操作を常に利用可能にした。
- v3.6.8向け回帰テストを追加し、Blank範囲選択・Blankダブルクリック全選択、Dirty色、複数結合素材のファイル名昇順登録、表示集合外ViewerでのQueueフォールバックを固定した。

v3.6.7 - 2026-10-02
- PDF編集モードのスクロール時サムネイル可視判定を合理化。従来はホイール／スクロールバー操作のたびに全ページを走査して各カード矩形と表示範囲を比較していたが、現在CanvasのY位置・セル高・列数から可視＋プリフェッチ対象の行／ページ範囲を直接逆算し、その範囲だけを処理する方式へ変更。直前の可視集合との差分だけPhotoImage参照を解放し、画面外へ移動した未処理レンダーキューも破棄する。
- サムネイル遅延描画のPage ID解決を、描画1件ごとのdocument.pages線形検索から、レイアウト再構築時に作成するpage_id→PageEditItem辞書のO(1)参照へ変更。ページ構造変更時は既存の全レイアウト再構築経路で辞書も同期する。
- PDF編集サムネイルのクリック／DnD Hit Testを全カード矩形の線形探索から、Canvas座標と保存済みグリッド情報（余白・セル幅高・列数）によるrow/column逆算へ変更。カード間の空白は従来どおり非Hitとし、先頭挿入ブランク、DnD前後挿入位置、最終行以降の末尾挿入挙動を維持する。全カードHit Testレコード自体も廃止した。
- v3.6.7向け回帰テストを追加し、可視範囲計算がdocument.pages全走査を行わないこと、レンダー処理がpage_id辞書を使用すること、Hit Testがグリッド直接計算で線形探索しないことを固定した。


v3.6.6 - 2026-10-02
- PDF編集モードのサムネイル選択描画を局所更新へ変更。単一クリック、Ctrl追加/解除、Shift範囲選択、右クリック選択、サムネイルダブルクリック、Ctrl+AではCanvas全体をdelete/recreateせず、旧選択と新選択の差分カードだけ背景・枠線をitemconfigure()で更新する。選択操作だけでサムネイル画像・ページ番号・Canvas全体が再生成されるチラつきを解消した。
- 選択変更後もトリミング右ペインのモデルページ／現在値／変更予定値、Dirty表示、選択件数を従来どおり即時更新する。実ページ構造が変化するDnD並べ替え、追加、削除、複製、Undo/Redo、回転、倍率変更、列数が変わるウインドウ幅変更では従来どおり全レイアウト再構築を使用する。
- v3.6.6向け回帰テストを追加し、通常選択経路が_redraw_layout()を呼ばず局所更新ヘルパーを使用すること、ページ構造変更経路では全再描画が残ることを固定した。


v3.6.5 - 2026-10-02
- PDF編集モードのDirty判定を「操作を実行したか」ではなく、編集開始時／直近保存時のページ列と現在状態の実差分から算出する方式へ変更。ページ順、追加・削除・複製、回転、CropBox、しおり等を比較し、左回転→右回転、移動→元位置へ戻す、追加→削除など最終状態が元と一致した場合は未保存状態を自動解除する。Undo/Redo後も同じ比較で再判定する。
- CropBox比較を正規化し、未指定(None)と四辺0は見た目上の「トリミングなし」として同一扱いに変更。トリミング値の単位変換で生じる微小な浮動小数差も丸めて比較する。これにより、実質無変更のトリミング操作でUndo履歴・Dirty・サムネイル[T]表示が発生するケースを防止した。既存の実CropBoxがあるページは従来どおり[T]表示する。
- トリミング右ペインは、現在の変更予定値と選択ページ群の実CropBoxを適用パターン［T］［T］／［T］［ ］／［ ］［T］に従って比較し、少なくとも1ページに実差分がある場合だけ［トリミング実行］をオレンジ表示する。数値編集、mm/%切替、プリセット読込、対象選択、適用パターン変更、Undo/Redo後に即時再判定する。
- トリミング詳細編集画面も現在ページの実CropBoxとの差分がある場合だけ［このページに適用］をオレンジ表示。PDF編集全体では開始時／保存時との差分が残っている場合だけ［上書き保存］をオレンジ表示し、元状態へ戻れば通常色へ復帰する。
- v3.6.5向け回帰テストを追加し、実差分Dirty、CropBoxのNone/0同値、回転・並替・追加削除の復帰、トリミング適用対象差分判定、オレンジ表示更新経路を固定。全268件成功／16件スキップ、1974 subtests成功。

v3.6.4 - 2026-10-02
- PDF編集のトリミング右ペインを「現在値」と「変更予定値」の比較UIへ変更。現在値は選択中モデルページに実際に設定されているCropBoxをmm／%で読み取り専用表示し、変更予定値だけを入力・プリセット読込で編集する。単一ページ選択時は両者を同期し、Shift/Ctrlで複数選択へ広げた場合はモデルページで作った変更予定値を保持してバルク適用できる。
- 右ペインのプリセット操作を［プリセットから読込み▼］1個へ整理。プルダウンでプリセットを選択すると即座に変更予定値へ反映し、表示は自動的に［プリセットから読込み▼］へ戻る。［詳細編集…］は同プルダウン直下へ移動した。
- PDF編集サムネイルのダブルクリックから、そのページを単一選択してトリミング詳細編集画面へ直接移行できる動線を追加。先頭挿入ブランクのダブルクリックは対象外とした。
- トリミング詳細編集画面にもプリセットコンボを追加し、［読込］［登録/更新］［削除］を明示操作として配置。既存パターンの読込と更新、新規名入力による登録を同じ欄で扱える。［この設定を使用］と［閉じる］ボタンを削除し、［このページに適用］を従来の右下［閉じる］位置へ移動して、詳細ページ表示を主役にした。ウインドウ右上またはEscで閉じる。
- v3.6.4向け回帰テストを追加し、右ペインの現在値／変更予定値分離、即時プリセット読込、サムネイルダブルクリック、詳細画面の明示的プリセット読込／書込、不要ボタン撤去を固定。全258件成功／16件スキップ、1974 subtests成功。Xvfb上の実Tkスモークでも現在値保持、ワンショットプリセット、詳細画面プリセット読込、ダブルクリック移行を確認した。

v3.6.3 - 2026-10-02
- PDF編集のトリミング再編集をMediaBox基準へ修正。既存CropBox付きPDFを編集モードへ読み込む際にMediaBox寸法・元CropBox・ページ回転から見た目上の左／上／右／下トリミング量を復元し、トリミングプレビュー／詳細編集では既存CropBoxを一時的に無視してMediaBox全体を表示、その上へ現在CropBoxを初期枠として重ねるよう変更した。保存後に再度編集しても、以前隠した領域まで枠を広げて戻せる。
- PDF編集サムネイルもMediaBoxを描画元として編集モデルのCropBoxを1回だけ適用する方式へ統一。元PDFに既存CropBoxがある場合の二重Cropを防止しつつ、通常サムネイル自体は従来どおり現在のトリミング後の見た目を表示する。
- トリミング右ペインを「現在／モデルページのCropBox値」を主役に再整理。単一ページを選択するとそのページの実際のCropBoxをmm／%値へ読み込み、複数選択へ広げた場合はモデルページで調整中の値を保持して一括適用できる。プリセットは［プリセットから読込］＋［読込］の補助機能へ下げ、標準［トリミングなし］を含め、読み込んだ後の四辺値は自由に微調整可能とした。
- 詳細トリミング画面も「現在ページのトリミング」を中心とし、プリセット登録／更新／削除は任意の補助操作として分離。詳細画面で調整した値は右ペインへ戻す、または現在ページへ直接適用できる既存動線を維持した。
- v3.6.3向け回帰テストを追加し、全254件成功／16件スキップ、1974 subtests成功。既存CropBox付きPDFでMediaBox全体のトリミングプレビューとCrop後の通常サムネイルを分離して描画できることを確認した。

v3.6.2 - 2026-10-02
- PDF編集（並替）モードへトリミング機能を追加。上部［トリミング］から右側専用ペインを開き、選択中のモデルページを拡大プレビューしながら、トリミングパターン、左／上／右／下、mm／%、適用パターン［T］［T］／［T］［ ］／［ ］［T］を指定して、サムネイル側で選択した複数ページへ一括適用できるようにした。空欄側は既存CropBoxを変更せず完全にスルーする。
- 名前付きトリミングパターンをPageTrimPatterns.jsonへ保存する機能を追加。編集・削除不可の標準［トリミングなし］（四辺0）を常設し、選択ページへ適用することでCropBoxをMediaBoxまで戻せるようにした。パターン自体には適用順を保存せず、［T］［T］／［T］［ ］／［ ］［T］は実行時に選択する。
- ［詳細編集…］でモデルページを大きく表示する専用ポップアップを追加。Crop枠の四辺・四隅をドラッグして位置を指定し、mm／%数値と双方向に連動する。設定を右ペインへ戻すほか、ユーザーパターンの登録／更新／削除、およびモデルページへの直接適用に対応した。
- トリミングは画像再圧縮やMediaBox変更を行わず、保存時にCropBoxだけを変更する非破壊方式とした。ページ回転後の見た目の左／上／右／下を基準にCropBoxへ変換し、ページ複製ではトリミング情報も複製する。トリミング実行1回は複数ページを含めて1つのUndo/Redo単位とし、編集サムネイルにもトリミング結果を即時反映する。
- v3.6.1でVERSION.txtが版番号1行だけに置き換わり過去履歴が欠落していたため、v3.5.83までの添付VERSION.txtを正本として全履歴を復元し、v3.6.1／v3.6.2を同じVersion History形式で追記した。
- v3.6.2向け回帰テストを追加し、全250件成功／16件スキップ、1974 subtests成功。GUIスモークで右ペイン、交互適用、詳細ドラッグ画面を確認し、PDFiumによるCrop指定サムネイル描画も確認した。pikepdf非搭載環境のため実PDFへのCropBox書込み最終確認はWindows実機対象。

v3.6.1 - 2026-10-01
- 通常Viewer左下ホバーへ［PDF編集］を追加し、Viewer派生ではなく全面サムネイル型の一時PDFページ編集モードを実装。先頭挿入用の常設ブランク、複数選択、DnD並べ替え、Ctrl+C／Ctrl+X／Ctrl+V、Ctrl+A、Delete、Undo/Redo、左右90度回転、削除、複製に対応した。
- 上部をページ編集操作［Undo］［Redo］／［左回転］［右回転］［削除］［複製］／［ページ追加▼］とし、右端へ50～200%のサムネイル倍率［100%▼］を追加。Ctrl+ホイールでもメインシートと同じ段階で倍率を変更できる。大規模PDF向けに可視範囲中心の遅延サムネイル描画と上限付きキャッシュを使用する。
- ［ページ追加▼］に白ページ、黒ページ、ブラウズを実装。白／黒ページは選択ページと同サイズ、ブラウズはPDF全ページまたはJPG/JPEG/PNG/BMP/WebP/TIFF/TIFを読み込み、コピー／貼付／複製／追加はいずれも選択位置の直後、先頭ブランク選択時は先頭へ挿入する。
- 編集開始時に元PDFの15項目メタデータとDocInfoをスナップショットし、PMTしおりは各PageEditItemへページ情報として保持して移動・複製に追従する。［上書き保存］は確認を出さず同一フォルダの一時PDFを完成後にos.replaceし、失敗時は元PDFを置換しない。成功後はMetadata/Root CacheとPMT一覧を更新し、保存後PDFの該当ページを通常Viewerで再表示する。［別名保存］は保存先を明示し、正常保存後に新PDFをPMTへ登録してViewer表示する。
- PDF編集の作業状態は永続化せず、保存せずViewerへ戻る／PMT終了する場合はメモリ上の変更を破棄する。併せて分割モードのPDFごとのSplitSessions自動保存・復元を撤去し、分割Viewerへ入るたび元PDF全体1行から開始するよう変更。分割プリセット自体の保存は維持した。
- v3.6.1時点の回帰テストは239件成功／16件スキップ、1974 subtests成功。pikepdf非搭載環境のため、実PDF書込みの最終確認はWindows実機対象とした。

v3.5.83 - 2026-10-01
- 結合リストからViewerを開いた際に結合リストダイアログをwithdrawしないよう変更。Viewer表示中も結合リストを開いたまま維持し、Viewer終了時は従来どおり選択行を同期する。
- 結合リスト下部の出力操作を［出力実施］［プリセット名▼］［詳細設定］の順へ整理。［出力実施］はメインシート［保存］／分割［分割実施］と同系統の角ばったtk.Buttonへ変更。
- v3.5.83向け回帰テストを追加し、全231件成功／16件スキップ、1974 subtests成功。

v3.5.82 - 2026-10-01
- Viewer右下ホバーボタンを通常／分割とも上から［設定］［Tag］［Toolbox］［Auto］の順へ整理。分割中のTagペイン自体は従来どおり固定表示。
- 分割リスト上部の［通常Viewerへ］を削除し、その位置へ［Undo］［Redo］を配置。行操作は［↑］［↓］［削除］［行追加］［複製］の1行へ統合し、重複していた［分割点 ±］ボタンを削除。分割点操作はViewer中央下のBookmark同等操作へ統一。
- 分割固定ペインの［分割実施］［プリセット名▼］［詳細設定］［再適用］の下へ区切り線を追加。
- 分割Column Infoから独立していた保存名／保存先欄を廃止。保存名は既存File nameへ統合し、保存先もColumn Infoの正式項目として追加。両項目をプリセット［レイアウト］の表示ON/OFF・並べ替え・区切り線設定対象に含めた。v3.5.81以前のレイアウトには保存先をFile name直後へ自動補完する。


v3.5.81 - 2026-10-01
- Viewer下端ホバーUIを整理。通常Viewerの［結合リスト追加］は現在PDFをリストへ追加した直後に結合リストダイアログを表示するよう変更。［設定］は出力系操作が集まる左下スタックから外し、Tag / Toolbox / Autoと同じ右下スタックへ移動した。分割Viewer側のホバー表記も［分割実施］［詳細設定］へ統一した。
- 分割Viewer固定ペイン下部の操作を［分割実施］［プリセット名▼］［詳細設定］［再適用］の1列へ整理し、［初期化］ボタンを削除。［分割実施］はメインシート［保存］と同系統の角ばったtk.Buttonとした。プリセット切替は既存の予定値を書き換えず、以後生成する分割行とColumn Infoレイアウトだけを切り替える。
- 分割プリセットへ［レイアウト］タブを追加。分割出力で扱うFile name＋15メタデータ項目と区切り線だけを対象に、通常Viewerの［列・Column Info］に近い一覧UIで表示ON/OFF、並べ替え、区切り線配置をプリセットごとに保存できるようにした。通常ViewerのColumn Info設定とは独立し、古い分割プリセットには従来相当の全項目表示レイアウトを自動補完する。
- 分割プリセット［出力先］へ［出力したPDFをPMTに登録］を追加。ON時は正常に出力できたPDF群を一括してPMTの既存ファイル追加経路へ登録し、Viewer切替や分割セッションの予定値変更は行わない。初期値はOFF。
- 分割プリセットのレイアウト後方互換・出力後PMT登録・Viewerホバー配置・結合リストダイアログ表示について回帰テストを追加。全223件成功／16件スキップ、1974 subtests成功。

v3.5.80 - 2026-10-01
- 結合と分割の共通PDF生成処理で、出力しおりにPMT形式識別情報（/PMTContentsVersion）を付与していなかった問題を修正。平坦なしおりは通常PMT方式のv1、階層付き元しおりを維持する場合は新たな識別値v2で出力し、PMTでページ・タイトル一覧として読み込めるようにした。結合点しおりと引継ぎしおりの両方に対応。既存の元しおりの階層構造はPDF標準Outlineとして維持する。
- PMT側の識別・読込み・キャッシュ識別をv2対応に更新。階層付き出力PDFを開いて標準メタデータだけ保存した際、閲覧用に平坦化したしおりでPDF内の本来の階層を意図せず上書きしないよう、Contentsに実変更があるときだけしおりを書き直す。
- 結合設定の閉じる操作・プリセット切替・出力時に未反映のしおり設定を取り込む（設定保存の押し忘れによる旧値出力を防ぐ）。不正なしおり参照を黙って消す代わりに一部ケースでエラーを提示。
- 結合・分割共通出力のBookmark再配置・新規Bookmark付加・PMT認識・階層保持・メタデータ単独保存に回帰テストを追加。既存テストを含む全件確認済み。pikepdf非搭載環境につき実PDFの直接生成テストはスキップ（Windows上で確認が必要）。



v3.5.79 - 2026-09-30
- 通常Viewer左下ホバー操作へ［PDF分割］を追加。元Viewer描画・見開き・シークを共用し、通常Viewerとは別の幅・Toolbox状態を保存する分割Viewerモードを実装。分割リストをColumn Infoと同じ側面ペイン上段へ常時表示し、上下境界をドラッグして高さ調整できるようにした。
- 分割Viewerで既存Bookmarkと同じ操作位置の［分割点］登録・解除・前後移動に対応。元PDF全体の1行から連続範囲を自動分割し、Pages式を直接編集すると逆順・繰り返し・飛び地を許可する自由編集へ移行。自動状態への復帰は作業中のUndoとし、行の追加・削除・複製・並替にも対応。
- 各分割予定行に15項目の独立メタデータ、予定ファイル名、出力先を保持。分割予定行の作成時に専用プリセットを評価して実値を入力し、その後はColumn InfoやToolboxで手編集可能。再適用は全項目再生成／空欄補完／キャンセルから選択でき、手修正した元PDFの情報は書き換えない。
- PDFごとに分割作業のPages式・予定メタデータ・ファイル名等をSplitSessions.jsonへ自動保存し、再開時に復元。元PDFのファイル内容が変わったときは古い作業情報を黙って流用せず、確認後に初期化する。［初期化］は確認後に全ページ1行へ戻し、元PDFと出力済みPDFには手を加えない。
- 分割出力では既存の結合エンジンを流用し、ページ抽出・Bookmark再配置・通常PMT形式の15項目メタデータ書込み・同一フォルダ内一時PDFからの安全な置換を行う。デフォルトの保存先は元PDFフォルダ配下のs（PMTの正式引数%FolderPath%\s）、ファイル名は元ファイル名＋3桁連番。上書き事前確認、出力名重複・元PDF上書きの防止を追加。
- 単体206件成功／15件スキップ（既存198件＋新規8件）。GUIの分割操作・Column Info編集先の分離・自動保存復元・レイアウト往復、および出力処理の模擬確認を実施。実PDF分割生成は検証環境にpikepdfがないためWindows実機での確認が必要。


v3.5.78 - 2026-09-30
- 結合出力［基本メタデータ］へBinding、Rating、Difficulty、Duration、Key、X1～X6を追加。既存プリセットにも引用元の対応引数を初期パターンとして補完し、設定画面は2列表示でスクロール不要とした。
- 結合PDFのメタデータ書込みを通常のPMT保存処理に合わせ、BindingはViewerPreferences/Direction、Rating/Difficulty/Duration/Key/X1～X6はforScore互換のKeywords属性へ出力する。標準Title/Author/Subject/Keywordsや各フィールドの引数・関数・引用元設定は従来どおり維持した。


v3.5.77 - 2026-09-29
- 既存の単一［結合リスト］へPDF生成機能を追加。結合リスト順と既存Pages式（全ページ・部分範囲・逆順・同一ページ複数回・同一PDF複数行）をそのまま実出力へ反映し、同一出力フォルダ内の一時PDFを完全保存してから最終名へ置換する安全な確定方式とした。同名ファイルは必ず確認し、元素材と同一Pathへの出力は禁止する。
- 結合素材としてJPG/JPEG/PNG/BMP/WebP/TIFF/TIFを追加。画像は1ファイル1ページ、TIFFは先頭フレームのみとし、EXIF Orientation、透過部分の白背景合成、アスペクト比・元ピクセル寸法、有効DPIからのページサイズ計算を反映する。DPI欠損・異常時は96 DPIを使用し、通常JPEGは元のDCT圧縮データを直接埋め込み、その他はリサイズせず可逆圧縮で格納する。
- 結合リスト下部へ［出力プリセット］［詳細設定...］［出力実施］を追加し、別行へ［リストのファイルをゴミ箱へ］を配置。詳細設定は［基本メタデータ］［しおり］［出力先］の3タブに限定し、プリセットの新規作成・名前変更・削除・保存と最後の選択状態をMergeList.jsonへ後方互換で保持する。詳細設定内には出力ボタンを置かない。
- Title / Author / Subject / Keywords、出力先、ファイル名、新規しおりタイトルで既存PMTの引数・Parse1～5・簡易関数評価を共通利用。基本メタデータと出力先は［引用元］行を、新規結合開始しおりは各素材行自身を参照する。画像を引用元にした場合もFilename / OriginalName / Folder / FolderPath / Path等を利用でき、PDF固有メタデータは空文字として扱う。
- 元PDFの標準BookmarkをPages展開後の実出力位置へ再マッピング。逆順・除外ページ・同一元ページの複数出力に対応し、重複した元ページのBookmarkは各出現位置へ複製する。階層と元の順序を維持し、除外された親の下に有効な子がある場合は子を上位へ昇格する。各素材開始Bookmarkは行単位でトップレベルへ追加し、画像への付与は独立設定（初期OFF）とした。
- 正常出力後に既存PMT Viewerで開く設定を追加。結合リスト上の画像行はPMT Viewerへ渡さずOS既定アプリで開くため、PDF専用Viewer Queueを維持したまま画像選択時のエラーを防止する。
- ［リストのファイルをゴミ箱へ］は明示確認後のみ実行し、同一Pathの重複行は実ファイルを1回だけWindows等の通常ゴミ箱へ送る。成功Pathの行だけを結合リストから除去し、一部失敗時は失敗行を残して結果を通知する。結合出力後の自動削除は行わない。
- 実PDF/画像による出力描画とダイアログ表示を確認し、PDF結合、画像6形式、複数フレームTIFF、EXIF Orientation、透過PNG、DPI有無、JPEG無再圧縮、Bookmark継承/複製/昇格、新規Bookmark、引用元パターン、プリセット永続化、上書き拒否、失敗時の不完全ファイル除去、Viewer連携、ゴミ箱重複・一部失敗の回帰テストを追加した。

v3.5.76 - 2026-09-29
- メインシート上部バーのFoldermap / Fieldmapボタンをクリックした際、Toolboxの表示状態は変えずに対応するToolboxコンテキストへ切り替えるよう変更。FoldermapはRoot Toolbox、FieldmapはField Map Toolboxを選択し、Toolboxが折り畳み中の場合は強制表示しない。
- Field map特殊検索ダイアログに条件お気に入り機能を追加。［検索実行］［絞込み実行］の下へ区切り線と［お気に入りに設定］を配置し、登録名を付けて対象階層・第1/第2ソート項目・各昇降順・Max件数を保存できるようにした。
- 特殊検索お気に入りは［お気に入り / 編集 / 削除 / ↑ / ↓］ヘッダーとリストBoxで管理。リスト項目をダブルクリック（またはEnter）すると保存済み特殊検索条件をダイアログへ復元する。条件を復元しただけでは検索を実行せず、［検索実行］または［絞込み実行］で明示的に実行する。
- 特殊検索お気に入りは通常Configおよびお気に入りJSONの全般設定に保存・復元し、名前順ではなくユーザー指定の並び順を保持する。

v3.5.75 - 2026-09-29
- Field map特殊検索ダイアログ下部を［検索実行］［絞込み実行］の2ボタンだけに整理。ウインドウ右上の閉じる操作があるため［キャンセル］ボタンを削除した。
- Field map特殊検索を［検索実行］した後、メインシートの通常［絞込み］でHitをCurrent Listへ確定した場合に、一時的なField Mapフィルター状態が残って［検索クリア］［絞込み］の強調表示がオレンジのままになる問題を修正。通常Keep Hits確定時にField Map/お気に入り由来の一時フィルターと一時ソート指定をまとめて解除し、ボタン表示を通常状態へ戻す。

v3.5.74 - 2026-09-28
- Field map特殊検索ダイアログの［実行］を［検索実行］と［絞込み実行］へ明示的に分離。［検索実行］は従来どおりTop-N結果を一時的な検索/フィルター状態として表示する。
- ［絞込み実行］は同じ条件で特殊検索を実行した直後、そのHitだけをCurrent Listへ確定するところまで1クリックで行う。確定後はField Map特殊検索の一時フィルターと検索欄を解除し、通常のKeep Hits後と同様に次の検索へすぐ進める。Library/Reset用全件スナップショットは変更しない。
- Enterキーは誤操作でCurrent Listを確定しないよう［検索実行］に割り当て、［絞込み実行］は明示的なボタンクリックのみで実行する。

v3.5.73 - 2026-09-28
- メインシート2段目バーの［パターン命名］左隣に［拡大率100%▼］プルダウンを追加。現在のメインシート倍率を常時表示し、50/60/70/80/90/100/120/140/160/180/200%から直接選択できる。
- Ctrl+ホイールも同じ選択段階を順に移動する方式へ統一し、100%以下は10%刻み、100%超は20%刻みに変更。Ctrl+0の100%復帰と、100%基準の列幅・行高・フォント設定を保持する既存仕様は維持した。
- ［設定 > メインシート > バー表示］へ［拡大率］表示ON/OFFを追加。非表示時はボタン分の横幅をMirror Boxへ返し、表示設定はConfig/お気に入り設定へ保存する。現在倍率そのものは従来どおり一時状態で、起動時は100%とする。

v3.5.72 - 2026-09-28
- メインシートCanvasにCtrl+マウスホイールの表示ズームを追加。現在のフォントサイズ・行高・列幅設定を100%基準とし、50～200%を10%刻みで拡大/縮小する。Ctrl+0で100%へ即時復帰でき、通常のホイール縦スクロールは従来どおり維持する。
- ズームはメインシート表部分だけに適用し、Toolbox / Folder Map / Field Map / 上部バー等のUIサイズは変更しない。文字、行高、ヘッダー高、State列、通常列、Group Separator、サムネイル表示領域を同じ倍率のCanvas座標で描画する。
- 表示ズームは一時状態として扱いConfig/お気に入りへ保存しない。列幅・行高・フォントサイズの既存設定値は常に100%基準のまま保持し、拡大/縮小中に列境界をドラッグした場合も画面上の幅を100%基準へ逆算して保存するため、100%へ戻した際に既存レイアウト値が変質しない。
- 水平スクロール位置は倍率変更時に論理位置を補正し、スクロール側でCtrl+ホイールした場合はマウス位置付近の内容が極端にずれないよう調整。セル可視化/中央寄せ等で直接参照していた列幅も表示倍率後の幅へ統一した。

v3.5.71 - 2026-09-28
- Field map Toolboxのお気に入りBox下に区切り線と［Field map特殊検索...］を追加。常設UIは入口ボタンだけとし、条件指定は専用ダイアログへ分離してToolboxの情報密度を維持した。お気に入りBoxは残り高さへ自動追従するため、特殊検索ボタン分だけ自然に縮む。
- ［Field map特殊検索］ダイアログで、対象グループ階層（1～4）、第1ソート項目＋昇順/降順、第2ソート項目＋昇順/降順、Max件数（1以上）を指定可能にした。第2ソートは［なし］も選択でき、［なし］時は方向指定を無効表示する。現在設定済みField Map階層数を表示し、未設定階層を指定した場合は実行前に警告する。
- 特殊検索は現在のField Map設定を指定階層まで使って各グループを作り、各グループ内を第1キー → 第2キー → Path昇順の順で安定順位付けしてMax件数まで抽出する。第1/第2ソート値の空欄は昇順・降順に関係なく常に最後とし、同値時も毎回同じ結果になるようPathを最終キーに固定した。
- 実行結果はCurrent List自体を書き換えず、通常のFilter/Searchと同じ一時的な絞込み状態として表示する。検索欄には［Field Map特殊］条件を表示し、検索クリア/Reset、通常検索への切替、Field Map設定変更で解除できる。特殊検索はメインシートの既存ソート順自体は変更しない。

v3.5.70 - 2026-09-28
- Work版 v3.5.69 のcold load高速化をベースに、Viewer画面左下のホバー操作ボタン群の最上段へ［結合リスト追加］を追加。現在Viewerで表示中のPDFを、既存の単一結合リスト末尾へ1クリックで追加できるようにした。
- 通常Viewerだけでなく結合リスト由来のViewer Queue表示中でも現在PDFを取得して追加できる。同一PDFの重複追加は結合リスト既存仕様どおり許可し、結合リスト画面を自動表示せず、追加後はステータスバーへ対象ファイル名を通知する。

v3.5.69 - 2026-09-28
- Root Cache / metadata cacheが存在しない初回読込みで、Document Typesの有効拡張子ごとに同じフォルダツリーへPath.glob()を繰り返していた列挙を、os.scandir()による単一走査へ合理化。Recursive・Document Types・隠し項目・最終ソート順・キャンセル・走査エラー時の扱いを維持しつつ、大規模ツリーの重複走査を削減した。
- 完全キャッシュミス時に同じファイルへ重複していた更新日時・サイズ取得を、実メタデータ読込み後の1回のstat結果からPdfItemとmetadata cacheレコードへ共有する方式へ整理。読込み中にファイルが更新された場合も最新属性を保存し、直接read_metadata()を呼ぶ既存経路の挙動は維持した。
- フォルダ追加時のRoot判定をフォルダ単位で再利用し、各ファイルで同じRoot候補とパスキーを繰り返し計算する処理を削減。複数Root・入れ子Root・Temp Root、およびRoot外の単体ファイルは従来どおり個別判定する。
- cold load中の逐次表示を維持したまま、到着アイテムごとの全件sort / table refreshを先頭バッチ即時表示＋最大200ms間隔のまとめ反映へ変更。読込み完了・キャンセル・エラー時は未描画分を必ず最終反映し、完了後のcache保存・Library snapshot・Root Cache保存は従来どおり行う。
- 完全未キャッシュの同一テストデータを使った実UI計測（3回中央値）で、900 PDFのUI完了を1.998秒から1.424秒（28.7%短縮）、PDF/DOCX/XLSX/PPTX混在360件を2.709秒から2.148秒（20.7%短縮）。900 PDFではディレクトリ走査488→61、source stat 3615→1811、全件sort / table refresh 21→6を確認し、全メタデータ結果が変更前と一致することを検証した。

v3.5.68 - 2026-09-27
- PDF結合リストの［引用元］列を、［出力ページ数］と同じ「ユーザーが操作する列」として薄い青色で識別できるよう変更。Treeviewの#0列だけを直接着色できない制約があるため、引用元セル幅いっぱいのネイティブサイズ画像へ薄青背景とラジオ表示を描き、No./File name/ページ数と同じTreeviewに残したまま列色を表現する方式にした。
- 引用元列を別Treeviewへ戻さないため、v3.5.67で修正した列境界・縦スクロール同期は維持。選択行では引用元セルも通常の選択色へ切り替え、未選択ラジオは白、引用元ラジオはオレンジで表示する。

v3.5.67 - 2026-09-27
- PDF結合リストの［引用元］列を独立Treeviewから廃止し、No. / File name / ページ数と同じメインTreeviewのネイティブ #0 列へ統合。引用元だけ別Widgetだったため列境界がずれ、行高/DPI差によって縦スクロール時に行位置が徐々にずれる問題を構造的に解消した。右側スクロールバー操作時も main / 出力ページ数 / 予定ページ数 / Path の4 Treeviewが同じyviewで同期する。
- ［引用元］表示はTreeview #0列の小型ラジオ表示へ変更。未選択は灰色リング、選択中はオレンジリング＋中央点とし、クリックによる1リスト1件の引用元変更・保存・並べ替え追従・削除時の先頭移行は維持した。
- PMT直下に散在していたアイコン資産を `resources/icons/` へ集約。`PDFMetaTag_icon.ico` / `PDFMetaTag_blue_icon.ico` / 結合リスト / Fieldmap / State D&D用PNGを移動し、アプリ本体・Explorer右クリックメニューの参照先も新フォルダへ変更した。旧配置を読むフォールバックは残し、既存配布環境との互換性を維持する。

v3.5.66 - 2026-09-27
- PDF結合リストの［引用元］表示を □ / ■ からラジオボタン風の ○ / ◉ へ変更。未選択は灰色の○、メタデータ引用元はオレンジの◉で表示し、行選択色がかかっても形状自体で引用元を判別できるようにした。引用元の選択・保存・並べ替え追従・削除時の先頭移行ロジックは従来どおり。
- 分割Treeview構成で［引用元］列だけ見かけの幅がわずかに広く見えていたため、専用Treeviewの列幅を58pxから56pxへ調整し、隣接するNo.列との境界が自然に揃うようにした。

v3.5.65 - 2026-09-27
- PDF結合リストの列構成を整理。左端に［引用元］を追加し、その右を No. / File name / ページ数 / 出力ページ数 / 予定ページ数 / Path とした。［ページ数］は元PDFの実ページ数、［出力ページ数］はユーザー編集用のページ指定、［予定ページ数］は指定を展開した結果ページ数として役割を分離した。
- 編集可能な［出力ページ数］列を薄い青、計算結果のみの［予定ページ数］列を薄い灰色で表示し、編集可能列と参照列を視覚的に区別。出力ページ数編集時のインラインEntryも薄青背景とした。
- ［引用元］列に □ / ■ の簡易ボタン表示を実装。初期状態は先頭ファイルを引用元とし、クリックした行へ1リスト1件だけ変更可能。選択中はオレンジの■で表示し、並べ替えても同じファイルに紐づく。引用元行を削除した場合は残りの先頭行へ自動移行し、MergeList.jsonへ保持する。将来の結合出力におけるメタデータ引用元として利用できる状態まで準備した。
- 結合リスト内の複数行DnD並べ替えをExplorer型の選択挙動へ修正。複数選択済みの行をドラッグ起点として押してもButtonPress時点では単一選択へ崩さず、ドラッグなら複数行をそのまま移動する。移動せず通常クリックで終わった場合のみButtonRelease時に単一選択へ戻す。
- File name / Pathを含む結合リスト各セルへホバーツールチップを追加し、列幅で見切れた内容をフル表示できるようにした。分割Treeview構成でも縦スクロール・選択・並び順を同期し、見た目と操作は1つの表として扱えるようにした。

v3.5.64 - 2026-09-27
- メインシートState列から結合リストへドラッグする際、マウスカーソル形状をfleurへ変更する方式を廃止。代わりにPMTアイコンを使った小型のドラッグカードをカーソル右下へ追従表示し、右上の青いバッジへドラッグ対象PDF数を表示する。iTunes/Explorerの複数項目ドラッグに近い視覚フィードバックとした。
- ドラッグカードはPMTアイコン36pxを使用し、可能な環境ではToplevel全体を約88%不透明で表示する。半透明指定が利用できない環境では不透明のまま動作し、DnD機能自体には影響しない。
- カードは実カーソル位置から離して表示し、Drop時には先に破棄してから既存の結合リストTree / 結合リストアイコンへのHit Testを行うため、浮遊カード自身がDrop先判定を遮らないようにした。1件時も件数1を表示し、100件以上は99+表記とする。

v3.5.63 - 2026-09-27
- ［結合リスト］の初期実装を追加。VMTのPlaylist管理は持ち込まず、PMTでは常に1個だけの作業用結合リストとして扱う。内容は `MergeList.json` へ自動保持し、複数リスト名・使用ON/OFF・出力プリセット等の管理概念は設けない。
- 結合リストUIを No. / File name / Pages / 出力Pages / Path の5列に限定。［追加...］［削除］［↑］［↓］［Viewer］［クリア］と行D&D並べ替えを実装し、現段階ではPDF出力・メタデータ引用元・出力先等の出力機能は実装しない。
- Explorerから結合リストへのPDF Drag & Dropに対応。Drop位置へ挿入し、同じPDFの重複追加も許可することで、異なるPages指定で同一ファイルを複数回使えるようにした。
- Pages列をプリンター式の手入力として実装。空欄/全ページ、単一ページ、`2-8`、`1,3,5-8`、`23-40,21-1` のような複合・逆順指定、およびページ重複を許可する。指定は1始まりで、構文エラーまたは実ページ数超過はエラー表示し、出力Pagesには展開後ページ数を表示する。
- メインシートState列を結合リストDnDのドラッグ起点として拡張。通常クリックは従来どおりViewerを開き、5px以上のドラッグでDnDへ切り替える。ドラッグ開始行が現在の複数セル選択に含まれる場合は、選択された複数行のPDFを表示順のまままとめて追加する。開いている結合リストへのDropに加え、メインバーの［結合リスト］アイコンへのDropでも末尾追加してリストを開ける。
- 結合リストから既存Viewerを開けるようにし、Viewer自体は共通のままPlay Queueだけを現在の結合リスト順へ差し替える。↑/↓・Queueクリックで結合リスト内を移動し、ESCでViewerを閉じると結合リストへ戻って直前の行選択を復元する。Pages指定はViewer表示範囲には適用せず、確認用途として元PDF全体を開く。

v3.5.62 - 2026-09-27
- メインシート上部の［結合リスト］ボタンを、24x18px の実表示ピクセルを直接設計したドット絵アイコンへ変更。最終案は、白地＋赤枠の左入力ファイルと赤塗りの右入力ファイルが下向きの赤い成果物矢印へ合流する構図とし、縮小前提ではなく実表示サイズそのもので判読しやすい角度・面積へ再整理した。
- メインシート上部の［結合リスト］ボタンのアイコンを、ユーザー作成の24x18px画像へ差し替え。追加の縮小や再描画を行わず、そのまま実装用PNGとして使用する。
- Fieldmapボタンも、従来の細い横線が縮小で潰れて斜め記号のように見えていたため、24x18px の実表示ピクセルを直接設計したドット絵アイコンへ刷新。青いノード3段と右側の短いリスト線で「階層付きフィールド一覧」であることが小サイズでも伝わる構成にした。アクティブ時は専用の強調版アイコンを表示する。
- 実行時は bundled resource `merge_list_icon_24x18.png`、`field_map_icon_24x18.png`、`field_map_icon_active_24x18.png` を優先読込する。リソース欠損時は、結合リストは従来のテキストボタン、Fieldmapは従来の描画コードへ自動フォールバックするため、旧環境でも機能を失わない。

v3.5.61 - 2026-09-27
- ［設定 > メインシート > バー表示］で可変ボタンを非表示にしても親Frameが残り、ボタン1個分の空白を占有していた問題を修正。可変ボタンをバー/ミラー行の直接子へ整理し、OFF時はボタン自体をpack解除して幅を完全に返す。再表示時はFoldermap・保存・検索UI・Mirror Box等の固定Anchorを基準に元の順序へ再配置し、ON/OFFを繰り返してもボタン順が崩れないようにした。
- ［設定 > お気に入り > お気に入り設定］の［更新］ボタンを削除。保存済みお気に入り一覧は設定画面表示時・保存後に加え、［保存済み］コンボを開く直前にも自動再走査するため、手動更新操作なしで外部変更も反映できるよう合理化した。

v3.5.60 - 2026-09-27
- ［設定 > メインシート > バー表示］を追加。［結合リスト］［追加▼］［Fieldmap］［お気に入り設定］［パターン命名］は個別に表示/非表示を切り替えられ、変更を即時反映してConfigへ保存する。既存ボタンは互換性のため初期値ONとする。
- ［Foldermap］［保存］［全ルート再読込］［設定］および検索関連UIは固定表示とし、バー表示ページにも固定項目として明示。可変ボタンを隠しても固定操作系の配置・機能を維持する。
- 将来のPDF結合編集リスト機能の入口としてメインシート上部に［結合リスト］ボタンを追加。現時点はプレースホルダーで、クリック時はステータスへ今後実装予定である旨を表示する。
- メインシートの［お気に入り設定］を非表示にしても操作経路を失わないよう、［設定 > お気に入り > お気に入り設定］ページを新設。お気に入りJSONの保存、任意ファイルからの読込、保存済み一覧からの直接読込を設定ダイアログ内から実行できるようにした。既存の［お気に入り > 読込設定］は反映項目プリセット用として維持する。
- バー表示設定を通常Configとお気に入りJSONの全設定スナップショットに含め、［全般設定］を読込対象にしたお気に入り適用時も表示状態を復元する。

v3.5.59 - 2026-09-27
- メインシート起動時のToolboxコンテキストを常にRootへ初期化。前回終了時の列/Field Map等のToolbox選択状態を引き継がず、ファイル0件でもToolbox表示時はRoot Toolboxから開始する。Toolbox自体の起動時表示/非表示および保存済みレイアウト設定は従来どおり保持する。
- ［単体ファイル起動/追加時はViewerモードで開始］ON時、PMT起動中にExplorerから単体ファイルを開いたSingle-instance IPC経路だけstartup_context=FalseとなりViewer予約が無効化されていた不具合を修正。PMT未起動からのExplorer起動と同様、起動中のExplorer/Open-with追加でも単体対応ファイルなら追加/選択完了後にViewerへ移行する。フォルダ/複数ファイルは従来どおりメインシートのままとする。
- メインシートへの単体ファイルDrag & Dropは既存どおり同設定ON時にViewerへ移行することを回帰確認。

v3.5.58 - 2026-09-27
- 絞込/選択/Toolbox等でCurrent Listを縮小した状態のままファイルを保存すると、保存後処理のmark_library_snapshot()が縮小済みself.itemsをLibrary全体として上書きし、Resetで絞込み前へ戻れなくなる不具合を修正。同じ欠損Libraryから更新されるRoot Cacheも不完全になり、キャッシュ復元失敗→実フォルダ再走査が必要になる問題を同時に解消。
- 通常保存後はLibrary全体を再生成せず、保存完了ファイルだけを旧Path/新Pathで既存Libraryへ同期する方式へ合理化。起動復元後などCurrent/Libraryが別PdfItemインスタンスでも保存値を正しく反映し、Rename/Moveは該当行を置換、Trashは該当行だけを削除する。未操作のLibrary行とCurrent List縮小状態は保持する。
- 選択ファイル再読込ではapply_item()が既にCurrent/Library双方の該当Pathを置換しているため、完了時の重複mark_library_snapshot()を削除。絞込み中の再読込でもLibrary/Reset状態を破壊しないよう整理した。

v3.5.57 - 2026-09-27
- Root Toolboxに残っていたCurrent List Treeviewの表示領域と［クリア］ボタンをUIから削除。Current Rootの確認・操作はFolder Mapへ一本化し、既存内部ヘルパーとの互換性のためTreeview自体は非表示のバックエンドWidgetとしてのみ保持する。
- Field Mapの行クリック（Filter）、中クリック（位置へ移動）、［階層1～4］切替で、Toolboxが表示中の場合にRootではなくField Map Toolboxへ切り替えるよう修正。Toolbox非表示時は従来どおり強制表示しない。Folder Map側はRoot Toolboxへ切り替える既存仕様を維持する。

v3.5.56 - 2026-09-27
- ［設定 > 命名・解析 > パターン命名］のインライン編集で、既存値を保持するために使っていたローカルStringVarが編集開始直後に破棄され、Tk側の変数までunsetされてEntryが空になる不具合を修正。ダブルクリック・［パターン編集］・Enter/F2のどの開始経路でも、既存パターンを残したまま末尾カーソルで編集を開始する。
- Folder Map / Field Mapのナビゲーション操作を整理。Folder MapのFilter行クリック・中クリック・［Root/一覧］切替、Field MapのFilter行クリック・中クリック・［階層1～4］切替時は、Toolboxが表示中なら内容をRootへ切り替える。Toolboxが非表示の場合は強制表示しない。Map上部の［Tool］［非表示］ボタンは両Mapから削除した。
- Folder Map / Field MapからFilterを適用した場合、Filter後に表示されるメインシート最上段ファイルを自動選択する。現在の列位置は可能な限り維持し、0件なら選択を空にする。
- Root Toolboxのお気に入りヘッダーを［お気に入り / 編集 / 削除 / ↑ / ↓］の1行へ整理。上段に［Foldermap現在値をお気に入りに追加］を追加し、Folder Map Filter中だけ表示する。Filter未使用時はボタンのみ隠し、同じ高さの余白を維持する。
- Root Toolboxの［ワークシート読込中ルート数］表示、［ブラウズ］［お気に入りへ］ボタンを削除。お気に入りBox直下に［ワークシートへ］［起動読込みへ］を配置し、選択したお気に入りRootをそれぞれCurrent Root / Startup Rootへ登録できるよう整理した。Current Root側は既存右クリックメニューを維持する。
- Root Toolboxの［ワークシートへ］またはRoot Toolbox右クリックメニューからCurrent Rootを登録した場合は、Folder Mapを表示して［Root］折り畳み状態へ切り替える。Root登録処理そのものは従来のCache-first/実走査経路を変更しない。

v3.5.55 - 2026-09-27
- ［設定 > 命名・解析 > パターン命名］のインライン編集、および個別の［パターン命名 編集］ダイアログで、編集開始時に既存パターン全文を選択していた挙動を廃止。既存文字列をそのまま残し、カーソルを末尾へ置いて追記・部分編集できる通常の編集状態で開始する。
- ［引数・関数一覧］の［引数］タブ、およびパターン命名編集内の利用可能引数一覧で、メインシート列を直接表す引数の説明を［列名：〇〇］形式へ変更。〇〇にはTitle/X1/Author Library列等を含む現在のユーザー設定済み列表示名を動的に引用し、列名変更後も一覧へ即時反映する。派生値や日時・Parse等の非列引数は従来どおり用途説明を表示する。

v3.5.54 - 2026-09-27
- VMT v1.9.37で先行したField Mapカスタムグループ高速化を水平展開。カスタム範囲ルールの正規化・妥当性検証・開始境界の型変換を行ごと/操作ごとに繰り返さず、ルールシグネチャ単位のコンパイル済みランタイムキャッシュとして再利用する。Config/Favorite/JSONの保存形式は変更しない。
- 各PdfItemにカスタムグループ所属の小さなランタイムキャッシュを追加。対象列の生値とルールシグネチャが同一なら前回の所属グループを再利用し、生値が変われば明示的なキャッシュ無効化なしでも自動再判定する。
- Field Map検索条件を検索開始時に一度だけ準備し、全行に対する条件照合でカスタムルールの再解決・再解析を繰り返さないよう合理化。Field Map位置へ移動する際の一致行探索も同じPrepared条件を再利用する。
- Field Map構築時に各行の階層状態/ソート値を一度だけ物質化し、同じ値をソート・グループ生成で再取得しない。カスタムルールのdeepcopyも行ごとではなく階層ごとへ削減する。
- 階層定義と各ItemのField Map所属状態が前回構築時から変化していなければ、完成済みField Map row modelをそのまま再利用する。通常Filter→解除、Field Map検索、Field Map位置移動などで不要な再ソート・ツリー再構築を回避しつつ、対象値が別グループへ変化した場合は自動再構築する。

v3.5.53 - 2026-09-26
- メインシートの大規模な行/列範囲選択を合理化。選択Row IDの重複排除を従来のlist線形探索（O(n^2)）からset併用（O(n)）へ変更し、数千～数万行の列全体選択で発生していた待ち時間を大幅に削減。選択追加も同じくset併用へ変更。
- 範囲選択の開始/終了行位置取得に既存のVisible Row Index Cacheを利用し、毎回のlist.index()走査を回避。Visible Row削除時もlist/set/index-mapを必ず同一ヘルパー経由で更新し、キャッシュ整合性を維持するよう整理。
- Canvas列ヘッダーの単一クリックで発生していた選択更新→Heading更新→最終描画の重複フル再描画を1回へ統合。大量行の列全体選択時もToolbox/Mirror/Status更新後に完成状態を一度だけ描画する。
- ヘッダーダブルクリックSortおよびStateヘッダーSortで、sort_by()内部のrefresh_table()後に重ねて行っていたCanvas再refreshを削除。大量選択中の並び替えレスポンスを改善。
- Sort等で選択状態を復元する際、選択行ごとに全itemsを再走査していた処理を、item identity→current iidの辞書を1回だけ構築する方式へ変更。大規模選択の復元をO(selected×rows)からO(rows+selected)へ合理化。

v3.5.52 - 2026-09-26
- Field Mapの［カスタムグループ］を［カスタムグループ1］～［カスタムグループ4］の4定義へ拡張。各定義は独立した対象列・昇降順・範囲ルール・範囲外名称を保持し、Field Mapの1～4階層から任意に選択して通常列と混在できる。従来v3.5.51の単一カスタムグループ設定はカスタムグループ1以降へ自動移行する。
- カスタムグループ設定ダイアログ先頭に［カスタムグループ名］を追加。初期名はカスタムグループ1～4で、確定した名称はField Map Toolboxのプルダウン、お気に入り表示、検索/ステータス表示にも反映する。未設定・不正ルールの［設定］ボタンは従来どおりオレンジ、正規ルールをOK確定すると通常色へ戻す。
- カスタムグループの対象列へ Recent#（recent_no）/ Modified（modified）/ Duration（duration）/ ページ数（page_count）を追加。Recent#/Duration/ページ数は数値境界、Modifiedは日時（yy/mm/dd、yyyy/mm/dd、時刻付き等）または数値タイムスタンプ境界として昇順/降順検証・範囲判定する。
- 4つのカスタムグループ定義をConfig/お気に入り設定に保存・復元し、複数カスタムグループを同一Field Map階層内で併用した場合も検索・件数集計・中クリック移動・ソート条件をグループ別に識別する。

v3.5.51 - 2026-09-26
- Field Map Toolboxの各階層プルダウンで［未使用］の次に［カスタムグループ］を追加。カスタムグループ選択時は従来の昇順/降順欄を［設定］ボタンへ切り替え、ルール未設定・不正時はオレンジ、正規ルールを［OK］で確定すると通常色へ戻す。未設定のカスタムグループはField Map上では未使用相当として扱う。
- ［設定］ダイアログで対象列、昇順/降順、任意数の［グループ名 / 開始値］を編集可能にした。先頭グループだけ開始値空欄を許可し、2行目以降は必須。昇順/降順に反する境界、重複グループ名、空欄名、数値系列への非数値境界はOK時に検証して保存せず警告する。行追加/削除/上下移動に対応。
- ダイアログ最下段に削除・並べ替え不可の［範囲外］固定行を設け、名称だけ変更可能とした。空欄値や先頭境界より外側の値はここへ集約し、Field Map上では常に通常グループの後ろに配置する。
- カスタムグループを通常のField Map階層として検索・件数集計・中クリック移動・複合階層・お気に入り・設定保存/復元へ統合。対象列は既存Field Map列を再利用でき、カスタム設定はその階層で別列へ切り替えても保持して、再び［カスタムグループ］へ戻した際に復元する。

v3.5.50 - 2026-09-26
- Subject Libraryを追加。1ファイル1 Subjectを前提に、Subject文字列全体を1 EntityとしてCanonical / Aliases / Subject Rating(0-5) / Subject Difficulty(0-3) / X1-X6をLibrary/SubjectLibrary.jsonで管理する。Subjectを文節・区切り文字で分割する処理は追加せず、既存のSubject頻度解析も従来どおりSubject文字列全体を1単位として扱う。
- Subject Libraryの仮想列 subjectCanonical / subjectAliases / subjectRating / subjectDifficulty / subjectX1-X6をメインシート・Viewer Column info・Toolbox・検索/ソート・Field Map・Mirror Box・コピー/貼り付け・Undo/Redoへ統合。初期状態ではメインシート/Viewerとも非表示とし、元Subject未設定行ではLibrary列を編集不可にする。Canonical/Alias解決、Alias競合時のEntity統合、JSON読込/保存、3世代バックアップなどはAuthor Libraryと同じ操作体系とした。
- ［設定 > 管理 > Subject Library］とSubject Library管理画面を追加。Canonical/Aliases、Subject Rating/Difficulty、X1-X6、使用Files数を一覧・編集でき、Library JSONの保存/読込/バックアップ復元に対応する。
- パターン命名・Parse・関連外部プログラム等で使う引数へ %Subject.Canonical% / %Subject.Aliases% / %Subject.Rating% / %Subject.Difficulty% / %Subject.X1%～%Subject.X6% を追加し、［引数・関数一覧］も更新。旧来の内部名形式 %subjectCanonical% 等も互換名として利用可能。

v3.5.49 - 2026-09-26
- 下部デバッグ/ステータス表示が設定でONの場合でも、ViewerのF11全画面中は自動的に非表示にする。設定値自体は変更せず、全画面解除時は元のON/OFF設定に従って自動復元する。

v3.5.48 - 2026-09-26
- マルチモニター環境でPMTを2nd/3rdスクリーン上に置いたままF11全画面へ入っても、Viewerがメインスクリーンへ移動しないよう修正。WindowsではTkの-primary monitor寄りの-fullscreenに依存せず、現在PMTを含むモニターをWin32 Monitor APIで特定して、そのモニター矩形へborderless表示する。F11解除時は直前の通常/最大化状態とgeometryを復元する。
- 全画面中の一時geometryを通常ウインドウ位置としてConfigへ保存しないよう、手動borderless fullscreen状態も最大化/全画面判定へ統合。
- 設定、Author Library、ショートカット、パターン命名、引数一覧などPMT独自Toplevelを親ウインドウ中央かつ同一モニター内へ明示配置。標準のmessagebox / filedialog / simpledialog / colorchooserにも全呼出しでparentを明示し、PMTがサブスクリーン上にある場合もダイアログがメインスクリーンへ飛びにくいよう統一。設定ダイアログのサイズ計算もプライマリ画面サイズではなく現在のPMTモニター作業領域を基準に変更。

v3.5.47 - 2026-09-26
- メインシートのセル範囲ドラッグ中オートスクロールを調整。上下端付近の従来の細かな速度は維持しつつ、マウスを画面外へ大きく上下に引いた場合は従来の最大4行/周期で頭打ちにせず、距離に応じて8行/周期、16行/周期まで段階的に加速する。左右方向の速度特性は変更なし。

v3.5.46 - 2026-09-26
- Folder Map上部の折り畳みボタン表記を［Rootのみ］から［Root］へ短縮。ボタン幅や［Root］←→［一覧］の切替挙動は変更せず、狭いMap幅でもラベルが見切れにくい表記にした。

v3.5.45 - 2026-09-26
- Folder Map / Field Map上部の［更新］ボタンを削除し、再走査・再構築を伴わない表示折り畳み操作へ置換。Folder Mapは［Rootのみ］でRoot行だけに折り畳み、折り畳み中は同位置のボタンが［一覧］へ切り替わって元の全階層表示へ戻る。内部の全行モデルは保持したまま再描画だけ行う。
- Field Mapは上部ボタンを［階層4］→［階層3］→［階層2］→［階層1］→［階層4］の循環に変更。表示深度だけを切り替え、Field Mapデータの再走査・再構築は行わない。
- ［設定 > メインシート > ソート・検索 > デフォルトソート］の［デフォルトソートで起動］を、デフォルトソート列/順序と2次ソート列/順序の下へ移動。機能・既定ON・保存形式は変更なし。

v3.5.44 - 2026-09-26
- ［設定 > メインシート > ソート・検索］の［デフォルトソート］枠内に［デフォルトソートで起動］を追加（初期値ON）。ON時は前回終了時に記録された列ヘッダ等の明示ソート履歴に関係なく、起動時だけ設定済みのデフォルトソートから開始する。OFF時は従来どおり前回のソート状態を復元する。
- 本設定はConfigおよびお気に入り設定へ保存・復元する。手動の［設定を読込］では起動扱いにせず、起動時だけソート履歴を無視する。

v3.5.43 - 2026-09-26
- ViewerのAuto再生速度スライダーの非線形配分を微調整。操作頻度の高い1～5秒へバー移動量のおよそ2/3を割り当て、5～30秒を残り1/3へ割り当てる。設定ダイアログの1～30秒任意値および保存形式は変更せず、スライダー操作時の秒数マッピングのみ更新。

v3.5.42 - 2026-09-26
- ViewerでAuto再生中、右下ホバーの［Tag］［Toolbox］［Auto］3ボタン群の左側に、同じ高さの縦型再生間隔スライダーを追加。Auto停止中は表示せず、Auto開始/停止時にホバーUIをその場で再構成する。
- スライダー範囲は1～30秒。操作頻度の高い1～10秒へバー移動量のおよそ2/3を割り当て、10～30秒を残り1/3へ割り当てる非線形マッピングとした。つまみ横に現在値を秒表示し、ドラッグ中もAutoタイマーへ即時反映、確定時にConfigへ保存する。
- ［Viewer > 表示・ページ送り］の自動ページ送り［間隔］をプリセット選択＋任意値から、1～30秒の任意値1項目へ整理。Viewerスライダーと同じ設定値を共有し、旧Config/Favoriteの5/10/15/30秒プリセットは実効秒数を維持して自動移行する。

v3.5.41 - 2026-09-26
- ファイル単位の［再読込］をバックグラウンドワーカー化。従来どおりMetadata/Root Cacheを使わず選択ファイルを実ファイルから強制再読込するが、重いPDF/Office読込をTkメインスレッドから外し、数千件選択でもPMT本体が「応答なし」にならないよう変更。
- ［ファイル再読込］進捗ダイアログを追加。処理中ファイル名と「処理済み件数 / 全件数」をProgressbarと数値で表示し、［中止］ボタンを装備。中止は現在処理中の1ファイル完了後に停止し、完了済みファイルだけ反映、未処理ファイルは変更しない。
- ワーカーはPdfItem生成だけを担当し、items/library_items/Metadata Cache/Root Cache/選択復元/画面更新はTkメインスレッドで反映。完了済みファイルのMetadata Cacheと該当Root Cacheも同期する。Viewerからのファイル再読込も同じ進捗・中止経路を使用する。

v3.5.40 - 2026-09-26
- ［キャッシュから復元］を独立ボタンから廃止し、そのRoot Cache即時復元＋遅延実フォルダ照合を標準の［全ルート再読込］へ昇格。Root Cacheが全Current Rootで有効なら即時にワークシートを復元し、その後mtime/size/version等を使う既存Metadata Cache判定で実フォルダとの差分だけを更新する。Root Cache欠落/破損時は従来の実フォルダ走査へ自動フォールバックする。
- Folder Map / Root Toolbox / メインシートRoot列の［選択ルートを再読込］も、選択RootだけをRoot Cacheから即時復元し、そのRootだけ遅延実走査する方式へ統一。Cache欠落時だけ選択Rootの従来走査へフォールバックする。ファイル単位の［再読込］は従来どおり実ファイルからの強制読込を維持する。
- ［全般 > 起動］の［起動時に全ルート再読込］と［ファイル・フォルダ追加時にキャッシュがあればキャッシュで復元］を削除。Startup Root、通常追加、お気に入り/Startup Root→Current、Browse、This/Siblings/Children再構成は常にRoot Cache優先とし、Cacheがなければ通常走査する。Startup RootはCurrent追従/独立を問わず同じCache-first＋遅延照合経路を使用する。旧Config/FavoriteのOFF値は互換用に無視する。
- ［全般 > データ読込］のページ数・しおり・サムネイルON/OFF設定を削除し、3項目を常時ONへ固定。旧Config/FavoriteにOFF値が残っていてもONへ正規化し、サムネイルは従来どおりメインシート表示時に必要に応じて生成/読込する。
- Root再読込一本化、固定ON設定、設定UI削除の回帰テストを追加・更新し、49 tests / 1574 subtests成功。Xvfb上で設定ダイアログとツールバーの実Widgetも確認。

v3.5.39 - 2026-09-25
- Root Cache-firstの意味を「Root Cacheだけで処理を完了」から「Root Cacheでワークシートを即時復元し、その後バックグラウンドで実フォルダを必ず照合」へ変更。通常追加、お気に入り/Startup Root→Current、Browse、This/Siblings/Children再構成、および［キャッシュから復元］で共通の遅延整合処理を使用する。
- 遅延整合はRoot Cache導入前のStartup Fast Loadと同じ既存判定を利用。実フォルダを列挙し、既存ファイルはMetadata Cacheのmtime/size/version等が現在も有効かtry_fast_restore_metadata_cache()で確認。有効ならRoot Cache表示を維持し、不一致/Cache missだけread_metadata_cached()へ送り、必要なファイルのみ実読込する。
- Root Cacheにない新規ファイルは通常読込で追加し、実フォルダから消えたファイルはワークシートから除外。Root自体が実際に消失している場合は遅延照合後にCurrent Rootから除外する。フォルダ列挙中の例外/アクセス失敗ではCache行を一括削除せず保持する。
- ［全ルート再読込］、選択Root再読込、起動時全ルート再読込は従来どおりRoot Cache即時復元を使用せず、最初から実フォルダ走査＋Metadata Cache有効性判定で処理する。
- Root Cache遅延整合の回帰テスト3件を追加し、変更なし/更新/新規/削除、Root消失、明示再読込との経路分離を固定。

v3.5.38 - 2026-09-25
- v3.5.36のCache-first追加処理が［全ルート再読込］やFolder Map/Root Toolbox/メインシートの［選択ルートを再読込］にも適用され、実フォルダ走査をせずRoot Cache復元で終わる問題を修正。
- Root Cache-firstを「ファイル・フォルダ追加／Root登録系」のポリシーとして明確に分離。通常追加、お気に入り/Startup Root→Current、Browse追加、This/Siblings/Children再構成では従来どおり設定ON時にCacheを優先する。
- ［全ルート再読込］、Folder Map/Root Toolbox/メインシートの［選択ルートを再読込］、［起動時に全ルート再読込］はRoot Cache-firstを明示的に無効化し、必ず実ファイル/フォルダを列挙して現在状態を取り込む。ファイル単位の既存メタデータキャッシュ利用は維持する。

v3.5.37 - 2026-09-25
- Root Cacheから復元した一部ファイルが操作していないのにDirtyになる問題を修正。PMTのタグKeywordsは末尾タグを「#tag, 」(カンマ+スペース)で保持するが、Root Cache復元時のsaved_valuesだけclean_value()で末尾スペースが除去され「#tag,」となり、現在値との差分として誤判定されていた。
- Root Cacheは「最後に正常保存されたRoot状態」という意味に合わせ、filesystem-free復元では全項目をPMT正規形へ再構築した後、その復元状態自体をmark_saved()して保存基準値にする方式へ変更。Root Cache内の旧saved_values/dirty状態を再注入しないため、今後の正規化差分でも復元だけでDirtyにならない。
- Keywordsの最終タグ区切りをRoot Cache復元時に正規化し「#tag, 」を維持。保存→Root Cache更新→再復元を繰り返してもDirtyが再発しない回帰テスト2件を追加。

v3.5.36 - 2026-09-25
- ［全般 > 起動］に［ファイル・フォルダ追加時にキャッシュがあればキャッシュで復元］を追加し、既定値ON。ON時は追加対象と完全一致するRoot Cacheがあればファイルシステム走査より先にRoot Cacheを復元し、Cacheがない/無効なRootだけ従来どおり走査・読込する。
- 通常のフォルダ追加、単一ファイル追加時の親Root読込、お気に入りRoot→Current、Startup Root→Current、Root Toolbox Browse、This/Siblings/ChildrenのRoot再構成を共通のCache-first Root登録経路へ統一。Root Cache復元だけで成立する場合は元フォルダへstat/metadataアクセスせず即時にCurrentへ展開する。
- Root Cacheが存在しない場合の操作感は変更せず通常add_paths()へフォールバック。正規0件Root Cacheも有効なCacheとして扱う。設定値はConfigおよびお気に入り［全般設定］の保存/読込対象。 Cache-first追加の回帰テスト8件を追加し、全35テスト成功。

v3.5.35 - 2026-09-25
- VMT v1.9.28のRoot Cache復元機能を水平展開。各Current Rootについて最新1世代の自己完結したRootスナップショットを保持し、正常なRoot読込/再読込完了時に更新する。正規0件Rootもitems=[]の有効なRoot Cacheとして保存する。
- メインツールバーの［全ルート再読込］右側に［キャッシュから復元］を追加。全Current Rootを対象に、PDF/Officeファイルの存在確認・stat・メタデータ読込を行わずRoot Cacheからワークシートを直接再構成する。Search/Filter等の一時状態は解除し、[Temp]行は保持する。
- Root Cacheが1件でも欠落・破損している場合は自動的に［全ルート再読込］へフォールバックし、正常読込完了後にRoot Cacheを自己修復する。未保存Dirty行がある場合は復元前に確認し、キャンセル時は現状を維持する。
- 通常保存・rename・move・trash成功後は影響したRootだけ最新Root Cacheへ追従。軽い［キャッシュ削除］ではRoot Cacheを残し、［キャッシュ初期化］では起動インデックス等とともにRoot Cacheも削除する。
- Root Cache用のfilesystem-freeスナップショット経路を追加し、Modified値が欠けていても復元/スナップショット保存のために元ファイルへstatしない。Root Cache専用回帰テスト6件を追加し、全27テスト成功。

v3.5.34 - 2026-09-24
- VMT v1.9.27のFolder Map Root件数表示を水平展開。Root行のみ「Current List件数 / Root本来の総数」で表示し、例として通常128/128、Keep Hits等でCurrent Listを23件へ確定縮小した後は23/128と表示する。正規0件Rootは0/0。
- Search / Filter / Exclude等の一時的な表示絞り込みではRoot件数を変化させない。検索で23件だけ表示中でもRoot行は128/128のままとし、Current Listそのものが変更された場合だけ分子を更新する。
- 分母はlibrary_itemsに保持された完全Root母集団をCurrent Root単位で集計し、Current Root外のLibrary項目は混ぜない。子フォルダ行の件数表示は従来仕様を維持。
- Folder Map Root件数のヘッドレス回帰テスト5件を追加。

v3.5.33 - 2026-09-24
- Root登録の意味をVMT v1.9.25と同じ原則へ統一し、パスだけをCurrent Rootへ置く「未読込Root」の生成経路を廃止。Root登録はadd_paths()を通し、キャッシュ復元または実ファイル走査を必ず伴う。正規に走査した結果0件のRootは従来どおり有効。
- Root Toolboxの［ブラウズ］、お気に入り/Startup RootからCurrentへのコピーは、self.rootsへの直接追加をやめて共通Root読込経路へ統合。既に正式Current Rootとして存在するフォルダは再追加せず、その旨を表示する。
- ［ルート再構成］［同階層］［サブフォルダ］は、置換先フォルダをRootのガワとして直接登録せず、旧Rootを外した後に置換先をadd_paths()で読込。既存行のRoot再計算に加え、未読込ファイルもキャッシュ/実走査から補完する。
- 単一ファイル追加時の「格納フォルダをRoot登録」と「その格納フォルダの走査・追加」を実質一本化。設定UIは［ファイルを加えた時その格納フォルダをRootとして読込］へ変更し、旧ConfigでRoot登録ON・走査OFFでも新版ではRootだけを作らず必ず読込まで行う。旧走査設定キーは互換用に保持するが動作判定には使用しない。
- 単一PDFのViewer直起動後に親Rootだけ先に保存する経路も廃止。初回PDF表示を優先した後、親フォルダをadd_paths()で遅延読込し、必要なPathフィルターも同じ処理へ引き渡す。
- Root登録専用のヘッドレス回帰テスト6件を追加。既存合理化テスト10件と合わせて16件すべて成功。

v3.5.32 - 2026-09-23
- 全体の起動・読込/保存・検索・Map・Toolbox・Viewer経路を調査し、既存機能/UI/設定/保存形式/操作感を維持する範囲で、実測上の重複処理を合理化。
- お気に入り一覧からの検索は、検索値・条件の準備を検索1回につき1回へ集約。Keywords/Contentsの行内解析をお気に入り値ごとに繰り返さず1行1回とし、完全一致では不要な「含む」判定を省略。既存の大小文字・空白・タグ区切り・否定検索の比較規則と結果順を維持。
- 数値/更新日時の「以上・以下」検索は、同じ検索文字列の数値/日時変換を各行で繰り返さず、1回の検索内で日付対応/通常数値の各種別につき1回だけ実行。不正な入力の変換失敗も同じ検索内で共有し、入力変更時は再計算する。
- Folder Map構築は登録Rootの比較キーを一度だけ用意し、同じRoot/親フォルダの相対階層を1回の更新内で共有。Root・サブフォルダの件数、順序、0件Root、Temp、同名Root、表示上の大文字小文字を維持し、移動/Root変更後は次の更新で再計算。
- メインシートを先頭へスクロールする処理で、同じ位置への全体再描画を2回行っていた重複を除去。スクロール上限補正・選択・水平位置・描画タイミングは従来経路を維持。
- Linux/Tkの3,000件・各5回中央値で、Keywordsお気に入り50件の「含む」抽出は約551ms→28ms、Contentsお気に入り50件の一致抽出は約370ms→24ms、Folder Map更新は約128ms→25ms。通常の文字列検索は同等。いずれも変更前と抽出結果・順序を照合。
- 通常/単一PDF直起動、編集/Undo/Redo/貼り付け、Map、サムネイル、Viewerページ送り/見開き/全画面/復帰、PDF保存/再読込、設定往復を実画面で比較。回帰テスト10件を同梱。Windows実機/EXEの速度・表示スケール検証は未実施。詳細はPERFORMANCE_v3.5.32.md参照。

v3.5.31 - 2026-09-23
- ViewerのF11全画面時、通常レイアウト用にmain_frameへ設定していた左右8px・下6pxの外周余白を一時的に0へ変更し、Viewer背景を画面の左・右・下端まで完全に到達させるよう修正。
- 全画面解除時は従来の左右8px・下6pxへ正確に復元する。Viewer背景色・PDF描画・サイドペイン構成には触れず、コンテナ余白だけを切り替えるため再レンダリング負荷は増やさない。

v3.5.30 - 2026-09-23
- ［Viewerモード > 表示・ページ送り］の［ビューア設定］先頭へ［背景色　○グレー　○ブラック　○ホワイト］の3択を1行追加。初期値は従来と同じグレー。
- 背景色はPDFページ画像そのものではなくViewer Canvasのページ外周だけに適用し、選択時に即時反映する。PDFiumの再レンダリングは行わないため、ページ表示速度・ページ切替処理には影響しない。
- 背景色設定をConfigおよびお気に入りのViewer設定へ保存/復元。Viewer左上Queue表示中に色を切り替えた場合も、Queue外周の露出部分を同じ背景色へ同期する。

v3.5.29 - 2026-09-23
- メインシートで右方向へ大きくドラッグして水平オートスクロールした後、ボタンを押したまま左へ戻す途中に固定列表示が一時的に消える/崩れる問題を修正。
- 原因は軽量な範囲選択Overlayが、水平スクロールでFixed Boundary左側へ潜ったスクロール列の生座標をそのまま再描画し、固定列の上から覆っていたこと。通常の全体再描画では固定列が後から上描きされるため発生せず、ドラッグ中の高速Overlay経路だけで起きていた。
- 高速列OverlayにもFixed Boundaryクリッピングを追加。スクロール列は境界右側、固定列は境界左側だけに描画し、右→左へ戻すドラッグ中も固定列を常時維持する。選択範囲・オートスクロール量・上下/右方向の挙動自体は変更なし。

v3.5.28 - 2026-09-23
- メインシートの範囲ドラッグで左方向だけオートスクロールしにくかった問題を修正。v3.5.27ではFixed Boundaryより右側の28pxだけを左スクロール判定領域としていたため、ポインタが固定列側へ少し入った時点で左スクロールが停止していた。
- スクロール可能列から開始した範囲ドラッグでは、Fixed Boundaryを越えて固定列側へポインタが入っても、水平位置が左端へ戻るまで左方向オートスクロールを継続するよう変更。Fixed Boundaryをスクロール領域の視覚的な左端として扱いつつ、左右のドラッグ感を揃えた。
- 固定列内から開始したドラッグでは従来どおり固定列選択を優先し、Fixed Boundary左側にいるだけで水平スクロールを発生させない。上下・右方向のオートスクロール挙動は変更なし。

v3.5.27 - 2026-09-23
- メインシートのセル範囲ドラッグ選択中、表示領域の上下端・右端・スクロール可能領域の左端へポインタを寄せると自動スクロールするよう追加。スクロール中も選択矩形を連続して拡張し、上下左右を組み合わせた斜め方向にも追従する。
- TkのMotionイベントが端で止まっても選択を継続できるよう、ドラッグ中だけ軽量なafterタイマーで現在ポインタ位置を監視。マウスボタン解放、新規クリック、列幅リサイズ開始、端領域から離脱時にはタイマーを停止する。
- 端近傍は低速、ウィンドウ外へ深くドラッグするほど段階的に加速。縦方向は行単位、横方向はCanvasのピクセル単位で移動し、シート端では既存スクロール上限で安全に停止する。
- Fixed Boundary左側の固定列は従来どおり固定し、左方向オートスクロール判定はウィンドウ左端ではなくスクロール可能領域の左端を基準とする。固定列そのものへドラッグした場合は横スクロールを起こさず、固定列を通常どおり選択できる。
- フィルター/検索中は既存のvisible_iidsだけを辿るため、オートスクロールで非表示行を選択対象へ混入させない。通常のドラッグ中は既存の軽量Overlay更新を維持し、実際にスクロールしたフレームだけ全体再描画して表示と選択を同期する。

v3.5.26 - 2026-09-23
- メインシートの矩形コピー/貼り付けをExcel系の操作感へ変更。単一セルを貼り付け先にした場合は、そのセルを左上アンカーとしてコピー元矩形全体を展開する。複数セル選択でもコピー元矩形を基本サイズとして優先し、選択範囲がコピー元より大きい/小さいだけではトリミングや末尾値補完を行わない。
- 貼り付け先の選択範囲がコピー元矩形の縦横とも整数倍の場合は、コピー内容をタイル状に繰り返して選択範囲を埋める。1セルコピー→複数セル選択も同じ規則で全選択セルへFillする。一方、2x3コピー→2x4選択など整数倍でない場合は、選択左上から2x3のみを貼り付ける。
- コピー元サイズが選択範囲を超える場合もコピー元を優先して展開し、フィルター/検索等で非表示の行は絶対に対象にせず、現在表示されている行だけを順に使用する。非表示列も貼り付け座標から除外し、表示列順を基準にする。
- 貼り付け矩形がシート右端/下端を越える場合は存在するセルまでで打ち切る。編集不可列をまたぐ場合は列位置を詰めず、そのセルだけをスキップする。Excel等の外部TSV貼り付けも同一ロジックで処理し、行ごとの列数不足は空欄として扱う。
- Ctrl+X/切り取りの新規実装は行わず、既存のCtrl+C/Ctrl+V/Delete系に限定して変更。Author Library仮想列の競合事前検証、Undo、Dirty更新、選択/スクロール復元は既存経路を維持。

v3.5.25 - 2026-09-23
- 共通の簡易関数へ STARS(値[, 最大値]) を追加。値は小数第1位で一般的な四捨五入（3.4→3、3.5→4）して星数へ変換し、パターン命名 / Parse解析元 / 関連プログラム引数で共通利用できる。
- 第2引数を省略した STARS(値) は最大値なしの可変長表示とし、値の数だけ★を出力。ただし異常な長大出力を避ける安全上限として50個までに制限する。
- 第2引数付き STARS(値, 最大値) は固定長の★/☆表示とし、最大値まで空星☆で補完する。表示総数は安全上限50。空欄値は空文字、負値は0へ丸める。［引数・関数一覧］にも両書式を追加。

v3.5.24 - 2026-09-23
- ［メインシート > ソート・検索］の［降順or昇順→解除］で使う「最後に明示した方向」を共通1個ではなく列ごとに独立記憶するよう変更。各列の右クリック［昇順並替／降順並替］で指定した方向をその列専用の履歴として保持し、未指定列は従来どおり降順を既定とする。
- 列別の明示ソート方向履歴をConfigへ保存/復元し、PMT再起動後も維持する。v3.5.23以前の共通方向キーは新方式では使用せず、列別履歴のない旧設定は各列とも降順から開始する。
- お気に入りJSONの［列設定］にも列別の明示ソート方向履歴を保存/選択読込するよう追加。お気に入り切替時に、ダブルクリックアクションやソートサイクル設定とともに列ごとの方向履歴も復元する。

v3.5.23 - 2026-09-23
- ［メインシート > 非入力列］のアクションへ［OS既定アプリで開く］を追加。元ファイル名 / ページ列の既定ダブルクリック動作を、v3.5.21以前と同じOS既定アプリ起動へ戻した。サムネイルの既定Viewer起動など他列の既定値は維持。
- ［メインシート > ソート・検索］へ［列ダブルクリック時のソート］設定を追加。［ソート変更時にスクロール先頭に移動］は既定ON。順番は［昇順→降順→解除］（既定）/［昇順→解除］/［降順→解除］/［降順or昇順→解除］から選択可能。解除時は設定済みデフォルトソートへ戻る。
- ［降順or昇順→解除］は列ヘッダ右クリックの［昇順並替／降順並替］で最後に明示した方向を共通記憶して使用し、未指定時は降順。右クリック明示ソート・リセット、列ヘッダダブルクリック、非入力列の［ソート］アクションで共通のスクロール先頭設定を使用する。
- 非入力列の［ソート］アクションは固定方向指定を廃止し、対象列だけを選択して上記共通ダブルクリックソート順に従う方式へ統一。新設定をConfigおよびお気に入りJSONの［列設定］へ保存/読込する。

v3.5.22 - 2026-09-23
- ［メインシート > 非入力列］を新設し、元ファイル名 / Recent# / 最終保存時刻 / ページ / ルート / サブフォルダ / 親フォルダ / サムネイルの8列について、ダブルクリック時アクションを列ごとに設定可能にした。設定UIは［列 / アクション / 対象列 / 条件・順序・プログラム］の行形式で、列単位［既定］と［すべて既定に戻す］を用意。
- ダブルクリックアクションとして［指定条件で検索］［ソート］［関連プログラムを実行］［Explorerで開く］［Viewerモードで開く］を実装。検索はクリックしたセル値を任意の対象列と5条件（含む/含まない/一致/以上/以下）で検索、ソートは任意列を昇順/降順固定で実行、関連プログラムは1～5から選択できる。
- 既存の個別ダブルクリック処理を共通dispatcherへ統合。Recent# / 最終保存時刻 / Root系は従来の検索条件を既定値として維持し、サムネイルはViewerを維持。新アクション一覧にOS既定アプリで開く項目がないため、元ファイル名 / ページの従来generic openはPMT内Viewerを既定値とした。
- 新設定をConfigへ保存/復元し、お気に入りJSONの［列設定］選択読込にも含めた。検索helperは明示条件を受け取れるよう拡張し、通常の既定検索条件を使う既存呼出しは互換維持。

v3.5.21 - 2026-09-23
- Viewer右上のページ数/表示モード用ホバー領域へ［全画面］ボタンを追加。ホバー中だけ表示し、F11と同じ toggle_viewer_fullscreen() 経路を呼ぶ。全画面中はボタンを青く強調し、クリックで通常表示へ戻せる。
- 共通の簡易文字列関数へ LEFT / RIGHT / MID を追加。{{LEFT("%Title%", 5)}}、{{RIGHT("%OriginalName%", 4)}}、{{MID("%Title%", 3, 6)}} の形式で利用でき、MIDの開始位置はExcel同様1始まり。文字数は0以上、MID開始位置は1以上を検証する。
- 簡易関数を関連プログラム引数だけでなく、パターン命名およびParseの解析元でも共通利用できるようにした。既存の urlencode / upper / lower / trim / replace も同じ共通評価処理へ統合。［引数・関数一覧］へLEFT/RIGHT/MIDの書式と説明を追加し、ダイアログ説明も共通用途に更新。

v3.5.20 - 2026-09-23
- 起動を跨いで一時的な検索UI状態が残る不整合を修正。検索文字そのものは従来から保存していなかった一方、現在の検索条件(filter_mode)と検索対象列(filter_targets)だけConfigへ保存/復元していたため、次回起動で実検索が空でも［検索クリア］［絞込］が強調表示されることがあった。現在の検索条件・検索対象列はセッション限定状態とし、Config保存対象から除外。旧Configに同キーが残っていても起動時は無視する。
- 起動時は検索文字、条件、対象列、Field Map/Favoriteリスト由来の疑似フィルター、デバウンス・スクロール記憶をニュートラル状態へ初期化する。一方、［カスタム検索設定］、列ごとの標準検索条件、検索履歴は再利用設定として従来どおり保存/復元する。手動の設定ファイル読込(load_workspace=False)では現在のワークシート検索状態を維持する。
- Keep Hits/選択ファイル絞込等でCurrent Listそのものを縮小した状態は従来どおり起動スナップショットとして復元するが、通常起動でもLibraryよりCurrentが少ない場合は［絞込リセット］を正しく強調するよう整合。これは一時検索フラグではなく、実際に復元されたCurrent List縮小状態を示す。
- 検索系以外の一時状態も監査。Viewer全画面、Autoページ送り実行中、候補ポップアップ、Folder/Field Mapの検索選択、Favoriteリスト疑似検索等はConfigへ保存されておらず、追加の残留対策は不要と確認。

v3.5.19 - 2026-09-23
- v3.5.17〜v3.5.18で追加した「ファイル/フォルダ追加時Pathソート」は意図違いだったため廃止し、同3項目をPathフィルターへ修正。［ファイルを加えた時そのファイル(Path)でフィルター］既定OFF、［ファイルを加えた時その格納フォルダ(Path)でフィルター］既定ON、［フォルダを加えた時そのフォルダ(Path)でフィルター］既定ONとした。
- ファイル追加ではファイルPathフィルターと格納フォルダPathフィルターが両方ONの場合、より具体的なファイルPathを優先。格納フォルダ/フォルダPathフィルターはfull_path列の「含む」検索として適用し、対象フォルダ配下（サブフォルダを含む）を表示する。追加後の通常ソート状態は変更しない。
- 親フォルダの走査・追加ON時はバックグラウンド走査完了後にPathフィルターを適用。単一PDFのViewer直起動では、初回PDF表示→Root/Current/Library遅延復元→親Root登録→親フォルダ遅延走査→Pathフィルターの順を維持し、Viewerを閉じずに非表示メインシート側のフィルター状態だけ更新する。
- Config/お気に入りの保存キーを add_file_filter_* / add_folder_filter_* へ変更。v3.5.17〜v3.5.18で保存された旧 add_*_sort_* キーは同じON/OFF値を新フィルター設定へ自動移行する互換読込を追加。

v3.5.18 - 2026-09-23
- ［全般 > 起動 > ファイル・フォルダ追加時］で、［ファイルを加えた時その格納フォルダをルート登録］の直下に［その格納フォルダの走査・追加］を追加。既定値はON。Root登録ON時だけ有効とし、Root登録OFF時は走査ONでも親フォルダを暗黙登録/走査しない。
- 通常のファイル追加で走査ONの場合、追加対象ファイルの親フォルダを重複除去して既存バックグラウンドローダーへ同時投入する。明示ファイルと親フォルダ走査の重複は既存Path重複判定で除外し、キャッシュ利用・キャンセル・再帰読込など既存フォルダ追加経路を共用する。
- 単一PDFのViewer直起動にも走査設定を適用。初回PDF表示とRoot/Current/Library遅延復元が完了するまではRoot登録/走査を行わず、その後に親Root登録→親フォルダのバックグラウンド走査・追加を開始する。走査完了後はv3.5.17のファイル追加時Pathソート設定を適用する。
- 新設定をConfigおよびお気に入りの［その他全般設定］保存/読込対象へ追加。旧Config/お気に入りでは既定ONとして互換読込する。

v3.5.17 - 2026-09-23
- ［全般 > 起動］へファイル/フォルダ追加時の4設定を追加。［ファイルを加えた時その格納フォルダをルート登録］は既定ON、［ファイルを加えた時そのファイル(Path)でソート］は既定OFF、［ファイルを加えた時その格納フォルダ(Path)でソート］は既定ON、［フォルダを加えた時そのフォルダ(Path)でソート］は既定ONとした。
- ファイル追加時の親フォルダRoot登録は、親フォルダをCurrent Rootへ登録して既読込行のRoot所属を再計算するが、親フォルダ全体の走査は自動開始しない。既存の上位Root配下にある場合はRoot正規化に従い重複/入れ子Rootを作らない。
- 追加時Pathソートを通常のデフォルトソートとは独立した一時ソートとして実装。親フォルダPathのみONの場合は格納フォルダの絶対Pathで安定ソートし、同一フォルダ内は直前の並びを維持。ファイルPathのみONの場合は絶対ファイルPath昇順、両方ONの場合は格納フォルダPath→ファイルPathの順で整列する。フォルダ追加時は格納フォルダPathで安定ソートする。明示的な列ソート/デフォルトソートへ戻した場合はこの一時ソートを解除する。
- 単一PDFのViewer直起動Fast Pathにも同じ4設定を適用。ただし初回PDF表示を阻害しないよう、親フォルダRoot登録と追加時PathソートはRoot/Current/Libraryの遅延復元完了後に実行する。直起動PDFは最初は従来どおり最小構成で表示し、その後に必要なRoot再所属・ソート・設定保存を行う。
- 新4設定をConfigおよびお気に入りの［全般設定］保存/読込対象へ追加。旧Configでは上記既定値で互換読込する。GUIスモーク、Root登録/Pathソート挙動、単一PDF直起動回帰テスト8件を確認。

v3.5.16 - 2026-09-23
- 設定ダイアログの［メインシート > 表示・Toolbox］と［メインシート > レイアウト］を統合し、［メインシート > レイアウト］1ページへ整理。基本表示、Toolbox表示/列数/フォント/頻度表示、行高さ、現在レイアウト保存、保存済みレイアウトで起動を同一ページで設定できるようにした。
- ［Viewerモード > レイアウト］の表示ポリシー表記を簡潔化。［通常Viewerモード］見出しの下にColumn Info / Toolboxの三択を2行で配置し、［全画面モード］も同じ構成へ統一。各行の「通常Viewerモード -」「全画面モード -」重複表記を廃止した。

v3.5.15 - 2026-09-23
- VMT方式にならい、［Viewerモード > レイアウト］へColumn Info / Toolboxの表示ポリシーを追加。通常Viewerモードと全画面モードを分離し、それぞれ「前回設定を引継ぐ / 非表示 / 表示」の三択で指定できるようにした。
- F11で通常Viewer→全画面へ入る時は全画面側設定、全画面→通常Viewerへ戻る時は通常側設定を適用。PMTは同じ物理ペインを再利用するため、通常側・全画面側の直前表示状態を別々に保持し、「前回設定を引継ぐ」がモード間で混線しないようにした。
- 単一PDFのViewer直起動用に［Viewer起動時（単一PDF直起動）］を追加。Toolboxは起動高速化・Library事故防止のため従来どおり非表示固定とし、Column Infoのみ「前回設定を引継ぐ / 非表示 / 表示」の三択を追加。直起動のToolbox非表示は一時ガードで行い、通常Viewerの保存済みToolbox状態は上書きしない。
- 「保存済みレイアウトでViewer開始」はViewerへ入る瞬間のみ通常Viewer設定より優先。以後F11でモードを切り替えた場合は通常/全画面のモード別設定を使用し、単一PDF直起動時は直起動用Column Info設定とToolbox非表示固定を最優先する。
- 新しい表示ポリシー5項目をConfigおよびお気に入りのViewer設定へ保存/読込対応。既存Configは互換既定値（通常:引継ぎ、全画面:非表示、直起動Column Info:引継ぎ）で読み込む。GUIスモーク、通常↔全画面の独立状態復帰、直起動Toolbox設定非破壊を確認。

v3.5.14 - 2026-09-23
- VMT方式に合わせて設定ダイアログを再整理。［メインシート > 列］から標準検索条件を分離し、［メインシート > ソート・検索］へ「列ごとの検索設定」を追加。各列のカスタム検索対象ON/OFFと、右クリック/Toolbox検索で使う標準検索条件を同じ一覧で編集できるようにした。
- ［メインシート > 列］からページ数/しおり/サムネイルの読込設定を分離し、［全般 > データ読込］へ移動。読込OFF時の挙動と再読込が必要な旨の説明を追加。候補表示設定も［メインシート > 候補表示］として独立ページ化した。
- 下部ステータス/デバッグ表示と、キャッシュ削除/初期化・メタデータCSV出力・キャッシュ操作確認設定を［開発者用 > データ・キャッシュ］へ移動。［ファイル処理 > 保存・データ］は.bak設定中心に整理し、バックアップがPMTフォルダ内bakへタイムスタンプ名で保存される処理説明を追加。
- ［メインシート > レイアウト］を追加し、現在のToolbox表示/幅、Folder/Field Map表示状態/幅、列幅を明示的な「保存レイアウト」として保存可能にした。［保存済みレイアウトで起動］ON時は通常の起動時Toolbox設定より保存レイアウトを優先して適用する。
- ［Viewerモード > レイアウト］を追加し、現在のColumn Info/Toolboxの表示状態と幅を保存可能にした。［保存済みレイアウトでViewer開始］ON時はViewer進入時に保存状態を適用する。単一PDF直起動の初回Toolbox非表示ガードは従来どおり優先する。
- お気に入り保存/読込に「保存レイアウト / 開始適用」を独立カテゴリとして追加。お気に入りJSONにはメイン/Viewerの保存レイアウトと開始適用ON/OFFを保存し、読込プリセットで反映対象を選択できる。既存Configは未設定時OFF/未保存として互換読込する。
- GUIスモークで新設ページ切替、メインレイアウト保存、Config往復、保存レイアウトの次回起動適用、お気に入り選択読込を確認。既存の単一PDF直起動回帰テスト8件も成功。

v3.5.13 - 2026-09-23
- VMT v1.9.11にならい、設定ダイアログ［操作 > ショートカットキー］を別ダイアログ方式からページ内直接編集へ変更。行を選択して［変更］後にキー入力、重複/固定キー検証、クリア、選択行/全体のデフォルト復帰を同ページ内で行い、変更は即時保存・再バインドする。
- ［命名・解析 > パターン命名］を別編集ダイアログ方式からTreeviewセル内の直接編集へ変更。パターン列はダブルクリック/F2/Enterでインライン編集し、Enter/FocusOutで保存、Escで取消。モード列は従来どおりセルから選択する。［選択セルへ実行］ボタンは削除。
- パターン命名ページとParseページ下部に［引数・関数一覧］ボタンを追加。関連プログラムページの同ボタンは説明文と同じ行から分離し、次行へ配置してウィンドウ幅による見切れを防止した。
- 次回予定の「列情報の読込/検索の分離整理」「レイアウト保存系」は本版では変更していない。

v3.5.12 - 2026-09-23
- 設定ダイアログUIをVMT v1.9.11の新UIへ水平展開。従来の上部Notebookタブを廃止し、左側のカテゴリツリー＋右側の単一設定ページ構成へ変更。カテゴリは「全般 / メインシート / Viewerモード / 操作 / 命名・解析 / ファイル処理 / お気に入り / 管理 / 開発者用」で統一した。
- PMT固有の設定項目・設定変数・保存方式は変更せず、配置のみタスク別に再編。Pattern/Parse、ViewerのColumn Info/ページ送り、Author Library、Config、関連プログラム等を個別ページへ整理し、メインシートの列設定とソート設定も分離した。
- VMTと同じコンパクトなTreeview行高、画面サイズ追従の設定ウィンドウ、ページタイトル、カテゴリ折りたたみ、前回開いていた設定ページの復帰、下部［閉じる］ボタンを導入。設定ダイアログを開いたままページ指定された場合も同一ウィンドウ内で切替可能にした。
- Viewer Auto実行中に設定ダイアログを開いた際の一時停止/再開待ち、既存の各設定操作、ショートカット設定別ダイアログなど従来挙動は維持。

v3.5.11 - 2026-09-23
- 単一PDFのViewer直起動Fast Pathで、メインシート上部の「追加/検索等ツールバー＋Mirror Box」の2行を初期レイアウトからmapしないよう変更。Viewer突入時に後から隠す方式ではなく、直起動中は最初から未表示とし、Tkのgeometry/update_idletasksや遅延設定読込を挟んでも初回Viewer画面へメインシート部品が露出しないようにした。Viewer終了時は従来どおりメインシート上部2行を復帰する。
- Viewer直起動ではAuthor Library（Library/AuthorLibrary.json）の読込と起動時バックアップローテーションも初回PDF画像の後へ遅延。Libraryが大きい環境でも「PDFを先に見る」を優先し、初回画像後にLibraryを読み込んでViewer Column Infoを更新する。Fast Path失敗時は通常起動へ戻る前にLibraryを通常読込する。
- v3.5.9/3.5.10の起動速度調査用に自動生成していたpdfmetatag_startup_timing.logを廃止。旧ログが残っている場合は起動時にbest-effortで削除し、今後は起動計測値をファイルとして蓄積しない。
- 配布物を整理。Libraryフォルダ、DIRECT_PDF_STARTUP_*.md、PERFORMANCE_*.txt、tests等の開発/確認用ファイルを配布ZIPから除外し、VERSION.txtを唯一の更新履歴とする。

v3.5.10 - 2026-09-23
- 単一PDFを外部指定してViewer直起動する経路を再設計。従来の「通常起動でRoot/Current/Libraryを復元→メインシートを経由→Viewerへ移動」ではなく、小さい設定値だけを先に適用し、指定PDFだけを直接読み込んでViewerを最初の可視画面として表示する専用Fast Pathへ変更。
- 直起動中は通常メインシートをwithdrawしたままViewerへ切替え、Viewer配置後に初めてウィンドウを表示。起動時のメインCanvas描画、Folder/Field Map再構築、Toolbox更新を初回Viewer画像より前には実行しない。
- Viewer直起動時のToolboxは保存済み表示設定にかかわらず初回は物理的に未構築・非表示とし、ユーザーがViewerの[Toolbox]を明示的に押した時だけ構築/表示。Viewerを閉じてメインシートへ戻った場合は、保存済みのメインToolbox表示設定を従来どおり復元する。
- 指定PDFの初期メタデータ取得では大容量pdfmetatag_cache.jsonを先読みせず、そのPDFだけを直接read_metadata。pypdfium2による最初のページ画像描画完了を遅延復元開始のトリガーとし、その後でRoot/Current/Libraryをバックグラウンド/分割処理で復元する。
- Startup Reload OFFかつ通常の追従Startupではstartup indexをワーカースレッドで読み、Library/Currentレコードを約10ms単位のTkチャンクに分けて復元。Viewer中の対象PDFオブジェクトは同一identityのまま維持し、復元後のsortでも表示対象を再リンクする。Startup Root独立指定/Startup Reload経路は、初回Viewer画像後に既存のbackground Root loaderへ引き渡す。
- 遅延復元中は自動save_settingsによる一時的な「直開きPDF 1件だけ」の状態保存を抑止し、前回のRoot/Current/Libraryを誤って上書きしないよう保護。以前から登録済みのPDFに未保存編集状態がstartup snapshotへ残っている場合は、初回画像表示後に同一Viewer itemへ再適用する。
- 直起動中に追加のExplorer/IPCファイルが到着した場合は、最初のPDFと遅延ワークスペース復元を優先し、復元後に既存の受付バッチへ流す。通常起動、複数ファイル起動、Viewer直起動OFFの経路は従来どおり。
- 回帰test_direct_startup.py 8件成功。Xvfb/TkのGUIスモークでは保存済み201件のCurrent/Libraryを用意し、初回PDF画像が先に表示された後で201件が復元されること、初回Viewer Toolboxが未構築であること、Viewer終了後にメインToolbox設定が復元されることを確認。独立Startup Root経路でも初回画像表示時点でmetadata cache未読込を確認（Linuxテスト環境ではpikepdf未導入のため、直開きPDFのメタデータ取得のみテストstub、PDFium描画は実処理）。

v3.5.9 - 2026-09-22
- 単一PDFを指定した直起動からViewerの初回画像表示までを調査・計測。v3.5.8の設定・保存形式・ページ表示・ページめくり・Root/Current/Startupの仕様を維持し、実測で確認した重複描画と不要な集計を合理化。
- 起動中の設定・レイアウト適用で繰り返していたメインCanvas描画を最終状態へ集約。スクロール状態・表示行は従来どおり更新し、Viewer中の非表示メインCanvasも全描画を省略。メイン画面復帰時に既存のrefreshで描画する。
- PDF直起動の受付/読込待ちとViewer表示中は、非表示になるFolder Map/Field Mapの全件集計を省略。復帰・機能使用時の既存Map更新経路で構築する。表示直後へ重い一括処理を予約する方式は追加しない。
- 単一PDFかつViewer直起動設定ONの場合、外部ファイル受付前の150ms待機を省略。複数プロセスからのExplorer受付をまとめる250msの待機は維持。登録済みのViewer対象へ移る際の追加80ms待機も省略し、次のTkイベントで表示を開始。
- 読込完了時のToolbox全列の頻度集計を、Toolbox/入力候補で必要になった列ごとの初回集計へ変更。頻度順/名前順、100件制限、Keywords/しおりの分割、データ変更後の無効化を維持。
- ViewerのPMTしおり判定と内容取得で同じpikepdf readerを共有。PDFiumも1回の描画中のページ数・Auto見開き判定で共有し、描画終了/例外時に閉じる。ファイルをまたぐ恒久キャッシュや古いPDFの使い回しは追加しない。
- 実Tk/PDFiumで各3回の比較：単一20頁PDF 1.524→1.284秒、画像主体8頁PDF 1.570→1.334秒、3,000件復元＋単一追加 2.970→2.541秒、登録済み単一PDF 2.888→2.396秒（中央値）。計測環境・起点・制約はDIRECT_PDF_STARTUP_v3.5.9.md参照。
- 実画面の往復/編集/設定保存読込/後続IPC追加22項目、単頁/見開き/L/R/0/+1/Autoの描画比較、頻度データ184条件、追加回帰8件を確認。通常起動、Viewer起動OFF、Startup Root、複数/フォルダー/欠落/破損PDFも検証。Windows実機のExplorer・EXE起動は未検証。

v3.5.8 - 2026-09-22
- Viewerの見開き静止表示へ、実際のページ間ギャップ中央に沿うごく薄い綴じ目シャドウを追加。PDF画像・ページ形状・綴じ位置自体は変更せず、表示用のFit画像にのみ弱い陰影を加え、静止状態から中央ヒンジ式ページめくりへの視覚的な連続性を改善。
- 見開きページめくり中は中央綴じ目の陰影を紙が立つほど少し強めるよう調整。影は中央線に固定し、ページ全体を横切るワイプにはしない。折れ面は表面側を元ページ画像寄り、裏面側をやや低彩度・暖色の紙色寄りとして明暗差を付け、紙の表裏を認識しやすくした。
- ページめくりの所要時間（進む140ms／戻る165ms）はv3.5.7から変更せず、補間をsmootherstepへ変更。中盤の速度感を維持しながら終端の移動量を小さくし、着地時の「パタン」と収まる感触を強めた。単頁／見開き、L/R綴じ、Auto、見開き↔単頁境界での演出抑止など既存仕様は維持。

v3.5.7 - 2026-09-22
- Viewerのページめくり演出を、2ページ見開きと単頁（cover/end/Autoで1頁のみ表示）の境界をまたぐ移動では実行しないよう変更。見開き→単頁／単頁→見開きは即時描画とし、中央綴じ線が途中で出現・消失する不自然なページカールを防止。
- 見開き→見開き、単頁→単頁のページ移動ではv3.5.6のページめくり演出をそのまま維持。Autoページ送りや通常の前後移動も、実際の移動前後の表示形態を比較して同じ判定を使用する。

v3.5.6 - 2026-09-22
- Viewerのページめくり演出を全体に高速化。進む側を約190ms→140ms、戻る側を約230ms→165msへ短縮し、v3.5.5比で約1.36〜1.39倍速に調整。単ページの形状・方向ロジックはv3.5.5を維持。
- 2ページ見開き専用の中央綴じページターンを追加。見開き全体を一枚として移動・拡縮する従来方式をやめ、実際のページ間ギャップ中央をスパインとして記録し、ページ送り時もその位置を固定ヒンジとして使用。
- 見開きでは、進行方向側の現在ページが外側から中央スパインへ立ち上がって新しい同側ページを露出し、中央を越えた後は移動先ページの裏面側がスパインから反対側へ開いて旧ページを覆う二段階モーションへ変更。L/R綴じと進む/戻るの組合せに応じて左右を反転し、綴じ方向を視覚的に認識しやすくした。
- 見開きの先頭/末尾など片ページだけになるsingleton状態では架空の中央線を作らず、既存の単ページ/全体遷移へフォールバック。開始時のチラつき防止、Auto、入力フォーカス非干渉、連打時即時完了は維持。

v3.5.5 - 2026-09-22
- Viewer単ページ表示の「戻る」ページめくり演出を再調整。v3.5.4の前ページ全体を横方向に圧縮→原寸へ展開する方式をやめ、前ページ画像は最終表示位置・原寸サイズのまま固定し、開始側から可視領域だけが広がって現在ページの上へ被さる方式へ変更。文字・図・余白が途中で縮小されないため、下／奥から浮かび上がるように見える印象を抑制。
- 単ページ戻り演出では、動く先端のみを軽く湾曲させ、現在ページ側へ落ちる接触影・折れ返しの細い帯・先端ハイライトを付加。ページ本体の拡大縮小ではなく「原寸の紙面がめくり戻されて見える範囲が増える」表現へ変更。
- 見開き表示の戻り演出は今回変更せずv3.5.4方式を維持。中央綴じ線を支点とする見開き専用演出は別工程として切り離し、まず単ページ挙動のみを調整。進む側の演出もv3.5.4から変更しない。

v3.5.4 - 2026-09-22
- Viewerのページめくり演出について、進む側はv3.5.3の動作を維持したまま、戻る側のみ「横から突き抜ける」印象を抑えるよう再設計。
- 戻る側は前ページを原寸クロップで横方向に露出する方式を廃止し、ページ全体を開始側でほぼエッジオンに圧縮した状態から、疑似ヒンジ回転で横幅を広げながら現在ページの上へ被せる方式へ変更。開始側の端を固定し、移動する先端のみを軽く湾曲させる。
- 戻る側の影をページ先端直下の接触影へ限定し、先端の細いハイライトと着地に向けて弱まる陰影を追加。ページ全体が画面を横切るワイプ感を減らし、「紙が展開して被さる」奥行き感を強化。
- 戻る側のみ13フレーム／約230msへわずかに延長し、疑似回転のsin補間と既存ease-in-outを組み合わせて終盤をゆっくり着地させる。進む側は10フレーム／約190msのv3.5.3仕様から変更しない。

v3.5.3 - 2026-09-22
- Viewerの疑似ページカールを正式版化し、設定表示の［ページめくり (trial)］を［ページめくり］へ変更。
- ページを進む場合と戻る場合でアニメーションの物理的な役割を分離。進む場合は従来どおり現在ページを外側から剥がして下の次ページを露出し、戻る場合は現在ページを背景として残したまま前ページ自体を外側からカールさせて上へ戻す「入場」演出へ変更。単純な左右反転ではなく、戻る操作がページを被せ直す見え方になる。
- 綴じ方向と進行方向を組み合わせ、左綴じでは進む=右→左／戻る=左→右、右綴じでは進む=左→右／戻る=右→左となるよう統一。ページ送り操作から綴じ方向を直感的に認識しやすくした。
- 進む／戻るの両演出へease-in-outを適用し、開始・中央・着地の速度変化を滑らかにした。戻る演出では入ってくる前ページの下へ影を落とし、旧ページ上へ紙が重なる奥行きを表現する。
- v3.5.2trialの開始時チラつき防止、入力フォーカス非干渉、Autoページ送り、見開き、連打時の即時完了仕様を維持。

v3.5.2trial - 2026-09-22
- 疑似ページカール開始時のチラつきを修正。新ページをCanvasへ配置した直後、右上ページ表示等の再構築でupdate_idletasks()が走る前に、旧ページ100%のp=0カールフレームを同期配置するよう描画順を変更。完成後の新ページが一瞬だけ先に露出する現象を防止した。
- カールアニメーションをp=0（旧ページ完全表示）からp=1（新ページ完全表示）まで正確に補間し、開始側・終了側とも通常Viewer画像と連続するよう調整。カール形状、影、綴じ方向、入力フォーカス、連打時の即時完了仕様はv3.5.1trialから変更しない。

v3.5.1trial - 2026-09-22
- Viewerのページ送り演出として、Pillow/Tkのみで動作する試作版の疑似ページカールを追加。新ページを通常どおり先に描画し、旧ページ画像を縮退・折り返し・陰影付きのオーバーレイとして約0.2秒でめくるため、PDF描画処理やTag / Column Infoの入力フォーカスには干渉しない。
- 綴じ方向と進行方向に応じてめくり開始側を切替え。左綴じの次ページは右端、右綴じの次ページは左端からめくり、前ページ移動では逆方向にする。単頁／見開き／見開きAutoの既存ページ送り経路をそのまま利用する。
- Viewer設定［ページ送り演出］に［なし］／［ページめくり (trial)］を追加し、Configおよびお気に入り設定へ保存・復元。trial版の初期値はページめくり。
- ページ送り連打中はアニメーションをキューへ蓄積せず、進行中の演出を即時完了して次のページ送りへ移る。Autoページ送りと最終ページから先頭への循環にも同じ演出を適用。Viewer終了／ファイル切替では演出状態を破棄する。
- 演出は9フレームの軽量2D処理とし、折れ面の台形化、裏面風の淡色化、移動する影を追加。演出OFF時はv3.4.7までのページ送り表示へ戻る。

v3.4.7 - 2026-09-22
- authorAliases入力UIをメインシートのミラーボックス／Viewer Column Infoで共通改善。既存Alias列の末尾へ新しい文字列を追記し始めた場合、最初の入力時に区切り「; 」を自動補完し、手動でセミコロンを入力せず別名を追加できるようにした。
- 空のAlias欄では先頭区切りを付けず、既存値がすでにセミコロンで終わる場合やユーザー自身がセミコロンを入力した場合も二重挿入しない。
- 既存Aliasの途中を編集・削除する操作には自動区切りを介入させず、従来どおり自由に編集可能。Enter／FocusOutで確定後は正規化済みAlias値を基準に次の追加入力へ備える。

v3.4.6 - 2026-09-22
- ViewerモードのColumn Info候補表示タイミングを変更。カラム／入力欄を選択してフォーカスしただけでは候補Popupを表示せず、編集を開始してから表示する。
- 文字入力・削除等の値変更に加え、←→ / Home / Endによるキャレット移動を候補表示トリガーに追加。キャレット移動だけでは値のcommitやdirty化を行わない。
- すでにフォーカス中の同一入力欄を再クリックしてキャレット／選択位置を変更した場合も候補表示する一方、最初のクリックは欄の選択だけに留める。候補内容・確定方法・上下キーによる候補選択等の既存仕様は維持。

v3.4.5 - 2026-09-22
- メインシートの候補表示を描画済みToolboxリストへの依存から分離。Toolbox非表示時でも、お気に入り値とCurrent頻度キャッシュを直接参照して、表示時と同じ候補を適切に表示する。Viewer Column Infoで先行していた非依存方式へ揃え、Toolbox非表示時の空振り／古い候補を解消。
- Binding等の固定選択候補、Rating/Difficulty系、Filename/Move target専用候補、頻度表示OFF、Current絞込、入力中の自己候補抑止など既存の候補表示規則を維持。
- ViewerモードのToolboxペイン上［非表示］ボタンを現在コンテキスト対応に修正。ViewerではViewer専用Toolbox表示状態をOFFにし、シークバー付近の［Toolbox］ボタンと同じ経路でペインを閉じる。メインシートでは従来どおりメインToolboxを非表示にする。

v3.4.4 - 2026-09-22
- Viewer自動ページ送りの実行中ボタン表記を［Ⅱ Auto］から［⏸ Auto］へ変更。Roman numeralのIIや数字の2に見えにくい、明確な一時停止記号を使用する。
- 自動ページ送りの［任意］間隔を小数1桁まで対応。従来の1～999秒範囲を維持しつつ0.1秒刻みで指定でき、例として1.5秒などをそのままタイマーへ反映する。
- 任意秒の設定値をDoubleVar／floatで保存・復元するよう変更。既存設定の整数値も互換的に読込み、お気に入り設定への保存・復元も小数1桁を保持する。

v3.4.3 - 2026-09-22
- Viewer右下ホバー操作の［Tag］［Toolbox］の下に［▶ Auto］を追加。Auto実行中は［Ⅱ Auto］へ切替え、下端ホバーUIが消えている間もAutoボタンだけは右下へ常時表示する。
- Auto実行中は設定した間隔ごとに既存のViewerページ送り処理を呼び出し、キー入力の疑似送信やfocus_setを行わない。Tag / Column Info / Toolbox等の入力フォーカスを維持したままPDFだけを進める。
- 自動ページ送り間隔を5秒 / 10秒 / 15秒 / 30秒 / 任意秒（1～999秒）から選択可能にし、Viewer設定およびお気に入り設定へ保存・復元する。初期値は10秒。
- 最終ページ到達時の動作を［先頭へ戻って循環］／［Auto停止］から選択可能にし、初期値を循環とする。単頁・固定見開き・見開きAutoとも現在の表示単位を尊重する。
- 別ファイルへ移動した時の動作を［Auto継続］／［Auto停止］から選択可能にし、初期値を継続とする。継続時は新しいPDFの描画完了後から設定秒数を数え直す。
- 手動ページ移動・シーク・しおり移動・表示レイアウト変更等でPDFを再描画した場合は、描画完了時点からAutoタイマーを再スタートする。描画遅延後に複数ページを追いつき送りしない。
- 設定ダイアログ／モーダル表示中はAutoページ送りを行わず、設定ダイアログを閉じた後はその時点から設定秒数を新しくカウントする。Viewer終了時はAutoを停止し、実行状態そのものは保存しない。

v3.4.2 - 2026-09-22
- Viewer右上の常設ページ数Boxを、現在ページにbookmarkがある場合は青背景で表示するよう変更。判定は下端ホバーの［bookmark］ボタンと同一処理を使用し、追加／削除直後にも即時反映する。
- ViewerのPDF中央60%領域を右クリックすると、［bookmark］ボタンと同じ現在ページのbookmark追加／削除を実行するよう追加。左右20%の右クリック1ページ送りは従来どおり維持。

v3.4.1 - 2026-09-21
- 動作高速化のため、既存機能・UI・設定・保存形式・検索／ソート規則を維持したまま重複処理を合理化。
- PDFメタデータ読込時のしおり確認／PMTしおり取得に、同一処理内で既に開いているPDFを再利用。同じPDFの二重オープンを解消し、単独呼出しとpypdfフォールバックは維持。
- 一覧更新で、検索対象となるCurrent Root行集合を一度だけ作成し、検索と件数表示に共有。Root名の照合用集合も処理単位で一度作成し、全行×全Rootの反復照合を削減。
- 見出し更新直後の本体更新による二重全描画を解消。保存ボタンの未保存件数にも、一覧更新で既に集計した値を再利用。
- Main Canvasの全描画時も画面内の列だけ値を取得し、非表示・画面外のAuthor仮想列等の取得を省略。列座標の計算結果を同一描画内の見出し／各行で共有。固定列の描画順・選択色・区切り線は維持。
- ソートの主キー取得を行ごとに一度にし、第2キー・ファイル名・パスは同値比較で必要になった時だけ行ごとに取得。Stateの特殊順序、昇降順、第2キー、最終同値順序、Field Map複合ソートの規則は維持し、値はソート終了後に保持しない。
- 読込キューが同一処理内で完了／失敗に到達した場合、直後の最終更新と重複する途中ソート・一覧更新を省略。読込継続中の段階表示は維持。
- Root再構築直前の重複Root正規化4か所、およびExplorer経由での共通UI準備の二重実行を整理。
- Viewerの現在行取得は行番号とオブジェクト同一性が一致すれば直接取得し、並べ替え等で不一致の場合は従来の同一性検索へ戻す。
- 旧版との比較検証を実施。詳細・測定条件・Windows実操作未検証の範囲をPERFORMANCE_v3.4.1.txtに記録。

v3.3.52 - 2026-09-21
- Viewer ModeにF11全画面表示を追加。ウインドウ枠・タイトルバーを消して画面全体へ拡張し、F11で通常表示へ戻す。
- 全画面化はViewer全体へ適用し、PDF表示だけでなくTag / Column InfoおよびToolboxも従来どおり表示・開閉可能とした。各Paneの表示状態や幅設定は切替時に変更しない。
- 全画面状態は一時操作としてConfigへ保存しない。Viewerを閉じる場合は自動解除し、Viewerへ入る前の通常／最大化ウインドウ状態へ復帰する。メインシート上のF11は何も行わない。
- Windowsで全画面切替後の最終的な画面サイズ通知が遅れる場合に備え、即時と短時間後の2段階でPDFをFitし直す。

v3.3.51 - 2026-09-21
- シークドラッグ中のページ表示を単頁番号（例: 22 / 120）へ変更。ドラッグ中は見開き判定やPDFサイズ読込を行わず、確定時にだけレイアウトを決定する。
- Autoでシーク確定時、指定ページの手前3ページ以内の直前のしおりを起点に局所的な見開きパターンを構築し、指定ページを含む表示へ移動する。候補ペアの次ページも確認し、サイズ読込は最大5ページの一括取得。しおりが近傍になければ指定ページを先頭とする従来判定を使う。
- Viewer左右20%のページ送り領域に右クリック1ページ送りを追加。綴じ方向に従って表示先頭ページを1ページ移動し、Autoではこの操作に限りしおり境界を無視する。サイズ・縦横比・Fit条件は従来どおり適用し、条件不成立時は移動先を単頁表示する。
- 固定見開き0／+1では右クリック1ページ移動に合わせて配置を切替。先頭の+1表紙単頁から進む場合のみ、2ページ目へ正しく進むため+1を維持する。先頭／末尾を越える操作では移動・設定変更をしない。
- 同じページへシーク確定した場合もAutoを再判定し、右クリックで一時的にしおりを無視した表示から通常の組合せへ戻せるようにした。

v3.3.50 - 2026-09-21
- 見開きAutoの判定にしおり位置を追加。ページサイズ・縦横比・Fit比の従来条件に加え、後ろ側（ページ番号が大きい側）にしおりがある組合せを禁止する。連続したしおりは単頁で区切り、同ページの複数しおりは1つの境界として扱う。
- 戻る操作では移動先ページから前方3ページ以内の直前のしおりを起点に、サイズ条件を見ながら局所的に組み直す。調査するページサイズは最大4ページを一括取得し、現在表示からの重複やページ飛ばしを防ぐ。近傍にしおりがなければ従来の逆方向Auto判定を使用する。
- 全ページの事前レイアウト計算・移動履歴は保持しない。直接ジャンプは従来どおり指定ページを先頭とし、遠方を含む往復の完全一致は保証しない。
- しおりの追加・削除・移動は保存前でもAuto表示へ反映。しおりページ集合の変化で現在のAuto判定を無効化して再描画し、タイトル変更や同ページ内の重複数変更だけでは再判定しない。単頁モードと固定見開き0／+1は従来どおり。

v3.3.49 - 2026-09-21
- Stateセル選択時にRoot Toolboxを強制表示していた旧互換処理を削除。StateセルはViewer起動用の操作なので、メインシートのToolbox表示/非表示状態およびToolbox種別を変更しないようにした。
- State列ヘッダーのソート操作でもRoot Toolboxを強制表示しないよう変更。State操作とRoot Toolboxの不要な連動を解消した。
- Viewer側の保存/復元処理を追加で複雑化せず、Viewer入場直前にRoot Toolboxが開いてしまう根本経路を除去した。

v3.3.48 - 2026-09-21
- Viewerへ入る直前のメインシートToolbox状態をBooleanVarではなく実際のPanedWindow構成から取得するよう修正。Toolbox本体が表示中か、［Toolbox ▶］折畳みPaneが表示中かを明示的にスナップショットする。
- メインシートが折畳み状態なら、その実Pane状態をauthor_toolbox_visibleへ同期して設定保存してからViewerへ移行。Viewer側で共有Toolbox frameが一時表示されても、メインシート設定へ逆流しないようにした。
- Viewer退出時は入場前の実Paneスナップショットを正として復元。［Toolbox ▶］が表示されていた場合は必ずToolbox非表示＋折畳みボタン表示へ戻す。VMT v1.8.46のViewer往復時Toolbox復元方式を水平反映。

v3.3.47 - 2026-09-21
- 「起動時にToolbox表示」とメインシートの現在Toolbox表示状態を同一設定として扱っていたv3.3.44以降の不整合を修正。startup_toolbox_visibleを独立した起動時設定へ戻し、通常のToolbox開閉やViewer遷移では書き換えないよう変更。
- 設定保存時はstartup_toolbox_visibleとauthor_toolbox_visibleを別々に保存。Viewer滞在中にsave_settings()が走る場合も、起動時設定は設定ダイアログの値をそのまま保持する。
- Viewer終了時のメインシートToolbox復元処理からstartup_toolbox_visibleへの同期を削除。起動時設定OFF／現在Toolbox ONのように両者が異なる状態でも、Viewer往復後に起動時設定が勝手にONへ変化しないよう修正。

v3.3.46 - 2026-09-21
- Viewerへ入る直前のメインシートToolbox表示状態をスナップショットし、Viewer終了時はViewer終了時点のlive値ではなく入場前状態へ復元するよう変更。Viewer遷移中の一時的なpane再表示がメインシート設定へ逆流しないようにした。
- Viewer滞在中に設定保存が走った場合も、author_toolbox_visible／startup_toolbox_visibleには入場前のメインシート状態を保存するよう変更し、共有paneの一時状態を永続設定として誤保存しないようにした。
- ViewerのColumn Info等からRoot／Field Map Toolboxを開く共通処理がauthor_toolbox_visibleをONにしていた経路を修正。Viewer中はviewer_toolbox_visibleのみを操作し、Toolboxの更新可否判定も現在のUIコンテキストに対応する表示フラグを参照するよう分離した。

v3.3.45 - 2026-09-21
- Viewer終了→メインシート復帰時、Viewerで使用していた共有Toolbox paneがPanedWindow上に残り、author_toolbox_visibleがOFFでもToolbox本体が表示される経路を修正。
- Viewer終了開始時にメインシート側Toolbox設定をスナップショットし、Viewer専用paneを外したうえで、メインシート表示前にToolbox／［Toolbox ▶］pane構成を設定値どおりに正規化するよう変更。
- Tkの遅延ジオメトリ処理後にもidleで同じメインシートToolbox状態を再適用し、Viewer側の表示状態やpane残留がメインシート側へ干渉しないようにした。Viewer／メインシートの保存設定は引き続き独立。

v3.3.44 - 2026-09-21
- メインシート側Toolboxの表示／非表示状態をauthor_toolbox_visibleとしてpdfmetatag_config.jsonへ保存し、次回起動時にそのまま復元するよう修正。Viewer側viewer_toolbox_visibleとは独立したパラレル設定として保持する。
- v3.3.43までauthor_toolbox_visible保存欄へstartup_toolbox_visibleを書き込んでいた不整合を修正し、実際のメインシート表示状態を保存上の正本へ変更した。旧configではstartup_toolbox_visibleを互換フォールバックとして読み込む。
- メインシートの［Toolbox ▶］／折畳み操作で状態を変更した時点で設定を即時保存し、起動時の軽量UI初期化が復元済み状態を上書きしないよう変更。既存の「起動時にToolbox表示」設定は互換用エイリアスとして現在状態へ同期する。

v3.3.43 - 2026-09-21
- Viewer ModeのToolbox表示状態をメインシートのToolbox表示状態から完全に分離。Viewer右下の［Toolbox］はviewer_toolbox_visibleのみを切り替え、author_toolbox_visible／メインシートの折畳み状態へ干渉しないよう修正した。
- Viewer Toolboxの表示／非表示状態をpdfmetatag_config.jsonへ保存し、Viewerを閉じて再度開いた場合および次回PMT起動時にも最後のViewer状態を引き継ぐよう変更。旧configでは従来挙動に合わせて表示ONを初期値とする。
- Viewer終了時にメインシート側のToolbox表示状態を明示的に再適用するよう修正。メインシート側がToolbox非表示なら、Viewerから戻った際に細い［Toolbox ▶］復元ボタンも正しく再表示する。Viewer／メインシート双方のToolbox幅設定は従来どおり独立して保持する。

v3.3.42 - 2026-09-21
- Viewer Modeの［<<］［>>］bookmark移動フォールバックを方向別に修正。PDF全体にbookmarkが存在するかではなく、現在表示位置より前／次に移動先bookmarkが無い場合に、Binding上の前方向はTOP、次方向はENDへ移動する。
- bookmark境界ジャンプ等でレンダリング後表示を予約したTOP／END HUDが、通常のPDF再描画完了経路で消費されていなかった不具合を修正。新しいPDF bitmap描画後に保留HUDを表示し、すでにTOP／END表示位置にいる場合は再描画せず即時HUD表示する。
- Viewer Modeで↑／↓によるファイル移動が先頭／末尾で移動できなかった場合、左上のESC／Queueホバーを1秒再表示してファイル列の端であることをフィードバックする。

v3.3.41 - 2026-09-21
- Viewer Modeの［<<］［>>］bookmark移動で、現在PDFにしおりが1件もない場合のフォールバックを追加。Binding上の「前」側ボタンは先頭ページ、「次」側ボタンは最終ページへ直接移動する。
- 左綴じ／右綴じによる<<／>>の前後関係はv3.3.40のまま維持し、先頭／末尾へ移動した際はTOP／END HUDも表示する。しおりが存在するPDFの前後bookmark移動ロジックは変更しない。

v3.3.40 - 2026-09-21
- Viewer Mode下端ホバー右側の［Tag］［Toolbox］を横並びから縦2段へ変更し、同じ幅の縦積みボタンとして配置した。
- シークバーの大きいページ数表示をバー下からバー上へ移動し、バー下は［<<］［bookmark］［>>］のbookmark操作列へ変更した。
- ［<<］［>>］は物理方向をPDFのBindingに従って解釈し、左綴じでは<<=前／>>=次、右綴じでは<<=次／>>=前のbookmarkへ移動する。見開き表示中は現在表示中のページにあるbookmarkを飛ばし、次の表示位置へ移動する。同ページ複数bookmarkは従来どおり許容する。

v3.3.39 - 2026-09-21
- Viewer Mode右下にあった単頁／見開／Auto／+1／0のページレイアウト操作を右上ホバーへ移動し、常設ページ数ON/OFFと同じ右上操作群へ集約した。
- 下端ホバー右下へ［Tag］［Toolbox］を追加し、Tag / Column Info paneとToolbox paneを個別に表示／非表示できるようにした。ViewerでToolbox非表示時は旧来の細い「Toolbox ▶」復元paneを出さず、このボタンから復帰する。
- シークバー下のページ数表示右側へ［bookmark］を追加。現在ページにしおりが無ければタイトルなしで1件追加し、同ページに1件以上あればそのページのしおりを全件削除する。登録済みページではボタンを青表示し、シークバーのしおりマーカーも即時更新する。

v3.3.38 - 2026-09-21
- Viewer Mode下端ホバーのシークバー上に、現在ファイルのしおり登録ページを橙色の細いマーカーとして表示するよう追加。ページ1始点と綴じ方向（左綴じ／右綴じ）をシーク位置と同じ規則で反映する。
- 同一ページに複数しおりがある場合は1本の位置マーカーへ集約し、現在位置の青いつまみは最前面に維持。しおりの追加・削除・編集後は、シークバー表示中なら再生成せずマーカーだけ即時再描画する。

v3.3.37 - 2026-09-21
- Viewer Mode下端ホバー左側の［保存］［ルート再読込］［設定］を横並びから縦3段へ変更し、同じ幅の縦積みボタンとして配置した。
- 右上ページ数ホバーのON/OFFボタンがポインタ離脱後に消えるまでの待ち時間を850msから425msへ短縮し、従来のおよそ半分のテンポで閉じるよう調整した。

v3.3.36 - 2026-09-21
- Viewer Mode右上に「12-13 / 200」形式のコンパクトなページ数表示を常設。単頁時は「12 / 200」とし、下端シークバー下の大きいページ表示とは独立して現在表示ページを追従する。
- 右上ホバーで［ページ数 ON/OFF］ボタンを表示し、常設ページ数の表示・非表示を切替可能にした。状態はConfigおよびお気に入り設定のViewer設定として保存する。
- 下端ホバー左側に［保存］［ルート再読込］［設定］ボタンを追加し、ESC/Queue・シーク系と同じ濃色＋青アクセントのデザインへ統一。Tag / Column Info上部から同3ボタンの行を削除し、［パターン命名］［お気に入り設定］のみ残した。

v3.3.35 - 2026-09-21
- Viewer Mode下端ホバーのページ数表示を「p12-13/200」形式から「12-13  /  200」形式へ変更し、先頭のpを廃止して現在ページ範囲と総ページ数の区切りを見やすくした。
- ページ数表示を通常UIより大きい12pt以上の太字へ変更し、文字色と左右余白も調整してシーク操作中の視認性を向上。単頁時も「12  /  200」の同一形式で表示する。

v3.3.34 - 2026-09-21
- Viewer Modeのシークバーをクリック／ドラッグした際、Auto見開きモードではページ番号プレビュー用の計算がcurrent_pageまで先に更新し、ButtonRelease時に「ページ変更なし」と誤判定してPDF描画を行わない不具合を修正。
- シーク中のページ番号表示は表示予定ページを副作用なしで計算する専用経路へ変更。クリック／ドラッグ中はcurrent_pageを変更せず、ButtonReleaseで初めて確定してPDFを1回描画する。v3.3.32のドラッグ中チラつき抑制とバー外ドラッグ操作は維持。

v3.3.33 - 2026-09-21
- Viewer Modeのシークバードラッグ終了時、内部のcurrent_pageは更新される一方でPDF画像が旧ページのまま残る場合がある不具合を修正。
- ButtonRelease処理中の通常10ms予約描画に依存せず、grab解除・ページ確定・ホバー状態処理を終えた次のidleで、保留中の描画予約を整理してPDFを1回だけ確実に再レンダリングするよう変更。ドラッグ中はPDFを再描画しないv3.3.32のチラつき抑制は維持。

v3.3.32 - 2026-09-21
- Viewer Modeで先頭ページからさらに戻ろうとした場合、最終ページのENDと対になる「TOP」を1秒HUD表示するよう追加。綴じ方向に応じてENDとは反対側（戻り側）へ表示する。
- シークバーのドラッグ中は各移動ごとのPDF再描画を停止し、つまみとページ番号だけを即時追従、マウスボタンを離した時に最終位置を1回だけ描画する方式へ変更。下端ホバーUIの破棄・再生成が連続して起こるチラつきを抑止した。
- シークドラッグ開始時にポインタをgrabし、ドラッグ中はシークバー上下左右から外れても現在の横位置を使って追従するよう変更。バー外では端へクランプし、離した位置で確定する。ドラッグ中は通常のホバー自動非表示も停止する。

v3.3.31 - 2026-09-21
- Viewer Mode下端ホバーのシークバーと単頁／見開／Auto／+1／0ボタン群を、左上ESC／Queueと同系統の濃色背景・白文字・青アクセントへ統一。
- シークバーは白背景を廃止し、未読トラックをダークグレー、既読進捗と現在位置をブルー系へ変更。ページ番号表示も同系統の濃色パネルへ統一した。
- 選択中のページ表示モード／見開き調整はブルー背景で示し、機能・配置・ホバー表示条件は従来どおり維持。

v3.3.30 - 2026-09-21
- Viewer Modeのプレイキューを右上ホバー領域から左上ホバー領域へ移動し、横幅を120pxから156px（約1.3倍）へ拡張。
- 左下の一時ESCボタンを廃止し、左上Queueの直上へESCボタンを配置。Queueと同系統の濃色背景・白文字・青系アクティブ表示へ統一した。
- ESCはQueueと同じ左上ホバーオーバーレイとして表示・非表示される。キーボードEscによるViewer終了、下端ホバーのシークバー／単頁・見開き操作は従来どおり維持。

v3.3.29 - 2026-09-13
- VMT v1.8.39-v1.8.41のArtist Library統合仕様をAuthor Libraryへ水平展開。authorAliasesへ別EntityのCanonicalまたはAliasを登録しようとした場合、現在のCanonicalへ統合／既存Canonicalへ統合／登録をやめる、の3択でその場で解決できるようにした。
- Entity統合では吸収側Canonicalと全Aliasを残存EntityのAliasへ引き継ぎ、authorX1～X6／Rating／Difficultyは空欄補完・同値維持・異なる非空値のみ個別選択とした。途中キャンセル時はLibraryを変更しない。
- 統合確認ダイアログ表示時のFocusOut再入、同一編集からの重複commit、統合済み旧Entity IDへの遅延commitを抑止し、同じ確認が複数回出る／吸収済みEntityが復活する問題を防止。2 Entity統合はLibrary snapshot単位でCtrl+Z/Redo可能にした。
- Ctrl+Vの矩形貼り付けとAuthor Library管理画面のAlias編集に残っていた旧来の事前「名前の衝突」停止を外し、通常入力・Mirror・Viewer・Toolbox等と同じ3択resolverへ統一。Canonical欄そのものの衝突は従来どおり厳格停止する。

v3.3.28 - 2026-09-12
- VMT v1.8.31-v1.8.32のViewer Column info軽量化を水平展開。Viewer中の通常入力・Binding・Rating/Difficulty編集ではPdfItem/Dirty/Undoを即時更新しつつ、非表示のメインシートCanvasを逐次再描画せずdirty rowだけ記録し、Viewer終了時の1回のCanvas refreshへまとめて反映するよう変更。
- Viewerの［パターン命名］も軽量経路へ統一。Viewer中は全件refresh_table()やColumn info全再構築を行わず、対象カラムの表示だけ更新してメイン行同期をViewer終了まで保留する。
- Viewer Column info候補Popupへclick-awayを追加。候補を所有する入力欄またはPopup自身以外（別カラム、空白部、Viewer操作部など）を左クリックすると候補を即時破棄する。
- Viewer終了時は表示を隠す前にアクティブColumn infoを明示commitし、保留行をCanvas非描画で論理同期してから通常メインシートを1回だけ再描画する。

v3.3.27 - 2026-09-12
- VMT v1.8.34のStartup Root起動仕様を水平展開。明示的なStartup Rootが登録され、Current Root追従がOFFの場合は、「起動時に全ルート再読込」のON/OFFに関係なくStartup Rootの実フォルダを走査して起動するよう変更。
- Startup Root起動では有効なメタデータキャッシュを優先して高速復元し、cache miss/staleのファイルだけ通常のPDF/Officeメタデータ読込へフォールバックする。前回Current ListにStartup Rootが含まれていない場合にOFF起動で0件になる問題を解消。
- 明示Startup Rootの高速読込中はBulk Reload相当の遅延テーブル更新を使い、空の起動前ワークシートをLibrary snapshotとして保存しない。Startup Root未登録またはCurrent Root追従ON時の既存起動仕様は変更しない。

v3.3.26 - 2026-09-08
- 設定→関連プログラムに［引数・関数一覧...］を追加。関連プログラム引数で使用できる正規引数を一覧表示し、ダブルクリック/Enter/Ctrl+Cで書式をコピーできるようにした。
- 一覧を「引数」「簡易関数」「互換名」に分離し、urlencode/upper/lower/trim/replaceの実際の書式と用途を表示。既存設定用の旧名・内部名は互換名として明示した。
- 格納フォルダ引数の正規名を%FolderPath%へ統一。従来の%Folderpath%は互換aliasとして維持し、既存Configを壊さない。パターン命名/Move関連の説明・新規デフォルトも%FolderPath%へ統一した。
- PMT正規引数一覧を実装と揃え、%FileType%/%Pages%/%Binding%/%Contents%を明示。関連プログラム引数でも%Parse1%～%Parse5%を実際に展開できるようVMTと同じParse設定連携を追加した。

v3.3.25 - 2026-09-05
- Viewer Column Info候補Popupが候補生成・位置計算まで正常に進んだ後、表示直前のフォーカス保護処理でPdfViewerFrameに存在しないself.mirror_entryを参照してAttributeErrorとなり、Popupがwithdrawされたまま終了する不具合を修正。v3.3.16でMain Mirror用フォーカス保護をViewer側へ誤って混入したことが原因。
- Viewer候補Popup表示時のフォーカス保護対象を、Main Mirrorではなく実際のColumn Info編集Entryへ修正。候補Popupは表示専用のまま、入力フォーカスをColumn Infoへ維持する。

v3.3.24 - 2026-09-05
- Viewer Column Infoの候補収集がToolboxの描画済みCurrent/Favorite Listboxに依存していた構造を修正。Toolbox非表示時は軽量化のためCurrent Listを再構築しないため、Column Infoで列を切り替えても候補が空/古いままになりPopupが表示されない場合があった。
- Column Info候補はFavoriteをpinned_values、Worksheet候補を既存のget_current_frequency_data()キャッシュから直接取得するよう変更。Toolboxの表示/非表示や描画タイミングに依存せず候補表示し、Favorite優先・空入力時はFavoriteのみ・Current Listの表示上限/名称順/頻度順/許可値設定は従来仕様を維持する。

v3.3.23 - 2026-09-05
- v3.3.22の共通テキスト矢印bindtag導入後、Viewer Column InfoのFocusIn中にbindtagsを書き換えることで、列有効化／Toolbox候補更新／候補Popup予約のイベント連鎖を乱し、候補表示されない場合がある不具合を修正。
- bindtag付与をFocusInイベント処理中ではなくafter_idleで遅延実行し、Column Infoの候補表示処理を先に完了させる。選択あり＋←/→で選択端へカーソルを畳むv3.3.22の入力挙動は維持する。

v3.3.22 - 2026-09-05
- VMT v1.8.14のテキスト入力挙動を水平展開。Entry/Text/TCombobox/Spinbox系で選択範囲がある状態のShiftなし←/→を押した場合、従来の「挿入カーソルから1文字移動」ではなく、選択を解除して左端/右端へカーソルを畳む一般的なWindows系挙動に統一した。
- 共通bindtagをTk/ttk標準クラスbindingの直前へ挿入し、Mirror、Viewer Column Info、各種設定入力欄など既存・遅延生成の通常テキストWidgetへ共通適用する。選択がない場合、Shift/Ctrl/Alt付き矢印、および各Widget固有の先行bindingは従来どおり維持する。

v3.3.21 - 2026-09-05
- VMT v1.8.12を水平展開。Folder Mapは表示中ファイル件数ではなく登録済みCurrent Rootを基準にRoot行を生成し、対象0件でも「Root名 (0)」として表示を維持する。各Root行左側に↻ボタンを追加し、そのRootだけ「選択ルートを再読込」できるようにした。
- VMT v1.8.13を水平展開。「選択ルートを再読込」を高速Bulk Reloadとして再定義。対象Rootのディスク走査・メタデータ検証は従来どおり行いつつ、中間バッチごとのfull refreshを停止し、最大0.5秒間隔の軽量Canvas更新＋完了時1回の通常refreshへ変更した。「全ルート再読込」も同じBulk Reload経路へ統一。

v3.3.20 - 2026-09-05
- Configから編集可能ショートカットを読み込んだ直後にbind_keyboard_shortcuts()を再実行し、設定ダイアログ上のキー表示だけ更新されて実Tk bindが起動時デフォルトのまま残る不具合を修正。再起動後や「設定を読込」後も、関連プログラム1-5を含む保存済みショートカットが即時に有効になる。
- ショートカット再bind時、固定Ctrl+Aの古いbind解除が現行Tkinterのunbind_allシグネチャと合わず二重登録され得る処理も修正。sequence単位の解除へフォールバックし、繰り返し再bindしても固定Ctrl+Aを1本に維持する。

v3.3.19 - 2026-09-05
- VMT v1.8.7のパターン入力モードを水平展開。設定ダイアログの各列パターン命名に「モード」列を追加し、置換／前追加／後追加を列ごとに選択可能にした。
- 前追加／後追加は現在セル内容を保持したままパターン展開結果を前後へ連結し、パターン文字列の先頭・末尾空白も区切りとして保持する。Filenameは現在の文書拡張子を継承し、二重拡張子を防止する。
- 旧Config／お気に入りでモード情報がない場合は従来互換の「置換」として読み込む。モードはConfig／お気に入りへ保存し、標準に戻す操作では全列を置換へ戻す。

v3.3.18 - 2026-09-05
- ミラーボックスのライブ入力値がメインシートへ反映された直後、その値自身がWorksheet候補の「既存値」として即時に候補Popupへ返ってくる自己フィードバックを抑止。入力中は現在入力文字列と完全一致するWorksheet候補だけを表示対象から外す。
- 前方一致候補（例: A入力時のAndy McKee / Andrew York）とFavorite候補は従来どおり入力中も表示する。
- ミラーボックスをクリックした時点、Enter/FocusOut等で入力確定した時点、または別セルへ移動した時点で入力中フラグを解除し、通常のWorksheet候補判定へ戻す。

v3.3.17 - 2026-09-05
- v3.3.16でViewer側の候補Popupにはtakefocus=0/Focus保持処理が入っていた一方、メインシートのミラーボックス候補Popup生成には同処理が適用されていなかったため、Main mirror側へ正しく適用。
- メインシート候補Popup生成をtakefocus=0へ変更し、表示直前にミラーボックスが入力フォーカスを持っていた場合はPopup描画後にフォーカスを戻す。
- update_mirror_from_selection()が同一セルのミラーボックス編集中にも無条件で候補Popupを破棄していたため、現在のmirror_rowid/mirror_fieldと選択セルが同一で、mirror_entryが編集中の場合は入力内容・カーソル・候補要求を保持する。実際の選択セル変更時は従来どおり候補を閉じる。

v3.3.16 - 2026-09-05
- ミラーボックス候補Popupが表示された直後、Windows/TkのToplevel表示に伴う一時的なFocusOutを編集終了と誤認し、候補が一瞬で消える場合がある不具合を修正。
- MirrorのFocusOut確定を遅延判定へ変更し、フォーカスがミラーボックスへ戻った場合／候補Popup内へ一時移動した場合は確定・候補破棄を行わない。
- 候補Popupをtakefocus=0で生成し、表示時にミラーボックスが入力フォーカスを持っていた場合はPopup描画後も入力フォーカスを維持する。実際に別UIへ移動した場合の従来の確定動作は維持。

v3.3.15 - 2026-09-05
- メインシートのミラーボックス候補表示で、文字入力直後にToolboxの候補リスト更新と候補取得が競合すると最初の候補取得が空振りし、ミラーボックスを再クリックするまで候補が表示されない不具合を修正。
- KeyRelease後はTkの現在イベント処理完了後に候補表示を予約し、候補元のToolboxリストが更新中だった場合は短時間の再試行を行う。Toolbox更新完了時にも未処理の候補要求を即時再評価する。
- 候補が本当に存在しない場合は再試行上限後に従来どおり非表示とし、クリック／Escape等による明示的な候補非表示では再表示要求を解除する。

v3.3.14 - 2026-09-05
- メインシートで↑/↓キー移動が表示ページ境界を跨ぐ際、再描画前の内部スクロールだけが先行してCanvas表示が旧ページのまま残る不具合を修正。高速ナビ経路では先行する_main_see()を省き、ページ移動判定と全再描画をensure_cell_visible_for_nav()の1回に統一した。
- マウスホイール／縦スクロールバーによる移動、およびページ内での↑/↓高速オーバーレイ描画は従来動作を維持。

v3.3.13 - 2026-09-04
- 列設定ツリーでFixed Boundaryを選択した状態の[上へ]/[下へ]が、Group Separator導入後に正規化で元位置へ戻されて動かない場合がある不具合を修正。Fixed Boundaryは隣接する合法なグループ境界へ直接移動する。
- [Fixed Boundaryをここへ]も同じ合法境界計算へ統一。グループ内の列を指定した場合は最寄りのグループ端へスナップし、D&Dとボタン操作で境界配置のルールを一致させた。

v3.3.12 - 2026-09-04
- 列設定でGroup Separatorを設定した状態でもFixed Boundaryを確実にD&D移動できるよう修正。Fixed Boundary行は行内のどこからでもドラッグ開始可能とし、グループ所属はGroup Separator間だけで決定してFixed Boundaryとは独立させた。グループ途中へ境界を置いた場合のみ最寄りのグループ端へスナップする。
- 通常表示時のGroup Separator幅を2pxから1pxへ変更。非表示グループの10px復元バーは従来どおり維持。
- 非表示グループを再表示した際の横スクロール補正を改善。展開対象の直前に非表示グループがある場合、その10px復元バーも見える位置まで含めて表示する。連続した非表示グループバーも同様に可視範囲へ含める。

v3.3.11 - 2026-09-03
- VMT v1.8.1～v1.8.4のGroup Separator / Fixed Boundary列レイアウトを水平展開。旧列ごとの固定・区切り線設定は移行せず、新しいレイアウトオブジェクトとして管理する。
- Group Separator直後から次のGroup SeparatorまたはFixed Boundaryまでを1グループとして扱う。グループ名・色・表示/非表示状態をConfig/お気に入りへ保存し、非表示時は10pxの色付き復元帯のみ残す。復元帯は左/中/右クリックのいずれでも再表示する。
- グループ再表示時、スクロール側は必要な場合だけ横スクロールして展開列を見やすく表示する。固定側グループでは横スクロール位置を変更しない。
- 列ヘッダ中クリックで所属グループ表示Toggle。右クリックに昇順/降順/並替リセット、列を検索対象に設定、グループを検索対象に設定、グループ非表示を追加。
- 非表示グループ列をメインシートのドラッグ選択・コピー・ペースト・Delete等の操作対象から除外。グループ検索だけは表示状態に関係なく所属列全体を検索対象にする。
- Group Separator通常時はFixed Boundary相当の2px幅とし、選択Overlayより前面に再描画する。横スクロール時はFixed Boundaryでクリップし、スクロール側Separatorが固定領域上へ越境しないようにした。
- Fixed Boundaryより左側を固定領域とする仕様へ統一。列ごとの固定属性をUIから廃止し、列設定画面で実列・Group Separator・Fixed Boundaryを同じ順序リストとしてD&D可能にした。
- 全38列の標準検索条件を「を含む / を含まない / と一致 / 以上 / 以下」の5種から選択可能に統一。以上/以下は数値・日時列では従来の数値比較、その他の列では厳密な数値文字列なら数値比較、それ以外は大文字小文字を無視した文字列比較を行う。

v3.3.10 - 2026-09-02
- VMT v1.7.12～v1.7.17で確定したAlias表示仕様をAuthor Libraryへ水平展開。非Canonical Authorを持つ行ではauthorAliases列を「Canonical › Aliases」と表示し、Canonical部分のみBoldの表示専用情報とした。author列・authorCanonical列の保存値は変更しない。
- メインシートのCanonical補助表示は描画専用で、authorAliasesの実値・編集・検索・ソート・コピー・Undo/Redoへ混入しない。Canonical判定とBold/通常混在レイアウトをキャッシュし、Alias列非表示時の追加描画負荷を避けた。Tooltipも表示上はCanonical › Aliasesを示す。
- ミラーボックスとViewer Column/infoのauthorAliasesにも、CanonicalをBoldの編集不可ラベルとしてAlias編集欄の前へ表示。Alias編集欄自体は従来のauthorAliases実値のみを扱う。Author Library変更時は表示を即時更新する。
- Filter/Searchの検索対象UIを再編。All / 表示中の列 / カスタム検索 / カスタム検索設定を上段に置き、基本メタデータ・Author Library・ファイル / Path・X1～X6をカテゴリ別サブメニュー化。カテゴリ親は選択を実行せず、配下38列を個別ON/OFFして現在の検索対象へ即時反映する。
- カスタム検索設定は38列のON/OFF定義を編集し、カスタム検索本体クリック時にその定義を検索対象へ適用する。定義はConfigおよびお気に入り設定へ保存・復元する。X1～X6の下にClearを追加し、検索対象0項目を実状態として保持する。
- 通常検索を遅延キャッシュ化。起動時には検索キャッシュを作らず、検索された列/組合せだけ初回に検索用lower文字列を生成して再利用する。Allや複数列は組合せごとの統合文字列を1本キャッシュし、ファイル属性編集・Reload・Author Library変更時は該当キャッシュを無効化する。

v3.3.9 - 2026-08-29
- [設定] > [関連プログラム]の各外部プログラムに「引数」テンプレートを追加。従来のEXE固定＋選択ファイルPath固定渡しから、EXEと任意引数を分離して設定できるようにした。
- 引数テンプレートでは既存のPMTパターン引数（%Path% / %Author% / %Title% / %Subject% / %Keywords% / %Author.Canonical% / %Author.X1%～%Author.X6% など）を選択ファイルごとに展開して外部プログラムへ渡す。引数Blankの場合はEXEのみを起動する。
- v3.3.8以前のsub_programsにargsが存在しない場合は自動的に "%Path%" 相当を補完し、従来どおり選択ファイルを1引数として渡す互換動作を維持。お気に入り設定からの外部プログラム読込でも同じ形式を扱えるようにした。
- 引数テンプレート用の簡易文字列関数 {{urlencode("...")}} / {{upper("...")}} / {{lower("...")}} / {{trim("...")}} / {{replace("...", "置換前", "置換後")}} を追加。実行可能な関数をPMT側で固定し、任意コード評価は行わない。
- urlencode()はURLクエリ向けに空白を+、予約文字をパーセントエンコードする。Chrome等の引数を `"https://www.google.com/search?q={{urlencode("%Author% %Title%")}}"` とすることで、選択ファイルのAuthor＋TitleによるGoogle検索を実行可能。
- 関連プログラムの右クリックメニュー名およびショートカット設定上のAction名は、設定した「名前」をそのまま表示する仕様へ変更。「で開く」を自動付加しないため、Google検索 / YouTube検索 / 任意ツールへ送る等の用途を自然に命名できる。

v3.3.8 - 2026-08-29
- メインシートのAuthor Library仮想列に付けていた #F3F0F8 背景を撤回し、通常列と同じ背景へ戻した。セル選択・範囲選択・縦横ガイドも通常列と同じ既存配色で表示する。Viewer ModeのColumn/infoにおけるLibraryテキスト入力Boxの #F3F0F8 背景は維持。
- Viewer ModeのColumn/infoで authorRating / authorDifficulty の星入力UIにも #F3F0F8 背景を追加。通常Rating / Difficultyは従来背景のままとし、Author Library由来のレーティングを視覚的に区別できるようにした。
- [設定] > [列設定]へ「区切」項目を追加。任意の列でONにすると、その列右端へ視認性専用の破線を表示する。固定列境界の実線とは描画を変え、固定・検索・ソート等の機能は持たない。非表示列では線も非表示となり、列の並び替え/横スクロールには列と一緒に追従する。設定およびお気に入り設定へ保存・復元可能。

v3.3.7 - 2026-08-29
- メインシートのAuthor Library背景 #F3F0F8 を、縦横ガイドの最薄青より優先するよう描画順を変更。範囲選択・選択セル・編集中の既存強調色は従来どおり優先する。通常描画と上下/左右Fast Overlayへ共通適用。
- Viewer ModeのColumn/infoでWindows等のttkテーマによりLibrary入力Boxのfieldbackgroundが反映されない問題を修正。Author Libraryのテキスト仮想列は実入力欄自体を #F3F0F8 で描画する。
- authorRating / authorDifficulty、および通常Rating / Difficultyのミラーボックス候補を追加。値が未入力の状態では「未入力」に続いて★0～最大値（Rating=5、Difficulty=3）を固定候補として表示し、未入力と明示的な0を区別して入力できる。

v3.3.6 - 2026-08-29
- Author Library由来の仮想列を通常メタデータ列と視覚的に区別しやすくするため、メインシートの authorCanonical / authorAliases / authorX1～X6 / authorRating / authorDifficulty の通常セル背景を #F3F0F8 に変更。
- セル選択・範囲選択・編集中など既存の選択/状態色を優先し、選択解除後はLibrary背景色へ戻るよう、通常描画と上下/左右カーソル移動用Fast Overlayの両方へ適用。
- Viewer ModeのColumn/infoでは、Author Library仮想列のテキスト入力Box背景を #F3F0F8 に変更。通常列の入力Boxは従来色のままとし、Library由来の値を識別しやすくした。

v3.3.5 - 2026-08-29
- Author Library管理画面の[このAuthorで絞り込み]を、メインシートFilter/Searchへ転送する機能からLibrary管理画面内のEntity検索へ変更。メインシートの検索・表示状態には影響しない。
- 管理画面上部にAuthor入力Box、[このAuthorで絞り込み]、[解除]を追加。CanonicalおよびAliasesを対象に大文字小文字を区別しない部分一致で一覧を絞り込み、Enterでも実行可能。1件だけヒットした場合はそのEntityを自動選択して編集欄へ表示する。
- 絞り込み中は「表示Entity数 / 全Entity数」を表示し、Libraryが肥大化した場合でも目的のAuthor Entityを管理画面内で探しやすくした。

v3.3.4 - 2026-08-29
- Author Library管理画面へ各Entityの「使用Files」件数を追加。現在読み込んでいるLibrary/Current List中でCanonical/Alias経由を含め同一Entityへ解決されるファイル数を表示。選択Entityから[このAuthorで絞り込み]を実行すると、authorCanonical完全一致の通常Filter/Searchとして同一Entityの全表記をメインシートへ絞り込む。
- Canonical / Alias名をAuthor Library内で一意にする衝突チェックを追加。別EntityのCanonicalまたはAliasと重複する名前をCanonical/Aliasesへ入力・貼り付けした場合はダイアログで使用先Entityを表示し、変更を適用しない。管理画面の保存も事前検証して部分適用を防止。
- Canonical以外のEntity情報（Aliases / authorX1-X6 / authorRating / authorDifficulty）がすべて空、またはRating/Difficulty=0になったEntityを自動削除。authorCanonicalはEntity未登録時のAuthorフォールバック表示を維持するため、CanonicalだけのEntityをユーザーが明示削除する必要をなくした。自動削除直後もUndo/RedoでEntityを透過的に復元可能。
- AuthorLibrary.json保存を一時JSONの書込・再読込確認後にos.replaceするatomic writeへ統一。通常のカード編集ごとにはバックアップを増やさず、正常なAuthorLibrary.jsonを読み込めたアプリ起動時だけ AuthorLibrary.bak1.json ～ bak3.json の3世代をローテーション保存する。壊れたJSONで起動した場合は既存バックアップを上書きしない。
- Author Library管理画面へ[バックアップから復元...]を追加。bak1～bak3の日時/Entity数を表示して選択復元でき、復元前の現在Libraryも安全用にバックアップへ退避する。
- Author Library管理画面へ[Library JSON保存...] / [Library JSON読込...]を追加。任意の場所へLibrary JSONを明示Exportでき、Import時はJSON構造とCanonical/Alias衝突を検証してから現在Libraryを置換する。Import前のLibraryは3世代バックアップへ退避する。
- [設定] > [全般仕様]の「Author Library（試験）」表記を「Author Library」へ変更し、管理画面を通常機能として整理。

v3.3.3 - 2026-08-28
- Author Entity Libraryの仮想列を拡張し、authorCanonical / authorX3 / authorX4 / authorX5 / authorX6 / authorRating / authorDifficultyを追加。既存のauthorAliases / authorX1 / authorX2と合わせ、通常列と同様に表示・編集・コピー/貼り付け・Undo/Redo・検索・ソート・Field Map・Viewer Column Info・Toolboxから利用可能。
- authorCanonicalはAuthor Entity登録済みならCanonical名、未登録ならファイル本体のAuthor文字列をフォールバック表示する仕様にした。%Author.Canonical%を追加し、Library未整備のファイルでも命名・Move target等の引数として常用可能。Canonical変更時はファイル本体のAuthorを書き換えず、別名への変更では旧CanonicalをAliasとして保持。
- パターン引数 %Author.X3%～%Author.X6% / %Author.Rating% / %Author.Difficulty% を追加。Author Rating/Difficulty引数は星表示ではなく0～5 / 0～3の数値文字列を返す。
- authorRatingを★5、authorDifficultyを★3のRating型仮想列として追加。メインシート/Field Mapでは星表示し、ToolboxおよびViewer Column Infoでは既存Rating/Difficulty同様の星入力UIを使用。数値検索・数値ソートにも対応。
- AuthorLibrary.json内部スキーマをv2へ更新し、Canonical/Aliases/X1～X6/Rating/DifficultyをEntity単位で保存。旧v1 JSONは不足フィールドをBlank補完してそのまま読込可能。
- Author X/Rating等のカード値変更ではCanonical/Alias解決インデックスを再構築しないよう最適化し、v3.3.2のカーソル移動軽量化を維持。
- [設定] > [全般仕様]のAuthor Library管理画面を拡張し、Canonical/Aliases/X1～X6/Rating/Difficultyを一覧・編集可能にした。
- Canonical変更のUndo/Redoで、旧Canonicalを自動追加したAliasも同じ操作単位で正確に復元/再適用するようにした。Viewerの旧設定は初回移行時にAuthor Entity列群をAuthor直下へまとめて配置。

v3.3.2 - 2026-08-28
- Author仮想列追加後に目立っていたメインシートの上下左右カーソル移動のもたつきを軽量化。矢印キーによる単一セル移動では、隠しTreeview選択更新からCanvas全体再描画が発生しないよう修正し、既存の行/列Fast Overlayだけで旧セル・新セルを更新するよう変更。
- Fast Overlay描画時に全フィールド値を毎回生成していた処理を廃止し、実際に描画するセルの値だけ取得するよう変更。非表示のauthorAliases/authorX1/authorX2もカーソル移動のたびに評価されなくなった。
- Author Entity解決結果をPdfItem単位でキャッシュ。Author文字列またはCanonical/Aliasインデックスが変化した場合のみ再解決し、同一Authorの仮想列参照コストを削減。
- 左右移動では同一ファイルのためRoot/Folder/Field Map追従を再実行しないよう変更。上下移動時のField Map追従は70msデバウンスし、キー連打中のツリー追従処理をまとめて実行するよう変更。

v3.3.1 - 2026-08-28
- Author Entity Libraryを試験実装。ファイル側のAuthor文字列は従来どおり保持し、Authorに従属するカード情報を Library/AuthorLibrary.json に保存する構成を追加。
- 仮想列 authorAliases / authorX1 / authorX2 を追加。初期表示はOFFで、[設定] > [列設定] / [ビューアモード]から通常列と同様に表示可能。
- 未登録Authorの仮想列へ初めて値を入力した時点でUUID付きAuthor Entityを自動生成。Canonical名または登録Aliasから同一Entityを解決し、同じAuthor Entityを参照する全ファイルでカード情報を共有。
- authorAliasesはセミコロン区切りで編集。表記揺れをAlias登録すると、その表記を持つファイルも同一Author EntityのauthorX1/authorX2等を参照する。
- 仮想列編集はPDF/Officeのdirty/保存対象にせず、編集確定時にAuthorLibrary.jsonへ即時保存。同一Entityの表示更新を行い、検索・ソート・Field Map条件に依存する場合はメインシートを再評価。
- 仮想列を通常列同様に、メインシート/Viewer Column Info編集、候補表示、Toolbox、Ctrl+C/V、複数セル貼付、Delete、Undo/Redo、ソート、通常検索、フィールド検索、Field Mapで利用可能にした。
- 複数セル貼付で同一Author Entityの同一仮想列へ異なる値を同時指定した場合は貼付を中止。Author未設定行への仮想列入力も禁止。
- パターン引数 %Author.Aliases% / %Author.X1% / %Author.X2% を追加。命名・Move target等の既存パターン処理からAuthor Library値を参照可能。
- [設定] > [全般仕様]に試験用Author Library管理画面を追加。Canonical/Aliases/authorX1/authorX2を一覧・編集可能。Canonical変更時は旧CanonicalをAliasとして保持し、元ファイルAuthor表記を自動変更しない。

v3.2.26 - 2026-08-28
- move_target列の候補表示で、長いパスが候補Box幅に収まらない場合は先頭側ではなく末尾側を優先して表示するよう変更。最終フォルダ階層を確認しやすくした。
- 候補値そのものはフルパスのまま保持し、表示上だけBox幅に収まる最大の末尾文字列へ切り詰めるため、候補選択時には元の完全なパスを入力する。
- メインシートのミラーボックス候補とViewer Column Info候補のmove_targetへ共通適用。

v3.2.25 - 2026-08-28
- 候補Popup内で上下キー等により選択カーソルを移動した際、Toplevel自体をwithdraw/deiconifyして全行再生成していた処理を見直し、同じ表示範囲内では選択行の背景色だけを更新するよう変更。
- 候補表示範囲がスクロールする場合も、既存Popupを表示したまま中身だけ更新し、ウィンドウ自体が一瞬消えるチラつきを抑制。
- 候補行高測定用ウィジェットを表示中Popup内へ一時配置せず、非表示の測定用Frameで計算するよう変更し、再計算時の表示揺れを防止。
- メインシートのミラーボックス候補とViewer Column Info候補の両方へ同じ非再マップ処理を適用。

v3.2.24 - 2026-08-27
- 候補Popupの下端自動縮小をさらに厳密化。候補行を実際のTkウィジェットとして仮生成し、枠を含む実要求高さを積算して、完全に収まる行だけを表示するよう変更。4.5件分の空きなら4件へ切り下げる。
- Windows DPI丸め等による最下段の部分見切れを避けるため、下端判定に小さな安全余白を追加。
- メインシート／Viewer共通で、入力欄の画面座標が未確定の瞬間に候補Popupがデスクトップ左上(0,0)へ表示される不具合を修正。
- 座標取得失敗時の x=y=0 フォールバックを廃止。入力欄が未配置・1px状態・不正なRoot座標の場合はPopupを非表示のまま短時間後に座標を再取得し、確定後にだけ表示するよう変更。
- override-redirect Popupは位置決定までwithdraw状態を維持し、生成直後に(0,0)が一瞬見える現象も防止。

v3.2.23 - 2026-08-27
- 候補Popupの1行高さを固定24pxで見積もっていたため、設定件数が増えるほど最下段が見切れる不具合を修正。
- 実行環境のTkフォント/DPIから候補1行の実際の要求高さを測定し、Popup本体も描画後の実要求高さで確保するよう変更。3/5/8/17件など設定件数どおり最終行まで表示されるようにした。
- 画面下側で候補Popupを開く場合の自動縮小判定を見直し、モニタ下端だけでなくPMTウィンドウ下端も考慮し、近い方までに収まる件数へ自動的に減らすよう変更。
- 上記修正をメインシートのミラーボックス候補とViewer Column Info候補の両方へ適用。

v3.2.22 - 2026-08-27
- [設定] > [表示]に[候補表示数]を追加。3～20件で指定可能とし、初期値を8件に設定。
- 候補表示数はポップアップへ同時表示する最大件数として扱い、候補生成・保持件数自体の従来5件上限を撤廃。Favorite、Worksheet候補、ファイル名パターン、Move targetパターンの候補総数を表示件数と分離。
- メインシートのミラーボックス候補とViewer Column Info候補の両方へ同じ表示件数設定を適用。
- 入力欄から画面下端までの空きが設定件数分に満たない場合は、その場で表示可能な件数まで自動縮小。設定値自体は変更しない。
- 候補総数が同時表示件数を超える場合も、上下キーで選択を移動すると表示窓が追従し、候補ポップアップ上のマウスホイールでも表示窓をスクロール可能にした。

v3.2.21 - 2026-08-16
- Viewer右上に常時表示していたページ番号を廃止し、下端ホバー時のシークバー中央直下へページ番号を表示するよう変更。単頁は p4/12、見開きは p4-5/12 形式を維持。
- Viewerのページ送り方向記号＜/＞を常時表示から1秒間の一時HUDへ変更。Viewerで新しいファイルを開いた時、およびViewer上でBindingを変更した時に次ページ側へ表示する。
- 最終ページ／最終見開きへ到達した時に、次ページ側へENDを1秒間表示するよう変更。終端状態でさらに次ページ送りを実行した場合もENDを再表示する。
- END表示は通常ページ送りだけでなく、seekbarおよびしおりから最終表示へ直接移動した場合にも適用。
- 通常時はページ番号・送り方向記号・ENDを表示せず、PDF閲覧領域をよりシンプルにした。

v3.2.20 - 2026-08-16
- ViewerのトリプルクリックZoom防止処理を中央Zoom判定領域だけに限定。
- 左右20%のページ送り領域および中央上/下のファイル送り領域では、3回目のクリックも通常クリックとして処理し、高速連続クリックによるページ/ファイル送りを妨害しないよう修正。

v3.2.19 - 2026-08-15
- Viewerホバー操作UIのレイアウトを調整し、下中央のシークバーを底辺から引き上げてファイル送り下端領域と重ならないよう改善。
- 右下の[単頁][見開]ボタンは従来サイズを維持しつつ、見開き時の[0]/[+1]/[Auto]をその上側へ縦に展開するレイアウトへ変更。
- 見開き調整ボタンのサイズを小さくし、ホバーUI全体の散らかりを軽減。
- ViewerホバーUI内で選択中の[単頁]/[見開]/[0]/[+1]/[Auto]ボタンをオレンジ色（#ffd966）で表示し、現在選択状態を視認しやすくした。

v3.2.18 - 2026-08-15
- Viewer操作UIを中央クリックによる表示切替から、Canvas下端15%へのホバー表示へ変更。下端15%へ入ると即時表示する。
- ホバー操作UIは左下にEsc、下中央にseekbar、右下に単頁/見開および見開き0/+1/Autoを配置。通常時は非表示。
- 下端15%または操作UIからカーソルが離れた時点で1秒タイマーを開始し、1秒後に操作UIのみ非表示。操作UI上へ戻った場合はタイマーをキャンセル。
- 下端ホバー時にしおりも表示。操作UIの1秒自動非表示ではしおりを残し、固定しおり表示が有効な場合は固定表示を優先。
- Viewer中央シングルクリックは操作UIを即時非表示にし、一時しおり表示も消去。固定しおり表示は維持。
- Escの常時表示を廃止し、他のViewer操作UIと同じホバー表示へ移行。

v3.2.17 - 2026-08-15
- 見開きAutoの初期表示を修正。ファイルを開いた直後はAuto表示を未判定状態から開始し、1ページ目＋2ページ目を通常のAuto条件で判定するよう変更。
- Viewer Canvasの中クリックにZoom ON/OFFを追加。左ダブルクリックとZoom処理を共通化し、同じ拡大率引継ぎ・クリック位置基準の拡大・Fit解除動作を使用。
- 中クリックは専用Zoom操作として扱い、左右のページ送り領域で押した場合もページ送りではなくZoom ON/OFFを実行する。

v3.2.16 - 2026-08-15
- 見開きモードのページ調整 0 / +1 / Auto に、ファイル単位ではなくViewer全体のデフォルト値を追加。
- [設定] > [ビューアモード] > [ビューア設定] に [見開きページ調整 デフォルト]（0 / +1 / Auto）を追加。初期値はAuto。
- 0 / +1 / Auto の手動切替は従来どおり現在ファイルだけの一時値とし、ファイル切替時・Viewerで別ファイルを開いた時に設定したデフォルト値へ戻す。
- 見開きページ調整デフォルトを通常Configおよびお気に入り設定の[ビューア設定]へ保存・読込できるようにした。

v3.2.15 - 2026-08-15
- Viewer見開きモードのページ調整に[Auto]を追加。0/+1と同様にファイル・キャッシュへ保存せず、その場限りの表示判定として扱う。
- Autoではページ送り時に現在のViewer Canvas実寸を使って単頁/見開きを動的判定。Canvas/Toolbox幅変更だけでは現在の表示構成を変えず、次のページ操作時から新しい画面サイズを反映する。
- Autoで次へ進む場合は現在表示の次ページを基準に、その次ページとの2ページ表示可否を判定。見開き可なら2ページ、不可なら基準ページ1ページのみ表示する。
- Autoで前へ戻る場合は現在表示の1ページ前を基準に、さらに1ページ前が存在して条件を満たす場合はその2ページを見開き表示し、満たさない場合は基準ページのみ表示する。
- Auto判定に縦横方向の不一致チェック、縦横比差上限、Fit比閾値を追加。デフォルトは「2ページ共通Fit / 基準ページ単頁Fit = 70%以上」「縦横比差 = 1.35倍以下」。
- [設定] > [ビューアモード] > [ビューア設定]にAuto Fit比閾値と縦横比差上限を追加し変更可能にした。通常Configおよびお気に入り設定ファイルの[ビューア設定]にも保存・読込する。

v3.2.14 - 2026-08-15
- v3.2.13で見開き処理本体は実装されていたものの、[単頁]/[見開]切替ボタンが実際のViewer Canvas描画ルートへ接続されていなかった問題を修正。
- [単頁]/[見開]ボタンを常時表示せず、Viewerのseekbar表示中だけEscボタン直下へ表示する一時UIへ変更。
- 見開きモード中は同じ一時UI内にページ調整[0]/[+1]を表示し、seekbarを閉じると切替UIも同時に非表示となる。
- 表示モードまたは0/+1を切り替えた際、seekbar表示中であれば再描画後も一時UIを維持し、続けて調整操作できるようにした。

v3.2.13 - 2026-08-15
- Viewerに単ページ/見開き表示モードを追加。常時表示ボタンから切替可能で、表示モードはConfigへ保存するよう対応。
- 見開きモードではBinding方向に応じて左右ページ配置を切替え、左綴じは若いページを左、右綴じは若いページを右に表示。
- 見開きモードにその場限りのページ調整 0 / +1 を追加。0 は 1-2 / 3-4…、+1 は 1 単独 / 2-3 / 4-5… で組み、ファイルやキャッシュには保存しない。
- 見開きモードのページ送りは基本2ページ単位に変更。矢印・クリックゾーン・マウスホイールのページ送りは現在の見開き単位で進む。
- 見開き表示は隣り合うページを共通倍率で合成してViewer領域へFit表示し、既存のダブルクリックZoomおよび120～300%倍率変更をそのまま適用可能にした。

v3.2.12 - 2026-08-15
- [ビューア設定]の[綴じ情報未設定ファイル]デフォルトを左綴じから右綴じへ変更。Config未登録時・無効値時も右綴じを既定として扱う。
- Viewer Canvasでトリプルクリックした際、3回目のクリックをZoom ON/OFF判定に使わないよう専用のTriple-clickハンドラを追加。高速3クリックで拡大モードが2回切り替わる問題を修正。

v3.2.11 - 2026-08-15
- Viewer拡大率ショートカットのデフォルトを + / - から Shift + + / Shift + - へ変更。v3.2.10既定値のままのConfigは新既定値へ自動移行。
- 設定ダイアログ[ビューアモード] > [Tag / Column Info]の一覧高さを16行から10行へ縮小。
- [ビューアモード]下部へ[ビューア設定]を追加。
- [Page切替え時に拡大初期化]を追加（デフォルトOFF）。ON時はページ移動時にFit表示へ戻す。
- [拡大率引継ぎ]を追加（デフォルトON）。ON時はFitへ戻った後やファイル切替後も最後の120～300%倍率を次回拡大へ引き継ぎ、OFF時は220%へ戻す。
- [マウスホイール機能]を追加（ページ送り / ファイル送り / 拡大時倍率変更、デフォルトは拡大時倍率変更）。拡大時倍率変更では拡大中のみ20%刻みで倍率変更し、Fit表示中はページ送りを維持。
- [綴じ情報未設定ファイル]を追加（右綴じ / 左綴じ、デフォルト左綴じ）。BindingがBlank/無効値の場合のViewerページ方向・seek表示に適用し、メタデータ自体は変更しない。
- 上記Viewer設定4項目を通常Configとお気に入り設定ファイルへ保存し、お気に入り読込設定に[ビューア設定]を追加して選択ロード可能にした。

v3.2.10 - 2026-08-15
- Viewer Modeのダブルクリックによる拡大／解除操作は従来どおり維持。
- 拡大中の倍率をFit=100%基準の120～300%にし、20%刻みで変更できるよう追加。
- ダブルクリックで拡大へ入る初期倍率は従来相当の220%。
- Viewer拡大率＋／－をショートカットキー設定へ追加。デフォルトは + / - で、Configから任意キーへ変更可能。
- ZoomショートカットはViewerの拡大中のみ倍率変更を行い、通常Fit表示中は拡大状態へ移行しない。
- ViewerのTag/Column Info等の文字入力欄にフォーカスがある場合はZoomショートカットを奪わず、+ / - を通常文字として入力可能。

v3.2.9 - 2026-08-15
- Folder MapのRoot行を通常時は薄黄緑色の背景で表示するよう変更。
- Root行がクリック絞込みの対象になっている場合は、従来の薄青色背景を優先して表示。
- Subfolder行の通常背景および選択ファイル位置の文字色表示は従来仕様を維持。

v3.2.8 - 2026-08-15
- [コピーモード]をRoot Toolboxの[ファイル移動]操作だけでなく、Move targetへの直接入力にも反映するよう変更。
- メインシートのミラーボックス入力、Viewer入力、従来のセル直接編集経路で、コピーモードON時はState [C]／保存時コピーとして扱う。
- パターン命名で[ファイル移動先]へ値を設定した場合も、コピーモードON時はコピー予約として扱う。
- セル貼り付けで[ファイル移動先]へ値を設定した場合も同じ判定を適用。
- 空欄およびTrash指定はコピーモードONでもコピー扱いにせず、従来どおりmove扱いとする。
- Move targetと内部move_modeを同じUndoトランザクションに含め、Undo/Redoで[C]/[M]状態が取り残されないようにした。

v3.2.7 - 2026-08-15
- コピーモードの[ファイル移動]対象ファイルは、メインシートStateを[M]ではなく[C]で表示するよう変更。
- 通常のファイル移動は従来どおり[M]表示とし、コピー予約と移動予約をState列で判別可能にした。

v3.2.6 - 2026-08-15
- Folder MapのRoot項目、Root ToolboxのCurrent List中のRoot項目、メインシートRoot列の右クリックメニューに「選択ルートを再読込」を追加。
- 「全ルート再読込」と同じバックグラウンド読込パイプラインを使い、選択したCurrent Root配下だけを既存一覧から除外して再スキャンするよう実装。
- 他RootはLibrary snapshotから保持し、Keep Hits等でワークシートを絞り込んでいる状態から実行しても無関係なRootを失わないようにした。
- Folder Map／Root ToolboxではRoot項目のみ実行可能とし、サブフォルダおよび[Temp]は対象外。メインシートRoot列では右クリックした行が属する正式Rootを対象とする。
- 選択Rootのフォルダが既に存在しない場合は、そのRootの登録行とCurrent Root登録を整理し、他Rootは維持する。

v3.2.5 - 2026-08-15
- メインシートでEnter／ダブルクリック／文字キーからミラーボックス編集へ移った際、文字入力を待たず選択セルを濃い青色の編集中表示へ切り替えるよう修正。
- 編集開始時の表示更新は対象行の軽量オーバーレイのみ再描画し、メインシート全体の再描画は行わない。
- ミラーボックス編集をEnter確定またはEscapeで終了した際も対象行だけを再描画し、濃青表示が残らないようにした。

v3.2.4 - 2026-08-15
- メインシート検索欄の文字入力を700 msデバウンス化。入力が続く間は予約済み検索をキャンセルし、最後の入力から700 ms後に検索を実行。
- Enterキーでは待機中の検索予約をキャンセルし、最新の検索内容を即時実行。
- 検索条件プルダウン、検索対象変更、検索履歴・Toolbox・Folder Map・Field Mapなど文字入力以外の検索操作は即時実行。
- 検索文字列・検索条件・検索対象が前回適用時と同一の場合は、不要な再検索・再描画を行わないよう変更。
- 700 msの入力待機中は現在の検索結果を保持し、別の画面再描画が発生しても入力途中の文字列を検索へ適用しないようにした。
- プログラム内部から検索欄を書き換える処理はデバウンスを発生させないよう整理し、検索クリア・Keep Hits等との競合を防止。

v3.2.3 - 2026-08-15
- ファイル名変更時、PDF以外のファイルにも .pdf が付与される不具合を修正。
- ファイル名変更では元ファイルの拡張子を常に継承し、文書形式を変更しないよう統一。
- メインシート直編集、Viewer編集、Toolbox入力、貼り付け、CSV取込、命名パターンの各経路を元拡張子基準へ統一。

v3.2.2 - 2026-08-15
- X3～X6の[設定] > [列設定] > [表示]のデフォルトをOFFに変更。
- X3～X6の[設定] > [ビューアモード] > [表示]のデフォルトをOFFに変更。
- [ビューアモード]のデフォルト並び順でX3～X6をX2の直下へ配置。
- v3.2.1以前の設定にX3～X6が存在しない場合も、ViewerではX2直下へ補完するよう調整。

v3.2.1 - 2026-08-15
- v3.2fをベースにX3～X6を追加。
- X3～X6をX1/X2と同等の編集・検索・Toolbox・Pin・命名パターン・CSV・起動キャッシュ・設定復元に対応。
- PDF Keywords内のPMT属性としてX3～X6の読込・保存に対応。
- Field Mapの選択フィールドにX3～X6を追加。
- このバージョン以降、各バージョンの修正情報をVERSION.txtへ追記して履歴として保持する。
