Produce content round-trip facts before report projection - #1637
Merged
Conversation
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
Finish the facts-first validation path under #1360 after #1635.
ContentRoundTripReporter::evaluate()produces authoritative findings;ContentRoundTripEvaluationsupplies status and the unchanged report projection.report()facade and evaluate once inHtmlCompilation.HtmlValidationOutcome::fromValidationFacts()now receives explicit status/findings for all three validators. Remove the last report-derived factory input and report-reading helpers.Full reporting remains enabled. No validator skipping, evidence-mode option, acceptance change or performance claim is introduced.
Verification
Baseline:
16f967e1ecdab102ec33bed384b71afdeb7a2e57.Candidate:
b3697768a06d66bf6e7d307e1e489d03da89df62.All ten final checks passed: PHP 8.2-8.5 package and WordPress integration suites, plus generic visual parity tools, and solved-site promotion.
transform_duration_ms.245205a2e962e48887b6b93b53408e4c52b60328dbdf682ec19e678efcad261d; comparisons preserve binary bytes and array order through PHP serialization.Reproduce
From
php-transformerwith matching dependencies and sufficient PHP memory inherited by child commands:composer test REQUIRE_WP_TESTS=1 WP_TESTS_DIR=/path/to/wordpress-tests composer test:wordpress-integrationThe full-corpus comparison command in #1627 applies unchanged to the baseline and candidate above. The checked-in consumer inventory documents the final facts-only outcome boundary.
AI Assistance
OpenAI GPT-5.6 Terra via direct OpenCode implemented and lab-tested the change. GPT-6 Astra via OpenCode coordinated and reviewed the producer/report data flow, independently reran the full corpus/artifact comparison, and prepared this PR under Chris Huber's direction. No release or deployment was performed.