Repository navigation
Track deferred request timing and GPT diagnostics work from PR #1261 #1458
Description
Description
Track implemented contracts and deliberately deferred work from PR #1261 and its source PRs #1074, #1076, #1121 and #1154. Resolving a review thread does not mean every suggestion in it was implemented. The checked items below describe implemented behavior; unchecked items retain the remaining work or decision.
The EdgeZero release/pin and store-binding migration are outside this tracker. They remain separate merge gates on #1261. No live Tinybird deployment, ingestion, rollback or browser validation is implied here.
Contract batch implemented on PR #1261
Commit range: 7214c60 through 02f020a.
- The access v2 row uses
auction_collected_ms, derivests_versionfrom the same compiled identifier asx-ts-version, and includesdelivery_result. Browser/internal resolved names remain stable. No extra SHA/Fastly-version field was added. - Shared orchestration records actual collection waits on all three routes, including explicitly observed mediator work without fabricating provider dispatch. Empty-plan/admission decisions and outgoing request counts are unchanged.
- Access emission uses SDK dispatch/drop with no reply wait or retry. The exact SDK contract passed a delayed local Viceroy probe in normal and reused sandboxes. The actual emitter module passed WASM tests in a wrapper using the original dependency identities. Full application/main validation still requires the EdgeZero lifecycle fix.
- Prebid diagnostics implementation lives in the optional bundle through one narrow hook. Exact-instance/load-order, fail-open and destroy/reinstall tests pass. The served shim is 1,744 bytes smaller under its existing budget. Badge evidence is pointer-transparent; only an outside-creatives native control is clickable, and latest selection no longer opens history. Browser hit-testing/visual validation remains pending.
- Origin remains caller-blocking wait; Fastly app-build remains per-request setup plus cold construction when needed. Adapter T0 differences are documented, not silently normalized.
Small cleanup batch implemented on PR #1261
Commit: 9654deb7a.
- Page-bids performs its cross-site denial before direct-handler diagnostics preparation. A regression covers invalid diagnostics configuration on both page-bids paths.
- Disabled Server-Timing emission returns after the headers-ready stamp, before the privacy/header scan.
- The Fastly send branches share one
SendContext; each GPT opportunity path makes one recorder call with optional auction facts. - Access-target construction returns a configuration error for an unresolved token instead of panicking after send. The emitter logs and drops setup errors. Recording-client regressions replace the sampled-out panic tripwire and cover missing credentials, independent toggles and best-effort dispatch failures.
- The configuration example and guide document
route_sections, its TOML-only array configuration, raw-path matching and the sharedotherbucket. No new validation restrictions were added. Remaining Axum punctuation and Wrangler-generation wording were corrected.
Post-send execution evidence uses exact source excerpts in an original-dependency WASM wrapper. It is not a full application entry-point or browser pass.
This does not complete the whole tracker. Target caching, fallback route identity, adapter production wiring/health coverage, raw-TOML secret preflight, slot re-entry labeling, RC refresh/live deployment and broader historical documentation work remain separate. Delivery validation is detailed in #1155.
Timing contracts and schema decisions
- Define the persisted collection milestone. Access v2 uses
auction_collected_msfor collection return, including the streamed body seam. Internalauction_resolved_msand browserauctionResolvedMsretain their existing names. Collection return is not the final provider transport reply. Original review, rename window. - Decide whether independent provider transport-completion instrumentation is needed. Do not derive provider duration or overlap from collection minus dispatch. Cover buffered and streamed paths if adding it.
- Align the v2 version dimension.
ts_versionuses the compiled Trusted Server identifier matchingx-ts-version, notFASTLY_SERVICE_VERSIONorx-ts-fastly-version. Producer, schema, fixture and docs agree. Review. - Define origin as caller-blocking remaining wait after overlap, and document that it is not full send-to-headers latency. Page origin.
- Decide origin-phase coverage for assets/integration proxies, which currently have no corresponding Origin phase. Cover actual early-send and proxy paths before extending instrumentation. Fetch coverage.
- Document app-build as per-request setup, including cold construction where needed, and document adapter T0 differences. Warm Fastly samples can include config-store opening. Review.
- Execute full Fastly warm/cold app-build validation after the EdgeZero lifecycle gate clears. Documented semantics do not establish measured cross-adapter comparability.
- Unify endpoint collection waits.
/auction,/_ts/page-bidsand HTML record actual collection intervals. Page-bids no longer synthesizes wait as R minus D. Null/no-launch semantics and browser-diagnostics omission without launch are preserved. Review. - Represent mediator-only launch evidence explicitly. A pending mediator or marked started-request failure can justify wait/collection/commit without provider dispatch; configuration or an immediate result cannot. Empty-plan
NotStartedsends no new mediator request. Review.
Adapter and ingestion work
- Preserve route identity on Fastly fallback early returns. Prove filter/setup failures retain bounded route metadata through emitted rows. Review.
- Add production
build_routercollector and method-specific health-path coverage for Cloudflare/Spin, replacing duplicated private-router middleware tests where appropriate. Deleting production registration must fail a test. Address startup diagnostics for unsupported emission flags through Implement or reject Tinybird telemetry configuration coherently #1148. Wiring, duplicate tests. - Choose and implement SDK dispatch/drop access ingestion without a reply wait or retry. Local SDK/Viceroy probes cover full transmitted bodies, delayed replies and sandbox reuse. Later transport errors, HTTP status, quarantine and ingestion acceptance remain unobserved. This is not a durability guarantee. Ingestion.
- Make access-target construction fallible and keep missing-token setup errors best-effort after send. Constructor.
- Decide whether to cache access targets and measure reused-sandbox throughput with the full application. No target cache was introduced by the cleanup batch.
- Emit delivery classification through
delivery_result, withcomplete,partialanderroroutcomes. This describes local transport handoff, not client receipt; status 200 alone does not establish complete streaming delivery. Remaining full Fastly/rollout validation is in Emit DeliveryResult in the access telemetry row #1155. - File and link an EdgeZero CLI preflight issue for inactive raw-TOML secret references and Spin key collisions. Runtime stripping of inactive references does not fix push-time validation. Review.
- File and link an EdgeZero Axum service/layer hook issue before replacing the handwritten dev-server serve loop. Preserve readiness, terminal timing, bind errors and shutdown behavior. Original review.
Diagnostics, cleanup and proof
- Extract diagnostics-only Prebid listener/targeting/correlation work behind a diagnostics-module hook, with artifact-size and lifecycle regressions. Preserve GAM refresh when diagnostics throws. Review.
- Move direct-handler page-bids diagnostics preparation below the CSRF gate and test cross-site denial before diagnostics configuration errors. Adapter-level pre-routing preparation remains unchanged. Review.
- Place diagnostics controls outside observed creative bounds and open history only for earlier selections. Badge history, click behavior.
- Preserve stable slot identity across eviction/re-entry, clarify historical eviction labeling, and test it. Re-entry.
- Decide how to report a Prebid win not observed within the 30-second correlation window, including lazy-loaded slots. Test timeout and late-render behavior before changing the UI contract.
- Share dispatch/collect outcome mapping using planned-provider state and reuse the page-bids timing snapshot builder. Launch evidence and admission-error context are preserved. Outcome mapping, snapshots.
- Remove repeated
SendContextconstruction and optional duplicate recorder-call branches. The larger delivery-module extraction remains deferred. SendContext, recorder. - Consider sharing browser/Tinybird auction-wait-placement wire mapping. Snapshot construction is shared, but the wire mappings remain separate. Review.
- Keep disabled Server-Timing emission to the headers-ready stamp before returning. Review.
- Document route-section matching limitations and TOML-only array configuration, including a commented example. The
otherand non-ASCII inputs remain accepted; their limitations are explicit rather than new validation policy. Review. - Reconcile the historical spec/plans with the implemented collector, adapter T0/freeze points, unsupported phases and execution status. The small-fix batches correct specific contradictions, not every unchecked historical task. Review.
- Automate producer/schema/JSONPath/fixture agreement. The core CI test checks the 31-field producer, JSONPaths and fixtures.
- Before rollout, ensure the October RC uses the versioned datasource fix rather than the superseded
FORWARD_QUERY; validate a real workspace deployment diff and quarantine/ingestion, not just local schema equality. - Track the inherited native core environment-test failure separately: Cargo injects build-only
TRUSTED_SERVER__GIT_VERSION, rejected by the legacy test-only environment loader. Running the compiled binary without that variable is isolated evidence, not a green normal Cargo test gate.
Completion
Each item must end with an implemented/tested result or an explicit accepted contract. Split implementation issues as needed and link them here. Keep #1261's disposition table accurate; do not close this tracker automatically when the consolidation PR merges.
Activity