L02-02: Navigate stable findings to report regions - #190
Merged
Merged
Conversation
mberrys
marked this pull request as ready for review
October 3, 2026 00:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements L02-02 / #23: selecting a current, stable preflight finding navigates the Quick canvas to report-owned page/region bounds (when available), even when no PDF object identifier exists. The inspector exposes the finding's document revision, effective profile, evidence IDs, coverage scope and explicit targeting limitations, without granting the UI preflight/verdict authority.
Closes #23. Target:
dev. Head/source under test:bd3d5de8678132dcc348a1b984ab600d91044c8c; recorded base:dce5a806a58d757762abeaf8d9947ca5308e687a.Changes
FindingNavigationRequestandFindingNavigationResultwith report-context identity: document key/revision, effective profile digest, evidence IDs, coverage scope and region bounds.RegionTargetednavigation. Where report bounds are finite/usable and the declared capability permits it, center and zoom with the existing context margin, distinguishing region navigation from object targeting. Findings with no object ID can still target their region.Files:
findingnavigation.{h,cpp},preflightfindingsmodel.{h,cpp},inspectormodel.cpp, focused tests (tst_findingnavigationtest.cpp,tst_p4s9interaction.cpp),tools/ProductQuickAccessibilitySmoke/main.cpp, andchanges/codex-issue-23-finding-navigation.{md,evidence.yaml}.Tests and evidence
Windows 11 / Qt 6.11.1 / MSVC 2022 Release / source
bd3d5de:cmake --build build --config Release --target UnitTestsFindingNavigation, thenbuild/usr/bin/Release/UnitTestsFindingNavigation.exe: 9 QtTest cases passed. Coverage includes region centering/context margin, report profile/revision/evidence binding, unusable bounds, unrelated evidence, and replacement where revision counters are reused under a different document identity.ProductQuickAccessibilitySmoke.exewithQT_QPA_PLATFORM=offscreenandQT_QUICK_BACKEND=software: passed using a synthetic two-pagefinding-region.pdf, bounds100,200,60,80, evidencenavigation-fixture-evidence, profileeffective-profile-fixture, and identical-bytereplacement.pdfwith a new document identity. The smoke checks the canvas/inspector before and after rejecting the old finding. Automatic-backend smoke also passed but reported software on this offscreen host; this is not native document-navigation qualification.python scripts/agent/check-change.py --base dce5a806a58d757762abeaf8d9947ca5308e687a --head bd3d5de8678132dcc348a1b984ab600d91044c8c --head-branch codex/issue-23-finding-navigation --build-dir C:/Users/micha/.codex/worktrees/adcf/loop2/build: passed from a clean tracked checkout, including formatting, analysis, architecture/proof contracts, affected builds and all 30 mapped test executables.%TEMP%/loop-issue23-head-proof.json,%TEMP%/loop-issue23-head-software.log,%TEMP%/loop-issue23-head-auto.log. The primary worktree's unrelated nested checkouts were preserved; the configured build consumed the identical committed source.Boundaries and review
The smoke constructs an accepted synthetic report context; detection of real defects and report correctness remain in upstream preflight tests. The offscreen software lane provides Quick integration coverage, not native GUI-renderer qualification. Navigation uses the existing viewport and overlay components, not a parallel renderer or report authority.
Quality review: Guards reject non-finite geometry and unrelated evidence; document identity plus revision prevents an old finding from becoming current after replacement. The implementation adds no new independent interpretation of preflight checks.