Repository navigation
fix(webfetch): unify source validation and bound browser capture - #61
Open
lanyue-llk wants to merge 16 commits into
Open
lanyue-llk wants to merge 16 commits into
lanyue-llk wants to merge 16 commits into
Conversation
…-webfetch-source-capture
…-webfetch-source-capture
…-webfetch-source-capture
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.
Change
Reference checks and capture completion depended on the task family even when the task declared the same requirements. A stable record contract bypassed an explicit live-reference policy, and body/pattern references were rejected merely because no literal fact list was present. During real source collection, five browser workers also stalled beyond their declared page timeout.
The shared Web Fetch pipeline now:
live_exactpolicies across task kinds and contracts, rejecting missing required live text before provider calls. Existing frozen policies remain frozen.noscriptandtemplatefallback markup from painted-text observations. This fixes actual CSS/tracking text contamination observed on Amazon; DOM-mode observations preserve raw contents.flowchart LR A[Task-declared source scope and requirements] --> B[Independent HTTP and browser capture] B --> C{Capture completed within budget?} C -->|Yes| D[Shared source and content validation] C -->|No| E[Retain acquisition failure and continue batch] D --> F[Freeze qualified input before provider calls]The runtime's unused case-ID-specific fact formatter is retired in the companion library PR; historical fixtures now own their old formatting locally. No website-specific collector, scorer or repair script is added. Main-content authoring guidance explains why headings, footer text and field names alone cannot establish body coverage.
Validation
Depends on #56. Companion acceptance change: lexmount/lexbench-webfetch#8. Per-case main-content input revisions are tracked there and remain incomplete; this PR fixes the shared capture and validation boundaries needed to qualify them.
Base integration
Includes #56 through
e57c1059, with LexBench pinned to071f8b68. The shared method catalog, external instances and localized task guides remain the report owners. After synchronization, 52 capture/freeze/observation tests and three subtests passed; 26 observation tests passed with real Chrome. The single missing historical-input fixture is separate from the browser controls. Static and instance-boundary gates passed.