initial commit

This commit is contained in:
2026-09-21 13:41:40 +09:00
commit 855c7328df
411 changed files with 85352 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
# 原設計との受入照合
2026-09-20。基準は変更していない [設計書11件](design/00-guide.md)。個別試験の成功と製品全体の完成を区別する。実行結果とビルドの対応は [検証記録](VALIDATION.md) に置く。
## 要件の追跡
2026-09-20追記:[第2PDFium候補](../tests/results/pdfium-intent-context/README.md)を専用ビルドとUbuntu validation4へ統合した。旧試験の `shading-pattern-inherit` 8点の期待値は誤りだったため、旧648点の成功をその規則の根拠にしない。訂正版600点・元48点・追加324点はArch・Ubuntuで成功し、新ビルド各24群、上流1,979試験も成功した。SoftMask/tiling専用試験、Ubuntu配布境界13試験、2回のdeb生成一致、SDKなし既存VMの12条件起動・削除、PDF性能4条件と約1GBの負荷試験まで実施済み。以下の第1候補・元依存版の未完了記述は当時の履歴である。T01/G-RENDER全体の承認と対象実機・Windows・公開配布の最終受入は未完了のまま。
2026-09-20追記:[ICC変換指定の修正候補](../tests/results/pdfium-intent-build/README.md)では、固定ソースへのパッチを再適用確認し、隔離ビルドの648点・上流1,976試験・DocView全22群が成功した。製品依存とUbuntuパッケージは未変更で、T01/G-RENDERの完成判定は進めない。比較先のshading pattern RI指定の差、候補のUbuntu・配布統合、SoftMask/tiling専用の画素試験、人による承認は残る。
2026-09-20追記:[ICC CMYK追加比較](../tests/results/cmyk-lut/README.md)で、文書の相対的測色指定に対して固定PDFiumが知覚的変換を使う差を確認した。Arch・Ubuntu各48点中30点が許容差を超えた。原因は照合済みだが、T01/G-RENDERのこの色一致条件は未達である。変換指定への対応または明示的な互換性判断、検出可能な制約の通知を未完了事項に追加する。
2026-09-20追記:[Qt告知補足版](../tests/results/qt-notice-supplement/README.md)はWebM/WebPのPatent本文を固定ソースと照合してUbuntu debへ追加した。梱包8試験×2環境、deb再現性と全2,016ファイル検証、SDKなしVMでの起動12条件・install/remove/purgeが成功。本体と同梱ランタイムは同一である。全Chromium告知・対応ソースの完成、Windows/物理環境/人による描画承認の受入を済ませたとはしない。
2026-09-20追記:[実ファイル選択の追加試験](../tests/results/portal/README.md)で特殊なファイル名のHTMLが読込中になる問題を発見・修正した。新しい本体ではArch・Ubuntuの全22群が成功。以下の過去の性能・GPU・IME等の証拠は固定した旧版の範囲に限り、現行本体への再実行は別に扱う。
修正後の[性能10条件と追加負荷](../tests/results/portal/performance-suite/README.md)も再実行した。新規プロセス300回・同一プロセス内300回・移動2,500操作、約1GB/5,000ページPDFが成功し、測定した参考予算の超過は0だった。基準機・対象OS・実フレーム提示の受入条件は変更しない。
| 原要件 | 現在の証拠 | 最終判定に残るもの |
|---|---|---|
| R01 PDF描画、R14 原本を編集しない | 本番の隔離PDFWorker、独立レンダラー比較、原本ハッシュ、注釈・フォーム・日本語・幾何試験 | G-RENDERの承認画像、対象OS、代表制作ソフトの互換性判断 |
| R02 HTML、R03 HTML ZIP、R04 EPUB | 本番WebEngine/ArchiveWorker、相対資源・spine・RTL・縦書き・固定見開き・入口選択試験 | 両OSのG-WEB・実ディスプレイ。遅延レイアウトと実読取量の回帰はLinuxで確認 |
| R05 キー操作、R08 最小UI、R15 GUIのTUI風操作 | InputRouter、設定、QMLの実キーイベント試験、パネル表示/フォーカス試験 | X11 US/JP XKBとX11/Wayland IBus/Mozcは追加検証済み。物理入力・Windows IME・対象ディスプレイ |
| R06 見出し、R07 目次 | PDF構造/内部宛先outline代替・Form所有元、DOM/ARIA、EPUB nav/NCX、抽出とGUI移動、索引loadingの待機表示・失敗した見出し章境界の破棄 | 特殊構造の既知制約、対象OSのG-HEADINGS |
| R09 拡張性 | [接続契約の採用記録](adapter-contract.md)、能力スキーマ、操作と解析プロセスの分離 | 形式追加の実装時は同契約と取消・位置のレビューを適用 |
| R10 ファイル設定 | TOMLの有限スキーマ、一括適用、未知キー/型/衝突/不正時の保持、再読込試験、日本語の行・原因案内 | 対象OSの実入力系 |
| R11 書籍の応答性 | 冷起動/再open各30回・各125操作、500ページ/章、約1GB/5,000ページ、cache上限・旧応答破棄・メモリ圧迫対処 | 基準機・GPU/60Hzと長時間負荷 |
| R12 Linux/Windows、R13 OS配置 | ArchとUbuntu 24.04専用VMのX11/Wayland、ArchのAMD OpenGL、XDG・専用保存先、Windows Known Folders/LPAC/pipe等の実装 | Windows nativeビルドと試験、対象OSのGPU/IME、製品配布の実機検証 |
補助機能T-P01〜04、安全試験T-S01〜05、通常受入T01〜21の個別範囲は [検証記録の対応表](VALIDATION.md#受入idとの対応) を参照する。外部から追加環境は提供されていないが、このPC内にUbuntu 24.04専用KVM環境を作り、全22群・Wayland GUI・配置後起動を[検証した](../tests/results/ui-final/ubuntu/README.md)。生成文書を使うことは利用者が指定済みであり、実書籍がないことを理由にローカル試験を止めない。
## 今回の照合で見つけたローカル項目
| 項目 | 原文 | 対応・必要な証拠 |
|---|---|---|
| 現在位置と目次選択を別表示 | [04 §2.2](design/04-ui-navigation.md#22-閲覧画面) | 現在節の記号と選択枠を分け、選択のみで本文が動かないGUI試験。折りたたみ・文書切替・古い応答も確認する |
| 現在PDFページとズーム中心 | [04 §5.1](design/04-ui-navigation.md#51-pdf) | 中央線のページ/余白の距離/同距離の前ページと、保存用先頭位置を分離。ズーム中心のPDF座標保持を検証する |
| ページ精度・回転見出しの反復移動 | [04 §5.4](design/04-ui-navigation.md#54-見出し移動の共通定義) | `navigationY`で表示上の前後を判定。ページ先頭を前操作で再選択しないこと、回転時の実GUI移動を試験 |
| ICC入力 | [G-RENDER](design/09-decisions-roadmap.md#4-実装前の技術ゲート) | 自作RGB ICCの54点と独立比較。元依存版のCMYK CLUTで48点中30点の差を再現し、第2候補で48点・訂正済み状態600点・SoftMask/tiling等324点が各OSで成功。校正済み印刷色や人による描画承認は未完了 |
| Web rendererの応答監視 | [07 §3.2](design/07-security-errors.md#32-上限の初期提案) | RSSだけでなく有限deadlineの応答監視、実renderer停止、取消/世代/対象identity/2viewを検証する |
| メモリ圧迫の段階的縮退 | [02 資源管理](design/02-architecture.md#キャッシュと資源管理)、[06 設定](design/06-config-storage.md#設定項目) | OSの空き監視、先読み停止→不可視cache回収→解像度抑制通知→処理停止と回復。[契約](memory-pressure.md)と注入試験 |
| 依存告知・配布アーカイブ | [09 配布](design/09-decisions-roadmap.md) | 同梱とシステム依存、実版・由来・license・対応sourceを区別したmanifest。再現可能な開発版パッケージ・サイズ・解凍起動の証跡 |
| XHTMLの章内見出しと目次 | [03 EPUB](design/03-formats.md)、[04 見出し移動](design/04-ui-navigation.md#54-見出し移動の共通定義) | 実XHTMLでnative見出しの小文字タグ名と名前空間付きepub:typeを扱う。著者目次と章内見出しを区別し、測定時も実索引の種類・件数を記録する |
| 原本の識別と位置保存 | [06 読書状態と履歴](design/06-config-storage.md#読書状態と履歴) | 全形式のopen時identityを保存時に照合し、閲覧中に置換された新原本へ旧位置を転用しない。通常openでの復元不能通知も実ファイルで検査 |
| 目次の準備中表示 | [02 開く処理](design/02-architecture.md) | DOM索引が空でも能力loadingなら要求を保持し、読み込み中のパネルを表示。索引確定後の表示までGUIで検査 |
| PDF見出し代替の内部宛先 | [04 §5.1](design/04-ui-navigation.md#51-pdf) | 外部・禁止アクションを代替見出し候補から除外。外部だけの場合の能力と、混在時の次/前移動をGUIで検査 |
| Webリンクと章境界の取消 | [04 入力・見出し移動](design/04-ui-navigation.md) | EscでDOMリンク選択とfocusを解除。成立した章移動にだけ最初/最後の見出し指示を付け、失敗後の通常章移動へ残さない |
| PDF情報の省略通知 | [03 PDF](design/03-formats.md)、[07 エラー](design/07-security-errors.md) | 注釈本文長・ページ内件数・CBOR情報予算超過を通知し、取得済みprefixを保持。本文省略でも注釈を一覧から消さない |
| 一時入力とダイアログの焦点復帰 | [04 入力状態](design/04-ui-navigation.md) | 目次・ページ一覧からのコマンド取消、help/file dialog終了後は有効な元領域へ戻す。明示的な本文移動と非表示領域へのfallbackを検査 |
| Web倍率の表示と位置保存 | [04 ステータス](design/04-ui-navigation.md)、[06 状態](design/06-config-storage.md) | HTML/ZIP/EPUBの倍率を表示・保存・再復元。fixedはfitの基準と論理倍率を分け、25〜500%の境界を検査 |
| 開く操作の失敗案内 | [04 失敗表示](design/04-ui-navigation.md) | 失敗した対象名・有限の分類・対処を表示し、表示中の旧文書と区別して文書情報へ試行内容を保持する |
| 日本語初期表示と翻訳資源 | [01 対象環境](design/01-requirements.md) | tr/qsTrのTS抽出・QM埋込・QTranslatorとQt標準部品の日本語資源を接続。英語localeの実Qt Quick Dialogを検査。OSネイティブdialogはOS言語に従う |
この表のうちXHTML修正までの履歴はLinux統合19試験群(2026-09-19、162.00秒)と、その時点のPDFWorkerに対応する6組の比較で確認した。後から加えた原本同一性・目次待機・PDF候補・Web取消等は[追加回帰](../tests/results/completion-regressions/controller-state.md)で確認した。翻訳試験を含む[前回20試験群](../tests/results/completion-final/ctest/tests.xml)はすべて成功した(165.61秒)。[描画6系列・実時間watchdog・再現可能な開発パッケージと6条件起動](../tests/results/completion-final/README.md)も再検証した。T20の[10条件と負荷の再測定](../tests/results/completion-final/performance-summary.md)も完了し、[検証記録](VALIDATION.md)の現行版と履歴の区別に従う。旧結果を現行バイナリーへ読み替えない。
今回のUI追加修正は[最新の22群のX11統合](../tests/results/ui-final/README.md)で検証した。Waylandの6条件起動と全GUIも成功した。見開きresizeの初回2失敗は試験側の確定待ちを修正し、製品の描画処理は変更していない。修正前の本体の[性能10条件と操作負荷](../tests/results/ui-final/performance-summary.md)、[約1GB・5,000ページ](../tests/results/ui-final/stress/README.md)も成功した。以下の20群・従来性能測定は修正前に固定したビルドの結果であり、最新本体へ読み替えない。
## 追加測定と個別の検証結果
1. **T20の測定範囲** — [08 §3.3](design/08-performance-tests.md#33-再現可能な測定手順) は開始時・最大・文書close後の本体/プロセス群RSS、同一文書10開閉、見出し/章の固定100操作、連続scrollフレーム間隔、描画待ち数を要求する。測定経路を拡充し、アプリキャッシュなし30回、同一プロセス30回、29同条件開閉と最後のclose、各125操作系列、240scroll、描画待ち/旧要求破棄を記録する。別の固定操作列で長押し・遠距離ジャンプ・resize・異文書切替・取消を確認する。実scanoutとの結合と基準機判定は未実施。
2. **遅延フォント・画像による再配置** — [03 EPUB](design/03-formats.md) の「レイアウト確定後に同じ論理位置へ再配置」について、load成功時/設定時/resizeの一度の復元後にフォントが届く場合を実DOMで再現し、位置保持と取消を確認する。遅延資源の実読込み、横/縦の文字位置保持、新しい移動を優先する回帰を実装した。連続scroll、native anchoring、poll先行、クリック後の画像到着も追加し、Web全34ケースが成功した。
3. **圧縮率の実入力量** — [07 §3.2](design/07-security-errors.md#32-上限の初期提案) の200倍判定は入力消費量/出力量を指定している。ZIP索引のcompressed sizeだけの判定を補い、source callbackの実read量を各展開に計数する修正を実装した。5圧縮方式のpadding資料、正規6方式、本番sandbox workerを含むArchive全76ケースが成功した。実出力256MiB/文書2GiBの別上限があることを、この比率の検証の代用にしない。
4. **メモリ圧迫** — 検出/遷移27ケース、Canvas21ケースとDPR2、GUIでの段階縮退・停止・回復・原本保持を検証。実RAMを枯渇させず、同じ本番経路へ有限sampleを注入した。
5. **初期画面サイズ** — 配置後の実測で200%時の画面超過を検出し、利用可能な画面へ収める修正を実施。配置後/別展開先の6条件で寸法と表示を確認した。
6. **XHTMLの見出し** — 小型EPUBの性能試験を契機に、HTMLとXHTMLのタグ名表現の違いでnative見出しが欠落する問題を実DOMで再現した。見出しと目次を修正し、計測側の著者目次による代用も除いた。[修正前の失敗記録](../tests/results/performance-before-xhtml-fix/README.md)は保持し、旧EPUBの見出し系列は最終版の証拠に使わない。
7. **章末の重複移動先** — 章末で同じスクロール位置へ収まる2見出しを交互に再選択する問題を横書き・縦書きで再現した。実移動がない候補をまとめ、EPUBの次章境界へ進めるよう修正した。元の500章資料を保持して章を跨ぐ往復を検証し、性能用には全13見出しの移動先が異なる別版を生成した。[回帰記録](../tests/results/xhtml-headings/README.md)
8. **PDFiumの追加告知** — 固定providerの収集処理と実libraryを調べ、libc++/libc++abiの2告知が従来の15件に含まれないことを確認した。固定ソースの全文と出典をinstallへ追加し、版・library・本文の不一致を拒否する。[新パッケージ](../tests/results/linux-development-package/README.md)は553ファイルを照合し、独立生成2回のbyte一致・6条件の別展開先起動を確認。packaging 12件とprovenance 23件の限定試験も成功した。この告知追加時点では全3実行ファイルとPDFiumのバイト列は従来版と同一だった。後続の製品修正後のバイナリー一致を示す記録ではない。[現行パッケージ](../tests/results/completion-final/linux-development-package/README.md)は別のhashで2回生成一致・6条件の起動を再確認し、[由来台帳](../tests/results/completion-final/dependency-provenance/README.md)も更新した。
9. **高解像度画像・高密度ベクターの取消** — [追加GUI試験](../tests/results/heavy-pdf/README.md)では600dpi相当のRGB画像と60,000個の半透明パスを生成し、独立復号と実ウィンドウ画素を照合した。実open/render RPCが未完の状態で取消・文書切替を行い、原本不変、旧session回収、通常解像度とGUI応答の維持をArch/Ubuntuで確認した。単一生成資料での機能検証であり、長時間・基準機の性能受入ではない。
10. **実IMEと日英配列** — [Ubuntu X11のIBus/Mozc試験](../tests/results/ime/README.md)で、検索・コマンド入力の変換確定、変換候補/未確定入力のEsc取消、j/k・数字の入力保護、通常操作への復帰を検証した。US pc105/JP jp106のXKBとXTestキー番号で記号操作を確認。[WaylandのQt+IBus D-Bus経路](../tests/results/ime/WAYLAND.md)も実変換と入力保護が成功。物理キーボード・Windowsは未実施。
11. **固定PDFiumのソースと配布ヘッダー** — [Git snapshot収集](../tests/results/source-archives/PDFIUM.md)で、本体と27依存・追加gitlinkの計29件を保管。Git objectと全アーカイブ内容を検査し、先行原文31件・公開ヘッダー24件・告知15件が一致した。Linux3件/Windows4件のproviderパッチは専用コピーに適用成功。ビルドの再現、Windows実行、全ビルド入力の回収とは区別する。
12. **Ubuntu SDK内のChromium告知** — [SBOM本文抽出](../tests/results/source-archives/QT-SDK-NOTICES.md)で、129entry・105本文をQt source原文と照合した。元SDK archiveのファイルhashをSBOM67件・Ubuntu実行時83件と一致確認。元SBOMの参照ID不整合1件と本文なし2部品を記録し、生成器のskipも保持した。SDKの全告知やArchの実GN構成の完全性を示すものではない。
13. **Ubuntu用debの配置と回収** — [ローカル検証パッケージ](../tests/results/ubuntu-package/README.md)は2回生成でbyte一致し、全2,009ファイルを照合した。元SDK・build/installを隠した通常ユーザーでX11/Waylandの12条件がReadyとなり、install/reinstall/remove/purge、AppArmorの登録・解除、設定と文書の保持probeが成功した。さらに[新しいUbuntu OS](../tests/results/ubuntu-package/clean-vm/README.md)でも宣言依存の解決、12条件起動、remove/purgeが成功した。公開配布条件と実機desktopの受入は残る。
## 外部条件を要する受入
UbuntuのOSファイル選択は、[実XDG/GTK portal](../tests/results/portal/README.md)のX11/Wayland計10ケースで追加検証した。生成資料の日本語・空白・予約文字を含む名前を用い、取消・4形式の選択・焦点復帰を確認。仮想入力とheadless描画の証拠であり、以下の物理環境の項目は残る。
- Windows 11 native、物理入力・Windows IME・対象OSのGPU・物理表示、公開配布条件と実機desktopの検証。Ubuntu 24.04は専用VMのXvfb/Swayで全22群、100%・200%を含む起動、配置後起動を確認済み。Archでは[AMD OpenGLのGUIと6条件起動](../tests/results/ui-final/wayland/GPU-VALIDATION.md)も成功したが、対象OSのGPU・物理表示の受入とは区別する。
- 本番期限の[現行実時間watchdog](../tests/results/completion-final/worker-deadlines/README.md)は成功しているが、基準機の性能・メモリ・実フレーム提示は未判定。仮想X11の開発機数値は参考値に限定する。
- 実際の配布範囲に対する対応source・告知・ライセンス条件の最終照合。[台帳](DEPENDENCY-PROVENANCE.md)と[ソース対応記録](../tests/results/source-correspondence/README.md)で、告知追加版の553ファイル、PDFiumの15+2告知、toml++組込コード、Qtの動的リンク、146件の同版キャッシュmetadata、主要4 recipeと1,632実ファイルを照合した。[現行アーカイブの由来台帳](../tests/results/completion-final/dependency-provenance/README.md)も別に生成し、2回一致を確認した。[Qt一式とtoml++のsource取得・照合](../tests/results/source-archives/README.md)は後続で完了した。独立PDFium等を含む完全な対応source・全linked入力・全Chromium告知は未完了。収集状況と実際の配布条件から生じる必要性の判断を区別する。DocView自身の公開ライセンスは未選定であり、ローカルアーカイブ生成は公開配布を意味しない。
- G-RENDERで指定された正解画像の人による承認。[現行21組の比較画面](../tests/results/completion-final/render-review/index.html)に確認項目・既知の差分・原本/画像ハッシュをまとめた。独立Popplerとの19組と同一PDFiumのTTC/TTF比較2組を区別する。生成時の期待値やエージェントの画像確認だけで承認済みとは記録しない。
保存外観のない非Text注釈のNoZoomとannotation所有OBJR/StmOwnは検出時に制約を示す。PDFの情報上限による省略も黙って欠如として扱わず通知する。原設計は検証済み互換範囲と明示制約の管理を許すため、これらを任意PDFへの無制限な対応義務とは読み替えない。一方、対象OSや承認ゲートの不足を「既知制約」で合格に変更しない。