Skip to content

L02-05: Prove Editor and headless receipt adapter parity - #193

Closed
mberrys wants to merge 2 commits into
codex/issue-22-document-facade-statefrom
codex/issue-26-receipt-adapter-parity
Closed

mberrys wants to merge 2 commits into
codex/issue-22-document-facade-statefrom
codex/issue-26-receipt-adapter-parity

Conversation

@mberrys

@mberrys mberrys commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Both presentation adapters now consume the same admitted DocumentFacade snapshot and Core inspection receipt. The Editor renders the receipt's verdict, coverage, limitations, finding IDs and available intents; the headless adapter emits matching text from the same typed projection. No adapter parses a report or reduces a verdict.

Closes #26.

Stacked on #189 at 309888d641efd0b34d5d44bf2ae8b3b6179eb523, as approved. Merge #189 first; this PR's diff contains only #26.

Changed files: the Interaction presentation header, Editor host/QML and its smoke mirror, facade tests, product smoke/fixture helper, and required change/evidence fragments.

Validation source: 52fa0d012a734592679a88583e78ab3710b6a79c.

  • Final model proof: 51 cases passed, none failed/skipped.
  • Shared Pass/Fail/Incomplete/Error fixture comparisons passed in the Windows rendered smoke. The Incomplete fixture deliberately has a legacy Pass result but an Incomplete Core receipt; adapters preserve Core's stricter answer.
  • Tests cover absent/running snapshots, stale revision and pending output, selected finding and plan-intent availability.
  • Exact-commit Windows screenshot/text capture passed for all four verdicts, with visible-bounds assertions and visual inspection of the Incomplete screenshot. The complete mapped check-change gate passed on this commit: all 20 mapped test targets, affected builds, formatting, static analysis, source guards and architecture contracts.

Commands, with the existing approved temporary build and Qt/MSVC runtime:

python scripts/agent/check-change.py --base 309888d641efd0b34d5d44bf2ae8b3b6179eb523 --build-dir "$env:TEMP/loop-issue24-build" --report "$env:TEMP/loop-issue26-final-check-change-52fa0d01.json"
$env:QT_QPA_PLATFORM = "windows"
$env:QT_QUICK_BACKEND = "software"
$env:LOOP_PARITY_SOURCE_SHA = "52fa0d012a734592679a88583e78ab3710b6a79c"
& "$env:TEMP/loop-issue24-build/usr/bin/ProductQuickAccessibilitySmoke.exe" --receipt-parity "$env:TEMP/loop-issue26-parity-final-52fa0d01"
& "$env:TEMP/loop-issue24-build/usr/bin/UnitTestsDocumentFacade.exe" -o "$env:TEMP/loop-issue26-model-final-52fa0d01.txt,txt"

Scope/limits: fixtures are synthetic Core evidence bound to a real opened one-page PDF, not PDF inspection qualification. This proves adapters over admitted snapshots; migrating existing preflight job orchestration to the new facade lifecycle is outside this issue. Linux/macOS screenshots and assistive speech were not tested. The hosted CI/CodeQL workflows target dev/unstable/stable and are not scheduled for this stacked base; they must run after the parent merges and this PR is retargeted. Native Windows capture is used because the offscreen platform produced missing-font boxes.

Quality review: the full diff was reviewed for duplicated verdict/policy logic, redundant checks, explanatory comments and unnecessary wrappers. Shared projection code reads the accepted receipt and existing facade intent predicates; adapter-specific code only changes presentation shape.

Exact receipt SHA256 values from the final Windows capture (each matches its saved canonical receipt JSON):

Verdict Receipt SHA256
Pass 90e286f4bb5ef28368bae09254257023f27cd252c6825731d08350bbb212119e
Fail cc7bfd92363a7651fe60c7f0db75f1a2bf3ff52e43f341b02ddcb181ae32c0b5
Incomplete 47a0aef7c5549e14dc3d47c3ac6e20d9d3928940bd81978f268d18e7b7546638
Error 0d521dc0399c7421f27b2b815fa64de16a98e8e05a7c7385b2927b53bbe2c5e4

Inspected smoke executable SHA256: B17064AB33B3C1133E14070C7488E1CCAD5C259A758B18AC4047FC4D22F00BA6.
Local artifact directory: %TEMP%/loop-issue26-parity-final-52fa0d01; contains adapter-parity.json, the PDF fixture, four canonical receipt JSON files, four headless text files and four Editor PNG captures. Model log: %TEMP%/loop-issue26-model-final-52fa0d01.txt.

@mberrys
mberrys marked this pull request as ready for review October 3, 2026 06:17
@mberrys
mberrys deleted the branch codex/issue-22-document-facade-state October 3, 2026 15:46
@mberrys mberrys closed this Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant