Repository navigation
Complete client CWV loading, reservation and GPT initial delivery - #1460
Draft
ChristianPavilonis wants to merge 15 commits into
Draft
ChristianPavilonis wants to merge 15 commits into
ChristianPavilonis wants to merge 15 commits into
Conversation
4 tasks
Defer supported GPT runtime with early APIs and CSP-safe synchronous fallback. Add explicit responsive reservation, measured browser contracts, framework coverage and validation records for #854.
12 of 15 tasks
Keep issue 854 open: functional checks pass, but warm-cache paint and ad startup regress and dedicated real-GPT inventory is unavailable. Record all 200 measurement rows and exact-byte reuse proof. Canonicalize artifact fingerprints and make interrupted live runs fail without retaining stale success.
Collaborator
Author
|
Pushed 24a438e and updated the description and validation records. The matched tests expose a warm-cache regression: throttled mobile FCP/LCP rises from 348 to 756 ms and the visible-ad estimate from 550 to 1,008 ms, despite genuine runtime cache hits. Local functional checks pass, but that performance issue and missing dedicated real-GPT/GAM inventory prevent closure. This stays in draft without an issue-closing keyword or review requests until those blockers are resolved. The validation record and all 200 measurement rows are linked in the description. |
Address the four hosted CodeQL fixture findings without suppressions. Connect using trusted origin-map fields, avoid reflecting request data in tests, and compare parsed configuration settings. Node82 and cold4/warm32 browser checks pass; emitted configurations and production assets are unchanged.
Adopt the approved synchronous unified loading and no-fallback outage contract in the full CWV and publisher acceptance consumers. Preserve registered trace correlation, bind exported JavaScript to current sources and selected runtime bytes, invalidate stale acceptance journals, and verify marker visibility across frame boundaries. Record passing scoped verification and byte-checked measurement reuse without relabeling the failed controller attempt or claiming real-GPT acceptance.
Keep pending publisher registrations in the same navigation generation on explicit page-bids retries, while real pathname changes still retire old work. Cover the failure and recovery through source and browser regressions. Generate the existing standalone bootstrap from shared registration and targeting-cleanup source without adding a runtime artifact or dependency. Share synchronous-runtime ordering assertions across framework/live specs. Validation includes 2,215 JS tests, 136 Node tests, 111 offline browser cases, 26 CWV cases, 40 Rust/Next.js cases, core and adapter tests, all Clippy aliases and the production WASM build. Standalone TypeScript keeps 315 inherited diagnostics with no new signatures. Real-GPT delivery and full repeated performance acceptance remain unverified.
| retainPublisherSlotMappings(ts, ts.divToSlotId, ts.prevSlotTargetingKeys); | ||
| try { | ||
| const auctionId = candidate == null ? void 0 : candidate.hb_auction_id; | ||
| const trace = (_f = (_e = getTraceBridge == null ? void 0 : getTraceBridge()) == null ? void 0 : _e.opportunity(slot, auctionId)) != null ? _f : { auctionId }; |
This branch has not been deployed
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.
Status
Draft recovery candidate. Do not merge or close the issue yet.
The cacheable unified candidate is pushed at
dec05bdc9c461a8e43c19d5f51be68e520ebb178. It improves the reproduced cold/warm lab regression, but acceptance of synchronous loading and the changed critical-script outage boundary is still pending. Dedicated real-GPT inventory is missing. The PR remains draft, with no review requests or issue-closing statement.The earlier full CWV contract still requires deferred loading and rejects this candidate with
loading must exercise its intended production loading mode. It has not been rewritten to make a diagnostic pass count as full acceptance. Framework/live consumer migration and the final acceptance matrix are deferred until the architecture decision. Hosted checks may therefore fail the unmigrated contract; full hosted success is not claimed.Changes
Matched diagnostic measurements
Eighty measurements use pinned original main
51730bdaf841e4d7bb96c2258e5e98169bdff9a7, four alternating arms, two viewports and five samples per group. CPU is 4x, latency 100 ms, download 1,600 kbit/s and upload 750 kbit/s, with zero artificial runtime hold. The transport is uncompressed fictional loopback HTTP, not real GPT/GAM or field CWV.Baseline to combined medians:
The candidate document is 2,104 bytes instead of the previous candidate's 128,941 bytes. Warm runs demonstrate real HTTP runtime cache hits and zero runtime transfer bytes. Each measurement checks one native fixture request, candidate targeting and a visible creative. Controlled CLS remains zero with the configured reservation.
All 14 production JS modules are byte-identical. Re-exporting the committed source proves all 11 servable files per arm and production source fingerprints match the measured artifacts. The screen retains its original tooling hashes; the later outage extension is separately executed, not relabeled as another timing run. Production compressed-delivery magnitude remains unverified.
Focused outage proof
Four separate browser cases cover normal and old-hash/self CSP success and critical-unified HTTP 404 under each policy. Success has working APIs, a single queue callback/request and visible creative. Failure has no TS initialization/shim/renderer APIs, no queue drain, one 404 without retry, zero native requests/delivery, completed parsing and only the declared core-dependent publisher error. CSP violations remain zero.
This differs from the previous inline/deferred design, where a failed deferred GPT asset left early rendering available. The diagnostic explicitly records
changedOutageBehaviorApproved=falseandfullAcceptancePassed=false. Observation is not acceptance of the new boundary.Checks
Fresh checks pass:
Existing ignored tests remain ignored. Previous broad JS results are reused for unchanged production JS inputs, not reported as a fresh full suite. Standalone TypeScript's previously recorded inherited failures remain disclosed. The new candidate's complete framework and real-GPT acceptance have not run. The existing full CWV correctness scope exits 1 with zero completed samples because its deferral expectation is intentionally unmigrated.
Remaining decisions and proof
No deployment, publisher activation or Google traffic is authorized by these diagnostic runs. Keep this PR draft even if later checks pass unless explicitly instructed otherwise.
Evidence
recovery20261103addition retains all 80 new rows and four outage observations; the original 200 rows remain unchanged.