Skip to content

Cut Trusted Server over to EdgeZero PR 275 - #1506

Draft
aram356 wants to merge 57 commits into
mainfrom
spec/edgezero-pr275-migration
Draft

aram356 wants to merge 57 commits into
mainfrom
spec/edgezero-pr275-migration

Conversation

@aram356

@aram356 aram356 commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Cuts Trusted Server over to EdgeZero PR 275 in one change. Every outbound call goes through EdgeZero's HttpClient, Fastly runs on EdgeZero's canonical request lifecycle, and redirects go through EdgeZero's follower.
  • Deletes Trusted Server's own outbound layer: PlatformHttpClient, PlatformBackend, backend naming, the four adapter HTTP clients, the redirect loop, the capability methods, the Spin decoder, the Cloudflare encoding strip, and Trusted Server's Fastly response delivery. No compatibility shims remain.
  • EdgeZero is pinned to 14a6ca8bb5a5cbe055a1f725bdab8f42569a3bf0, the PR 275 head on 2026-11-11. Since the earlier pin dcbf622, the production changes are EdgeZero's Axum native timer fix, Spin framing an empty outbound body only for POST, PUT and PATCH, and a received-head preparer that no adapter calls yet.
  • Operator-visible changes are listed in the spec's "Fastly differences" (items 1 to 26), its Configuration table, and CHANGELOG.md.

PRfection phase: implementation

Changes

Area What changed Commits
Baseline Ingress baseline cases and the Fastly response diff, run against the pre-cut merge 6109bdd51
Repin and core EdgeZero PR 275; core moves to its body and hook APIs; every inbound body goes through a bounded reader 556cce82f, 387f15342, 50ea8a149
Adapters Fastly, Axum, Cloudflare and Spin ported; egress policies installed; synthesized headers on canonical 404 and 405 e36217b03, f166d10da, 2de2837c6
Outbound client RuntimeServices carries EdgeZero's client and clock; a scripted client and test clock for tests; parity suite on EdgeZero's Axum test server bb0e73408, 10980a31f, e742aefad, 977c9d2f9, be96e2876
Integrations, redirects, assets Integration requests, redirect following and asset proxying through EdgeZero's client f2a1b125e, 358dbf977, 13785ef4f
Auctions Bidder requests run as one EdgeZero batch with a cutoff on every adapter; Cloudflare and Spin now fan out multi-provider auctions d6b70c7b8, 0e9e5dbeb, 9d76f8d36
Publisher origin Origin fetch inside the response scope; Cloudflare origin decoded under the input cap caa469117, 9f0a84b5f
Stores and management API Config and secret store writes are async; Fastly management calls go through EdgeZero 5e5dc96f1, 1baa5821d
Fastly lifecycle Fastly on EdgeZero's canonical lifecycle; telemetry and pull sync run after delivery; one geo lookup per request 9441d4e12, 786721409, ac414aff1, 1d09fb309
Deletion The old outbound layer, its test doubles, the dependencies only it used, and a clippy guard against buffering whole bodies in production 151d2fbca
Repins EdgeZero dcbf622 to a7d7fd0f, then to 14a6ca8b 19234e516, 4680483dc
Egress and ingress [response_headers] framing and hop-by-hop names rejected at validate and push, skipped at runtime; Axum ingress limits from EDGEZERO__ADAPTER__INGRESS__*; Fastly outbound observation log line b1b3269c2, ff04dfb1b
Docs and CHANGELOG Guides, READMEs, spec corrections found during implementation, CHANGELOG entries 851537045
Merges of main #917, #1435 and #1504, then #1493 and #1455. #1493's mediator fallback is rebuilt on the batch orchestrator; its tests run on the scripted client ebb577e73, 983c6023d, dfce21dff, 8b407e0d1
Test harness The trace harness kills and reaps the Spin trigger process group, so runs leave no Spin servers behind 2c723a2c8, 5389d9006
Spec In-flight table corrected after the merges; every passage the final review found out of date with the code 6c39a56a1, 9ec4711d3
Final review fixes One core error-response helper that logs client errors at warn; shared outbound-client and publisher-cap helpers; header values kept out of the scripted client's assertion output (CodeQL); version headers asserted on every canonical 404 and 405; one skipped-header warning per request on Fastly; pull sync and Tinybird failures through outbound_error fd74d51c4, 2c86475f3, b01b66914, 3d43e06e9, 352f90d31, e1dd32b47

Closes

Closes #1507
Closes #1513

Part of epic #1505. EdgeZero qualification work for the cut is #1508.

Spec and plan

  • Spec: docs/superpowers/specs/2026-10-17-edgezero-pr275-hard-cutover-design.md, approved at 85f5ca3d9. Corrections found during implementation are folded into the spec itself.
  • Plan: docs/superpowers/plans/2026-11-08-edgezero-pr275-hard-cutover.md, added in e3e055070.
  • Requirements handed to EdgeZero: docs/superpowers/specs/2026-10-17-edgezero-pr275-requirements.md.

Maintainer decisions during implementation

  • Each bidder response keeps its 1 MiB cap. The old Fastly 10 MiB cap across all buffered bid bodies is gone, with no replacement and no EdgeZero ask.
  • Bypass cache for signed S3 image preflights #1516 (cache bypass for signed S3 image preflights) merges to main first; it is still open. When it lands, the next merge of main ports it: OutboundCachePolicy::Bypass on the signed HEAD preflight and the raw error-body GET, with the optimized GET left on PlatformDefault.
  • The pin follows the latest PR 275 head.

Before deploy

The maintainer runs these before production:

  1. ts config validate against each environment's operator-owned trusted-server.toml. A failure names a setting from the spec's Configuration table.
  2. The Viceroy response diff. On Fastly staging, run its read-only subset against production, with no admin writes or key rotation, and normalize geo headers, x-ts-fastly-version, and x-ts-env.
  3. Then deploy to production.

Rollback: revert this PR and redeploy the previous build. No config change is needed, with two exceptions. A multi-provider Cloudflare or Spin config accepted after the cut fails startup again on the old build. A loopback http provider endpoint fails validation again, which affects only test fixtures.

The hosted EdgeZero qualification legs that Trusted Server owns are run by the maintainer by hand. The spec section "EdgeZero qualification, Trusted Server's part" lists them.

Known test limits

  • unconvertible_request_head_gets_native_500 is not added. Viceroy cannot deliver an unconvertible request head, because hyper rejects it first. delivery_no_attempt_head_conversion_sends_native_500 covers the outcome-table row.
  • The pull sync and sandbox reuse tests run under the Viceroy test runner with synthetic deliveries, not viceroy serve. Viceroy has no JA4, so the bot gate never lets pull sync run for a served request, and its config store is fixed per guest.
  • plan.rs carries allow-domain suppressions for 127.0.0.2 and 0.0.0.0. They are the loopback lookalike cases that must stay rejected.

Follow-ups

  • scripts/smoke-cloudflare.sh stops at "missing Wrangler pin in .tool-versions", the same way on main at 598a85170. It needs a Wrangler pin.
  • scripts/smoke-spin.sh gets the expected 503, but not the startup diagnostic, the same way on main. EdgeZero's Spin init_logger is a no-op and production builds install no log backend, so the log::error! is dropped. It needs a Spin logger or owns_logging.

Test plan

Full suite at 2c723a2c8 (after both merges of main). Targeted reruns at 6c39a56a1 for the next three commits. Full suite again at 9ec4711d3 for the final review fixes (last section).

  • cargo fmt --all -- --check, all eight clippy aliases, integration-tests clippy, Cloudflare and Spin test-utils clippy, template-digest and HTML EOF clippy
  • cargo test-fastly (3695 passed), cargo test-fastly-reuse (221), cargo test-axum (58), cargo test-cloudflare (61), cargo test-spin (83)
  • Parity (33), documentation snippets (2), ./scripts/test-cli.sh (965), release build facts (3)
  • JS tests (3299) and format, docs format, Markdown Prettier, wasm clock lint, docs-proposal scripts, CI Node pin guard (35 jobs in 10 workflows), URL-host lint
  • Fastly deadline harness (6), Cloudflare and Spin worker deadline examples, release script tests (gate 16), response-diff unit tests (gate 17)
  • CI=1 integration with --include-ignored (85 passed), trace runtime boundary (3), browser trace workflow including Cloudflare (4), Spin runtime filter (7), browser suites (Next.js 57, WordPress 36)
  • HTML EOF runtime (15), async HTML finalization on Fastly and Axum with --auction
  • Smoke: Axum and Fastly pass. Cloudflare and Spin fail the same way on main (see Follow-ups)
  • Fastly response diff against the merge base 06e51be17: 10 requests, 0 unexpected differences. The diff against the pre-cut baseline 402fcbd98 also shows Emit absolute creative rewrite URLs #917's own changes, so the merge base is the right baseline.
  • At 6c39a56a1: fmt, clippy, the mediator tests (95), Spin runtime filter and trace boundary with no leftover Spin processes, browser trace workflow, docs format, URL-host lint
  • At 9ec4711d3: fmt, all eight clippy aliases, integration-tests clippy; cargo test-fastly (core 3400, adapter 223), cargo test-fastly-reuse (223), cargo test-axum (59), cargo test-cloudflare (62), cargo test-spin (84); parity (33); ./scripts/test-cli.sh (965); Fastly and Axum --include-ignored integration (36); HTML EOF runtime (15) and the Fastly EOF harness; wasm clock lint; docs and Markdown Prettier; URL-host lint. Each new test was checked against a mutant that it kills
  • Hosted EdgeZero qualification legs on Fastly staging (maintainer, by hand)

Trusted Server moves onto EdgeZero PR 275 in one hard cut, using the canonical lifecycle on every adapter and EdgeZero's outbound API for every call, with no Trusted Server transport plumbing. This document states what EdgeZero must provide for that: nine blocking requirements, sixteen follow-ups, and a qualification gate, each with its need, the gap at the PR 275 head, observable requirements, and acceptance criteria.
Replace the stale draft, which kept the Trusted Server outbound layer and the
custom Fastly lifecycle, with a design on EdgeZero PR 275's APIs: every
outbound call through EdgeZero's HttpClient, Fastly on the canonical
lifecycle, and redirects through EdgeZero. The spec maps each outbound site,
inbound reader, and harness onto the new APIs, lists the Fastly behavior
differences, Trusted Server's share of EdgeZero's qualification run, and a
commit sequence with a dependents inventory, and records four review rounds.
Batch checks never poll the SDK on Fastly, so collection after the cutoff
uses batch.next(), and the expired-snapshot harness case and the late-bid
Fastly difference say so. The ported deadline test module stays out of the
platform::deadline path the dependents inventory searches. Two unverified
harness claims now cite Viceroy and EdgeZero source, and the review log
records round 5, which found nothing blocking.
Retarget H from 8f82547b to 9b31a697, which changes no public API and no
line an earlier draft cited. Fold in the per-requirement source check and
review 5798502238 on PR 275: correct the claims the EdgeZero source
contradicted, list the open EdgeZero defects at H, and close the gaps against
Trusted Server's own acceptance criteria (per-request synthesized headers on
Fastly, the head-conversion 500, parity on the Axum test server, and the legs
of the confirmed follow-ups). Add D19, D20, and Q7, and record the update and
its sixth review round in the review log.

Mark the requirements file as the text handed to EdgeZero, since EdgeZero's
amended copy is the contract it is measured against.

@aram356 aram356 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES — GitHub rejected the formal change-request event (HTTP 422: "Review Can not request changes on your own pull request"). Acting login and PR author are both aram356. This COMMENT preserves the intended verdict and all six inline findings.

Specification/planning review of PR #1506 at 854fe2e36abf951ae0e4ee6522f67a93d361a3b7 (exact base 51730bdaf841e4d7bb96c2258e5e98169bdff9a7). Acting login and PR author: aram356.

Six concrete design corrections: one blocking and five should-fix. They are separate from the already-disclosed EdgeZero H defects and the pending Q1–Q7 maintainer decisions.

ID Severity Correction Design lines
F1 blocking Construct origin calls inside the shared response scope 576–579
F2 should-fix Make non-Fastly buffering match raw response paths 111–113
F3 should-fix Separate overlap eligibility from KV preload 542–543
F4 should-fix Handle malformed operator Connection before egress 1059–1062
F5 should-fix Preserve optimizer on the final client HEAD 703–705
F6 should-fix Document provider latency's changed stop point 505–508

H means immutable EdgeZero commit 9b31a69760255c279f163a3e56bc95a7eed228e3. Both documents and the complete diff were read. H's amended requirements control; the added TS requirements document is the historical handoff. D1–D4 remain settled. The review log records six rounds, but the draft awaits maintainer answers, and #1513 requires those answers to be recorded. This review does not approve implementation or the cutover.

The five audits cover provider construction/signing/budgets; batch timing/cancellation; all publisher variants/templates/range/EOF and ownership; consent/EC/privacy; ingress/egress/framing/canonical Fastly delivery; all four adapters; redirects and integrations O6–O15; assets/S3/optimizer; telemetry/pull sync; management API and async stores; six-crate pins/features/SDK fork; CLI manifest/build/serve/deploy; fixtures/snippets/CI; qualification/applicability, rollout and rollback.

Independent API probes reproduce raw-origin duplicate ownership and malformed operator Connection rejection. Source checks confirm the other four findings. The ownership probe uses H's real public facade and head finishing with a scripted transport; it does not execute a migrated TS app. Positive controls construct origin calls inside the body scope and preserve bytes. The lifecycle probe includes real TS privacy/cache helper sources and H's public framing API. Hosted optimizer behavior and future candidate qualification were not executed.

Additional planned privacy concession: detached synthesized headers can preserve a static operator Set-Cookie alongside public cache headers, while the current TS helper makes that same set private. The design explicitly gives up detached cookie-cache privacy, so this is not posted as an undisclosed EC identity leak. Investigated and closed: S3 normalization, HttpClient Send/Sync, an inherited 1 MiB streaming cap, mandatory Spin wasip2, settings retention and source-status loss.

Qualification cross-check: H's 511 inventory rows contain 256 blocking, 5 gate, 50 conditional and 200 follow-up. Its 261 required rows split into EdgeZero 237 (217 local/20 hosted) and TS 24 (15 local/4 hosted/5 consumer reviews). The amended contract allows confirmed-present parts/legs and explicit deferrals. D19's partial adoption is permitted; its extra assignments and the disclosed H defects must be reconciled and qualified at frozen C. Pending resource/measurement approvals are not inferred from scoped API approvals.

Current-head verification: every applicable prescribed local check has a passing final run. The same-head full-suite record has 99 command attempts: 97 exit 0 and two reviewer setup failures corrected and rerun. Coverage includes adapter/CLI/core tests, all clippy/build/check targets, JS (75 files/1,839 tests), docs/guards, parity, three cache harnesses, Fastly/Cloudflare/Spin deadline fixtures, integration matrix (39 passed), trace runtime/browser, and framework browsers (Next.js 53 passed/2 skipped; WordPress 32 passed/23 skipped). Full commands/exits/result lines follow.

Setup corrections: the initial Cloudflare fixture exited 1 with wasm-bindgen schema 0.2.126 versus CLI 0.2.121. Selecting the verified temporary 0.2.126 CLI through supported --wasm-bindgen made it pass. The first integration matrix exited 101 (36 passed/3 failed): reviewer origin port 28888 conflicted with prerendered 8888 URLs. Regenerating/rebuilding fixtures for canonical port 8888 made the same command/assertions/filters pass all 39. Source, dependencies, tests and CI were unchanged. No pre-existing-failure claim is made.

Environment: macOS/aarch64, Rust 1.98.1, Node 24.20.0, Viceroy 0.21.0, Spin 4.1.0, Wrangler 4.83.0, CI=true, CARGO_BUILD_JOBS=6. EOF-only local harnesses are conditional on publisher/HTML changes and do not apply here; PBS is path-filtered out. Linux NSS checks are OS-conditional on this Mac. CodeQL was green on GitHub, not executed locally. All 29 GitHub check entries were observed SUCCESS separately from reviewer results.

The full suite exercises the current v0.0.11 runtime at this docs-only head, not the proposed H/C cutover. Author compile-probe and transitive lock-graph claims are not presented as our fresh repin execution. No GitHub review or thread has been published during this investigation.

Next actor after publication: CREATOR corrects/disposes the six findings; the user/maintainer supplies or locates Q1–Q7 decisions. Findings remain outstanding until REVIEWER verification and acceptance. No approval or merge readiness is asserted.

Same-head full-suite commands, exits and actual result lines

Reviewed head: 854fe2e36abf951ae0e4ee6522f67a93d361a3b7. Exact PR base: 51730bdaf841e4d7bb96c2258e5e98169bdff9a7.

Runner: the independent REVIEWER team, through the build-validator agent in its detached reviewer worktree. These are fresh reviewer executions, separate from GitHub Actions results and from the author’s earlier probes.

environment

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node --version; npm --version; cargo --version; rustc --version; viceroy --version; spin --version; wasm-bindgen --version; command -v worker-build; docker info --format "{{.ServerVersion}}"

Actual result lines:

wasm-bindgen 0.2.121
REVIEW HARNESS: exit code 0

js-setup

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-js/lib. Exit: 0.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

docs-setup

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs. Exit: 0.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

js-lint

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-js/lib. Exit: 0.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

js-format

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-js/lib. Exit: 0.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

js-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-js/lib. Exit: 0.

npm run build

Actual result lines:

REVIEW HARNESS: exit code 0

js-test

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-js/lib. Exit: 0.

npx vitest run

Actual result lines:

 Test Files  75 passed (75)
      Tests  1839 passed (1839)
Type Errors  no errors
REVIEW HARNESS: exit code 0

docs-lint

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs. Exit: 0.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

docs-format

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs. Exit: 0.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

markdown-format

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

docs/node_modules/.bin/prettier --config docs/.prettierrc --check "*.md" ".claude/**/*.md" ".github/**/*.md" "crates/**/*.md" "scripts/**/*.md" "tinybird/**/*.md"

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

docs-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs. Exit: 0.

npm run build

Actual result lines:

build complete in 6.85s.
REVIEW HARNESS: exit code 0

ci-node-pin-tests

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node --test scripts/check-ci-node-pin.test.mjs

Actual result lines:

REVIEW HARNESS: exit code 0

ci-node-pin

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node scripts/check-ci-node-pin.mjs

Actual result lines:

ok: 28 jobs in 8 workflows pin Node before compiling Rust
REVIEW HARNESS: exit code 0

docs-proposal-shellcheck

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

shellcheck scripts/docs-proposal/*.sh

Actual result lines:

REVIEW HARNESS: exit code 0

docs-proposal-hunks

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node --test scripts/docs-proposal/hunks.test.mjs

Actual result lines:

REVIEW HARNESS: exit code 0

docs-proposal-test

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

scripts/docs-proposal/test.sh

Actual result lines:

REVIEW HARNESS: exit code 0

wasm-clock

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

scripts/lint-wasm-clock.sh

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.50s
REVIEW HARNESS: exit code 0

claude-symlink

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

test "$(git ls-tree HEAD CLAUDE.md | awk '{print $1}')" = 120000 && test "$(git cat-file blob HEAD:CLAUDE.md)" = AGENTS.md && test -f AGENTS.md && echo "CLAUDE.md symlink guard passed"

Actual result lines:

REVIEW HARNESS: exit code 0

cargo-fmt

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo fmt --all -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

clippy-fastly

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-fastly

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.54s
REVIEW HARNESS: exit code 0

clippy-axum

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-axum

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.51s
REVIEW HARNESS: exit code 0

clippy-cloudflare

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.86s
REVIEW HARNESS: exit code 0

clippy-cloudflare-wasm

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-cloudflare-wasm

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.56s
REVIEW HARNESS: exit code 0

clippy-spin-native

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-spin-native

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.47s
REVIEW HARNESS: exit code 0

clippy-spin-wasm

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-spin-wasm

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.38s
REVIEW HARNESS: exit code 0

clippy-cli

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-cli

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s
REVIEW HARNESS: exit code 0

clippy-codegen

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy-codegen

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.61s
REVIEW HARNESS: exit code 0

core-digest-clippy

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy -p trusted-server-core --test template_build_digest -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.90s
REVIEW HARNESS: exit code 0

test-fastly

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test-fastly

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 11s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.89s
test result: ok. 3332 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 63.10s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 30 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out; finished in 0.01s
REVIEW HARNESS: exit code 0

test-fastly-reuse

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test-fastly-reuse

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 30.55s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.68s
REVIEW HARNESS: exit code 0

test-axum

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test-axum

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 58.24s
test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-cloudflare

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test-cloudflare

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 20.49s
test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-spin

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test-spin

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 2.19s
test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

core-digest-test

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test -p trusted-server-core --test template_build_digest

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 29.89s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
REVIEW HARNESS: exit code 0

cli-test

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

./scripts/test-cli.sh

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 57s
test result: ok. 765 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.73s
test result: ok. 1 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.76s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.85s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.55s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
test result: ok. 1 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.10s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.90s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 771 filtered out; finished in 9.24s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 26.58s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 1.56s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 5.53s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 3.24s
REVIEW HARNESS: exit code 0

codegen-test

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test --package trusted-server-openrtb-codegen --target aarch64-apple-darwin

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 4.88s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

parity-fmt

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo fmt --manifest-path crates/trusted-server-integration-tests/Cargo.toml -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

parity-test

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --test parity

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 36.72s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
REVIEW HARNESS: exit code 0

parity-clippy

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy --manifest-path crates/trusted-server-integration-tests/Cargo.toml --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.36s
REVIEW HARNESS: exit code 0

lint-domains

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --bin ts -- dev lint domains --changed-vs 51730bdaf841e4d7bb96c2258e5e98169bdff9a7 --verbose

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.46s
REVIEW HARNESS: exit code 0

build-fastly

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build-fastly

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.95s
REVIEW HARNESS: exit code 0

build-axum

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build-axum

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.38s
REVIEW HARNESS: exit code 0

build-cloudflare

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.09s
REVIEW HARNESS: exit code 0

check-fastly

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo check-fastly

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.82s
REVIEW HARNESS: exit code 0

check-axum

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo check-axum

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.88s
REVIEW HARNESS: exit code 0

check-cloudflare

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo check-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.96s
REVIEW HARNESS: exit code 0

check-spin

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo check-spin

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.71s
REVIEW HARNESS: exit code 0

check-cloudflare-native

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo check -p trusted-server-adapter-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.68s
REVIEW HARNESS: exit code 0

check-spin-native

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo check -p trusted-server-adapter-spin

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.44s
REVIEW HARNESS: exit code 0

fastly-release

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized + debuginfo] target(s) in 1m 17s
REVIEW HARNESS: exit code 0

spin-release

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

TRUSTED_SERVER__PUBLISHER__ORIGIN_URL=http://127.0.0.1:8080 TRUSTED_SERVER__PUBLISHER__PROXY_SECRET=integration-test-proxy-secret TRUSTED_SERVER__EC__PASSPHRASE=integration-test-ec-secret-padded-32 TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK=false cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release

Actual result lines:

    Finished `release` profile [optimized + debuginfo] target(s) in 44.36s
REVIEW HARNESS: exit code 0

fastly-deadlines

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"

Actual result lines:

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 242 filtered out; finished in 0.33s
REVIEW HARNESS: exit code 0

cloudflare-deadline-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.17s
REVIEW HARNESS: exit code 0

cloudflare-deadline-clippy

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.09s
REVIEW HARNESS: exit code 0

spin-deadline-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.34s
REVIEW HARNESS: exit code 0

spin-deadline-clippy

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.62s
REVIEW HARNESS: exit code 0

wrangler-setup

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

npm install --prefix /private/tmp/review-1506-854fe2e/local-tools --no-audit --no-fund wrangler@4.83.0

Actual result lines:

REVIEW HARNESS: exit code 0

cloudflare-deadline-runtime

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 1.

node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime /private/tmp/review-1506-854fe2e/local-tools/node_modules/.bin/wrangler

Actual result lines:

Error: Command failed: wasm-bindgen /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/target/wasm32-unknown-unknown/debug/examples/deadline_runtime.wasm --target web --out-dir /var/folders/yb/0xyfpf2162lf4p4zz6hpzfnm0000gn/T/ts-worker-deadline-F11hOY --out-name fixture
error: 
  rust Wasm file schema version: 0.2.126
     this binary schema version: 0.2.121
Currently the bindgen format is unstable enough that these two schema versions
    '  rust Wasm file schema version: 0.2.126\n' +
    '     this binary schema version: 0.2.121\n' +
    'Currently the bindgen format is unstable enough that these two schema versions\n' +
REVIEW HARNESS: exit code 1

spin-deadline-runtime

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"

Actual result lines:

PASS spin /fast budget=80 origin=200: complete:206
PASS spin /headers budget=80 origin=0: timeout:82
PASS spin /body budget=80 origin=0: timeout:82
PASS spin /headers budget=80 origin=200: timeout:203
PASS spin /large budget=2000 origin=0: oversized:3
REVIEW HARNESS: exit code 0

trace-script-skipped

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_skipped_emitted_script_leaves_ad_state_untouched -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 43.62s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.51s
REVIEW HARNESS: exit code 0

trace-script-freezes

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_emitted_script_deep_freezes_owned_context_in_node -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 1.47s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.05s
REVIEW HARNESS: exit code 0

html-benchmark-smoke

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo bench -p trusted-server-core --bench html_processor_bench -- --test

Actual result lines:

    Finished `bench` profile [optimized + debuginfo] target(s) in 2m 05s
REVIEW HARNESS: exit code 0

template-cache-esi

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

BID_DELAY=3 ./scripts/template-cache-local-test.sh esi

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.61s
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.76s
  22 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-inline

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

BID_DELAY=3 ./scripts/template-cache-local-test.sh inline

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.53s
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.43s
  9 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-purge

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

BID_DELAY=3 ./scripts/template-cache-local-test.sh purge

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.58s
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.79s
  34 passed, 0 failed
REVIEW HARNESS: exit code 0

matching-bindgen

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node --version; wasm-bindgen --version; wrangler --version

Actual result lines:

wasm-bindgen 0.2.126
REVIEW HARNESS: exit code 0

cloudflare-deadline-runtime-correct-bindgen

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime /private/tmp/review-1506-854fe2e/local-tools/node_modules/.bin/wrangler --wasm-bindgen /private/tmp/review-1506-854fe2e/wasm-bindgen-0.2.126/wasm-bindgen

Actual result lines:

PASS cloudflare /fast budget=80 origin=200: complete:203
PASS cloudflare /headers budget=80 origin=0: timeout:82
PASS cloudflare /body budget=80 origin=0: timeout:80
PASS cloudflare /headers budget=80 origin=200: timeout:202
REVIEW HARNESS: exit code 0

cloudflare-fixture-clippy

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy -p trusted-server-adapter-cloudflare --target wasm32-unknown-unknown --features cloudflare,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.01s
REVIEW HARNESS: exit code 0

spin-fixture-clippy

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy -p trusted-server-adapter-spin --target wasm32-wasip1 --features spin,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.26s
REVIEW HARNESS: exit code 0

cli-native-clippy

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo clippy --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.97s
REVIEW HARNESS: exit code 0

generate-integration-config

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.91s
REVIEW HARNESS: exit code 0

generate-trace-config

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace.toml INTEGRATION_BIDDER_ORIGIN_URL=http://127.0.0.1:28888 ARTIFACTS_DIR=/private/tmp/review-1506-854fe2e/integration-artifacts/trace ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.53s
REVIEW HARNESS: exit code 0

generate-trace-auth-config

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace-auth.toml ARTIFACTS_DIR=/private/tmp/review-1506-854fe2e/integration-artifacts/trace-auth ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s
REVIEW HARNESS: exit code 0

integration-fastly-release

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized + debuginfo] target(s) in 0.42s
REVIEW HARNESS: exit code 0

integration-axum-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build -p trusted-server-adapter-axum

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.33s
REVIEW HARNESS: exit code 0

integration-cloudflare-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

bash crates/trusted-server-adapter-cloudflare/build.sh

Actual result lines:

    Finished `release` profile [optimized + debuginfo] target(s) in 51.82s
REVIEW HARNESS: exit code 0

image-wordpress

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

docker build -t test-wordpress:latest crates/trusted-server-integration-tests/fixtures/frameworks/wordpress/

Actual result lines:

REVIEW HARNESS: exit code 0

image-nextjs

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

docker build --build-arg NODE_VERSION=24.20.0 -t test-nextjs:latest crates/trusted-server-integration-tests/fixtures/frameworks/nextjs/

Actual result lines:

REVIEW HARNESS: exit code 0

browser-setup

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-integration-tests/browser. Exit: 0.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

playwright-chromium

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-integration-tests/browser. Exit: 0.

npx playwright install chromium

Actual result lines:

REVIEW HARNESS: exit code 0

browser-prebid-artifact

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-js/lib. Exit: 0.

npm run build:prebid-external -- --modules-json '{"bidder":["rubiconBidAdapter"]}'

Actual result lines:

REVIEW HARNESS: exit code 0

initial-render-fixture-tests

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-integration-tests/browser. Exit: 0.

node --test initial-render/pages.test.cjs

Actual result lines:

REVIEW HARNESS: exit code 0

trace-fixture-tests

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-integration-tests/browser. Exit: 0.

node --test trace-fixture.test.cjs

Actual result lines:

REVIEW HARNESS: exit code 0

initial-render-ownership

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-integration-tests/browser. Exit: 0.

node initial-render/run.cjs --out /private/tmp/review-1506-854fe2e/initial-render-evidence

Actual result lines:

Controlled comparison assertions passed.
REVIEW HARNESS: exit code 0

prebuilt-trace-digest

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

mkdir -p /private/tmp/review-1506-854fe2e/prebuilt-bundle && node crates/trusted-server-js/lib/build-all.mjs --out-dir /private/tmp/review-1506-854fe2e/prebuilt-bundle && TSJS_PREBUILT_DIR=/private/tmp/review-1506-854fe2e/prebuilt-bundle cargo check-axum --locked

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.83s
REVIEW HARNESS: exit code 0

integration-matrix

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 101.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin -- --include-ignored --skip test_wordpress_fastly --skip test_nextjs_fastly --skip trace_browser_workflow --skip trace_runtime_boundary --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 50.69s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 29.28s
test result: FAILED. 36 passed; 3 failed; 0 ignored; 0 measured; 10 filtered out; finished in 13.69s
error: test failed, to rerun pass `--test integration`
REVIEW HARNESS: exit code 101

integration-fastly-ec

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin test_ec_lifecycle_fastly -- --include-ignored --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.62s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 48 filtered out; finished in 1.07s
REVIEW HARNESS: exit code 0

integration-trace-runtime

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_runtime_boundary -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 46 filtered out; finished in 17.78s
REVIEW HARNESS: exit code 0

integration-trace-browser

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_browser_workflow -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.85s
  1 passed (3.4s)
  1 passed (1.6s)
  1 passed (2.0s)
  1 passed (1.4s)
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 45 filtered out; finished in 20.98s
REVIEW HARNESS: exit code 0

browser-nextjs

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-integration-tests/browser. Exit: 0.

TEST_FRAMEWORK=nextjs PLAYWRIGHT_HTML_REPORT=/private/tmp/review-1506-854fe2e/playwright-report-nextjs npx playwright test

Actual result lines:

  2 skipped
  53 passed (35.3s)
REVIEW HARNESS: exit code 0

browser-wordpress

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/crates/trusted-server-integration-tests/browser. Exit: 0.

TEST_FRAMEWORK=wordpress PLAYWRIGHT_HTML_REPORT=/private/tmp/review-1506-854fe2e/playwright-report-wordpress npx playwright test

Actual result lines:

  23 skipped
  32 passed (29.2s)
REVIEW HARNESS: exit code 0

canonical-port-preflight

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

python3 /private/tmp/review-1506-854fe2e/check-canonical-port.py

Actual result lines:

REVIEW HARNESS: exit code 0

canonical-config

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.69s
REVIEW HARNESS: exit code 0

canonical-trace-config

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace.toml INTEGRATION_BIDDER_ORIGIN_URL=http://127.0.0.1:8888 ARTIFACTS_DIR=/private/tmp/review-1506-854fe2e/canonical-port-artifacts/trace ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.16s
REVIEW HARNESS: exit code 0

canonical-trace-auth-config

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace-auth.toml ARTIFACTS_DIR=/private/tmp/review-1506-854fe2e/canonical-port-artifacts/trace-auth ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s
REVIEW HARNESS: exit code 0

canonical-fastly-release

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized + debuginfo] target(s) in 23.97s
REVIEW HARNESS: exit code 0

canonical-axum-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo build -p trusted-server-adapter-axum

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.20s
REVIEW HARNESS: exit code 0

canonical-cloudflare-build

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

bash crates/trusted-server-adapter-cloudflare/build.sh

Actual result lines:

    Finished `release` profile [optimized + debuginfo] target(s) in 23.46s
REVIEW HARNESS: exit code 0

canonical-integration-matrix

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e. Exit: 0.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin -- --include-ignored --skip test_wordpress_fastly --skip test_nextjs_fastly --skip trace_browser_workflow --skip trace_runtime_boundary --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.61s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.14s
test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 18.80s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
REVIEW HARNESS: exit code 0
Deep API probes and source checks: commands, exits and actual result lines

Head: 854fe2e36abf951ae0e4ee6522f67a93d361a3b7. H: 9b31a69760255c279f163a3e56bc95a7eed228e3.

All worktree commands use their private prf_run guard. Probe sources, locks, numbered source excerpts and raw logs are retained in /private/tmp/pr1506-deep/.

publisher-ownership

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1 CARGO_TARGET_DIR=/private/tmp/pr1506-deep/probes/publisher/target cargo run --offline --locked --manifest-path /private/tmp/pr1506-deep/probes/publisher/ownership/Cargo.toml --target aarch64-apple-darwin

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.68s
mode=send variant=Buffered placement=Planned captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=send variant=Buffered placement=NaiveRun captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=send variant=Buffered placement=ConstructInsideRun captured=ResponseBody attach=ok
mode=send variant=PassThrough placement=Planned captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=send variant=PassThrough placement=NaiveRun captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=send variant=PassThrough placement=ConstructInsideRun captured=ResponseBody attach=ok
mode=begin variant=Buffered placement=Planned captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=begin variant=Buffered placement=NaiveRun captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=begin variant=Buffered placement=ConstructInsideRun captured=ResponseBody attach=ok
mode=begin variant=PassThrough placement=Planned captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=begin variant=PassThrough placement=NaiveRun captured=Callback attach=internal:Internal { source: response body already owns an outbound scope, provider_detail: None }
mode=begin variant=PassThrough placement=ConstructInsideRun captured=ResponseBody attach=ok

lifecycle-framing

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1 CARGO_TARGET_DIR=/private/tmp/pr1506-deep/probes/lifecycle/target cargo run --offline --locked --manifest-path /private/tmp/pr1506-deep/probes/lifecycle/Cargo.toml --target aarch64-apple-darwin

Actual result lines:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.29s
operator connection="keep-alive": applied=Some("keep-alive"), egress=OK, status=200 OK, cookie=true, cache-control=Some("private, max-age=0")
operator connection="keep-alive,": applied=Some("keep-alive,"), egress=ERROR InvalidConnectionHeader
operator connection="": applied=Some(""), egress=ERROR InvalidConnectionHeader
operator connection="cache-control": applied=Some("cache-control"), egress=OK, status=200 OK, cookie=true, cache-control=None

publisher-streaming

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

python3 /private/tmp/pr1506-deep/probes/publisher/source_evidence.py streaming

Actual result lines:

288:                             ResponseMode::Buffered { max_bytes } => {
296:                             ResponseMode::Streamed => {
1524:             response_mode: ResponseMode::Buffered {
1555:         ResponseMode::Buffered { max_bytes } => Some(max_bytes),
1556:         ResponseMode::Streamed => None,

publisher-overlap

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

python3 /private/tmp/pr1506-deep/probes/publisher/source_evidence.py overlap

Actual result lines:

3460:     let eligible = input.is_navigation && input.is_get && input.has_ec_id && input.has_kv;
5302:         has_kv: kv.is_some(),

publisher-telemetry

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

python3 /private/tmp/pr1506-deep/probes/publisher/source_evidence.py telemetry

Actual result lines:

2375:                         let response_time_ms = state.started_at.elapsed().as_millis() as u64;
655:             match completed_at.checked_duration_since(self.context.started_at) {

publisher-ownership-sources

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

python3 /private/tmp/pr1506-deep/probes/publisher/source_evidence.py ownership

Actual result lines:

288:                             ResponseMode::Buffered { max_bytes } => {
296:                             ResponseMode::Streamed => {

transport-sources

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

python3 /private/tmp/pr1506-deep/probes/transport/audit_sources.py

Actual result lines:

CONFIRMED: current asset routing admits HEAD
CONFIRMED: successful preflight proceeds to final asset request
CONFIRMED: current final asset send preserves client method
CONFIRMED: current final asset send attaches optimizer without GET guard
CONFIRMED: H optimizer validator supports HEAD
CONFIRMED: design restricts optimizer attachment to GET
HEAD-MAPPING RESULT: current final client HEAD carries optimizer; proposed GET-only instruction omits it.
Source evidence: 42 exact-range reads at 854fe2e36abf951ae0e4ee6522f67a93d361a3b7

build-sources

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep. Exit: 0.

python3 /private/tmp/pr1506-deep/probes/build/audit_sources.py

Actual result lines:

H workspace exact version requirements: 26
H Spin SDK fork: https://github.com/stackpop/spin-rust-sdk.git @ 6c59ed5b4fcb377072763aee0b27a3abdd8edb72 (=7.0.0)
TS Spin build/serve/deploy: all three explicit manifest shell commands
TS Spin build/artifact source: wasm32-wasip1
TS Spin outbound hosts: HTTP and HTTPS wildcard; missing portable hosts list requires planned addition
TS EdgeZero pins: all six share IABTechLab/edgezero v0.0.11 source before migration
Read evidence: 32 exact-range source reads at 854fe2e36abf951ae0e4ee6522f67a93d361a3b7

Qualification source/inventory check

Command: python3 /private/tmp/pr1506-deep/audit-root.py; exit 0. Actual parsed output:

{
  "all_rows": 511,
  "applicability": {
    "blocking": 256,
    "conditional": 50,
    "follow-up": 200,
    "gate": 5
  },
  "required_rows": 261,
  "required_owner": {
    "EdgeZero": 237,
    "Trusted Server": 24
  },
  "edgezero_required_environment": {
    "local": 217,
    "hosted": 20
  },
  "ts_required_environment": {
    "consumer-hosted-fastly/http2": 1,
    "consumer-viceroy": 6,
    "consumer-workerd": 2,
    "consumer-axum": 3,
    "consumer-hosted-fastly": 2,
    "consumer-unit/core": 2,
    "consumer-spin": 1,
    "consumer-hosted-fastly/io-entitled": 1,
    "consumer-unit/core/profile-readback": 1,
    "consumer-review": 5
  }
}

Exact suggestion validation

Two replacements apply to the exact original RIGHT-side ranges. The complete resulting document passed the repository Prettier configuration. Four coordinated corrections stay comment-only.

/Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs/node_modules/.bin/prettier --config /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs/.prettierrc --check /private/tmp/pr1506-deep/suggestion-preview.md

Exit: 0.

Checking formatting...
All matched files use Prettier code style!

Reviewer tooling errors

An initial lifecycle probe passed SynthesizedResponseHeaders where App::set_synthesized_response_headers requires HeaderMap and failed to compile; only the temporary probe was corrected. The root inventory script initially used the wrong owner literal. An early read-only prf_run pair raced on its private inventory .new file; subsequent wrappers were serialized. These are reviewer tooling errors, not repository failures. Final successful executions and the two corrected prescribed-suite setup failures are distinguished above.

Command: git apply --check /private/tmp/pr1506-deep/suggestions.patch; exit 0.

Command: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs/node_modules/.bin/prettier --config /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e/docs/.prettierrc --check /private/tmp/pr1506-deep/suggestion-preview.md; exit 0.

Checking formatting...
All matched files use Prettier code style!

Final source state

Command: bash -c '. "$0" && prf_run "$@"' /Users/ag/projects/iab/trusted-server/.git/worktrees/review-1506-854fe2e-deep/prfection-lib.sh /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-deep python3 -c 'import subprocess; print(subprocess.check_output(["git","rev-parse","HEAD"],text=True),end=""); print(subprocess.check_output(["git","status","--porcelain=v1"],text=True),end=""); subprocess.run(["git","diff","--exit-code","HEAD"],check=True)'; exit 0.

Complete output: '854fe2e36abf951ae0e4ee6522f67a93d361a3b7\n'.

Command: bash -c '. "$0" && prf_run "$@"' /Users/ag/projects/iab/trusted-server/.git/worktrees/review-1506-854fe2e-publisher/prfection-lib.sh /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-publisher python3 -c 'import subprocess; print(subprocess.check_output(["git","rev-parse","HEAD"],text=True),end=""); print(subprocess.check_output(["git","status","--porcelain=v1"],text=True),end=""); subprocess.run(["git","diff","--exit-code","HEAD"],check=True)'; exit 0.

Complete output: '854fe2e36abf951ae0e4ee6522f67a93d361a3b7\n'.

Command: bash -c '. "$0" && prf_run "$@"' /Users/ag/projects/iab/trusted-server/.git/worktrees/review-1506-854fe2e-transport/prfection-lib.sh /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-transport python3 -c 'import subprocess; print(subprocess.check_output(["git","rev-parse","HEAD"],text=True),end=""); print(subprocess.check_output(["git","status","--porcelain=v1"],text=True),end=""); subprocess.run(["git","diff","--exit-code","HEAD"],check=True)'; exit 0.

Complete output: '854fe2e36abf951ae0e4ee6522f67a93d361a3b7\n'.

Command: bash -c '. "$0" && prf_run "$@"' /Users/ag/projects/iab/trusted-server/.git/worktrees/review-1506-854fe2e-lifecycle/prfection-lib.sh /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-854fe2e-lifecycle python3 -c 'import subprocess; print(subprocess.check_output(["git","rev-parse","HEAD"],text=True),end=""); print(subprocess.check_output(["git","status","--porcelain=v1"],text=True),end=""); subprocess.run(["git","diff","--exit-code","HEAD"],check=True)'; exit 0.

Complete output: '854fe2e36abf951ae0e4ee6522f67a93d361a3b7\n'.

The original full-suite worktree's prior same-head clean-state proof remains in the suite record; no later source edits were made there. All five REVIEWER worktrees are retained pending user triage and publication/readback.

Construct the publisher origin send and begin inside the response-body
scope, so a raw origin body never gets its own owner and the attach holds.
Collect every raw publisher variant on Axum, Cloudflare, and Spin before
egress under today's caps. Narrow the overlap claim and test 6 to where the
overlap runs. Extend D10 to operator hop-by-hop fields, keep Image Optimizer
options on the final client HEAD, and state the telemetry latency's changed
stop point.

@aram356 aram356 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES — GitHub rejected the formal change-request event (HTTP 422: "Review Can not request changes on your own pull request"). Acting login and PR author are both aram356. This COMMENT records the intended verdict; four verified threads are resolved and two remain open.

Re-review of PR #1506 at 5bd11340844d2954c0c057cd2f914fa2544443d4, after review 5810751514 at 854fe2e36abf951ae0e4ee6522f67a93d361a3b7. Exact base: 51730bdaf841e4d7bb96c2258e5e98169bdff9a7. Phase: specification/planning. Acting login and PR author: aram356.

Four previous findings are verified, accepted and resolved: F1 (origin ownership), F3 (overlap eligibility), F5 (final HEAD optimizer), and F6 (latency stop point). Every reply and resolved/open state was independently read back from GitHub. F2 and F4 are partly fixed and remain in their existing threads. No duplicate finding threads or new one-click suggestions are proposed.

  • F2, should-fix: raw buffering/pre-egress errors are now covered, but processed HTML loses the former Cloudflare 10 MiB / Spin 8 MiB origin-input bounds. The new text gives only raw variants the adapter cap and keeps the processed-output setting (default 16 MiB). Preserve input/expanded-body limits independently of output limits, or explicitly adopt/disclose/qualify the relaxation; add processed-HTML boundary cases.
  • F4, should-fix: the new fixed-name ban handles malformed operator Connection, but the new wire-equivalence rationale is false for nominated fields. H removes x-example with Connection:x-example and retains it when that Connection is omitted. State/test the chosen retained-nominee consequence or preserve nomination removal before omission. No pre-cut Fastly wire regression or credential leak is alleged.

Both residuals are discussed in the original F2/F4 threads; their original malformed/raw-stream causes are acknowledged as addressed. Four acceptances cover the plan corrections, not an implementation that this docs-only PR does not contain.

The full updated design (2495 lines), unchanged historical handoff (2197 lines), complete base-to-head diff, fixing commit, every review/root/reply page, current checks, and issue acceptance criteria were inspected. Runtime, test and build code is unchanged from both the prior reviewed head and base. H is the immutable EdgeZero commit 9b31a69760255c279f163a3e56bc95a7eed228e3; its amended contract controls, not the TS handoff copy.

Coverage includes all four adapters and O1–O19, auction build/sign/budget/cancellation, publisher raw/range/HTML/template/EOF paths, EC/consent/privacy, canonical Fastly ingress/prepare/finalize/delivery/post-work, redirects/integrations/assets/S3/optimizer, async management stores, six-crate pins/features/SDK fork, CLI build/serve/deploy, manifests/fixtures/snippets/CI, applicability/qualification, rollout and rollback. Fresh source inventories remain 62 dependent files and 37 async-store implementers; H has 26 direct exact pins. The cold-start nested-block_on hypothesis was checked and withdrawn using the real call order.

Root independently reran the locked public H ownership/byte-limit probe: exit 0, 59 cases; 126/126 dependency identity/version/source/checksum tuples match H. It uses real facade preparation/head finishing with a fixed clock and scripted transport. It checks ownership, raw byte collection, and input-limit mechanics, not a full TS transformer or deployed runtime. Root's separate locked framing probe includes the real unchanged TS privacy/cache helper sources and demonstrates the Connection-nomination difference.

Qualification cross-check: H's 511 inventory rows split into 256 blocking, 5 gate, 50 conditional and 200 follow-up. Its 261 required rows are EdgeZero 237 (217 local/20 hosted) and TS 24 (15 local/4 hosted/5 consumer reviews). Confirmed-present parts/legs and explicit deferrals remain permitted under the amended EZ-Q1.6/Q1.8. Disclosed H defects, D19 reconciliation and future frozen-C qualification are not presented as fresh TS defects or as qualifications completed by this review.

Q1–Q7 remain open, as the design status and issue #1513 completion criteria state. The user/maintainer still supplies or locates those decisions; CREATOR records them. Settled D1–D4 are not re-opened. The detached static-operator-cookie/cache-privacy concession remains explicitly disclosed and visible in the audit, not recast as an undisclosed per-user EC leak.

Independent current-head full-suite execution completed: 93 completed command attempts, 92 exits of 0. The first Fastly deadline harness failed at deadline.rs:916, ‘should finish before deadline’ (harness exit1/Viceroy134); the exact unchanged full rerun passed all5. Its cause remains unconfirmed; no pre-existing/environmental classification or user dismissal is claimed. All applicable prescribed checks have passing final runs; the first failed attempt remains fully recorded. The final audit confirmed the exact head, empty staged/unstaged diffs and blank status. The ownership wrapper completed exit0. CREATOR-supplied docs-only logs/permission claims are attributed to CREATOR and do not substitute for this independent run. The suite runs current v0.0.11 runtime code at this docs-only head, not the future H/C cutover. No merge or approval is asserted.

Next actors: CREATOR finishes F2/F4; user/maintainer answers Q1–Q7. F1/F3/F5/F6 are resolved after independent verification; F2/F4 remain open. This is a change request, not approval.

Existing finding Verified state Reviewer disposition
F1 Resolved Reply
F2 Open, partly fixed Reply
F3 Resolved Reply
F4 Open, partly fixed Reply
F5 Resolved Reply
F6 Resolved Reply

Remote GitHub checks: 29 entries; states SUCCESS. Those service-run results are separate from the reviewer’s local execution; CodeQL was not run locally.

Local verification includes all eight clippy aliases; five Rust test aliases; CLI/codegen/digest; per-target debug/release/checks; docs/JS/Markdown/guards; JS1839/75files; allthree cache controls22/9/34; realCF4/Spin5deadlinecases; complete integration39/generator13/snippets2/parity28; separateEC1; trace3/runtime+4/browser; frameworkbrowsersNext.js53pass2skip andWordPress32pass23skip. No ignored/skipped test was represented as passing.

Independent current-head suite: exact commands, exits and actual result lines

Resolved CWD base REVIEW_WT: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-5bd1134-build. Raw-log base: /private/tmp/pr1506-r2-5bd1134/build. Only repeated narrative path metadata is abbreviated below; command strings and actual result blocks remain unchanged.

Reviewed head: 5bd11340844d2954c0c057cd2f914fa2544443d4. Exact PR base: 51730bdaf841e4d7bb96c2258e5e98169bdff9a7.

Runner: independent REVIEWER build-validator in its own detached worktree; every command ran inside the PRfection ownership wrapper. These are current-head reviewer executions, independent of author logs and prior-head results.

Selected environment: Node 24.20.0, npm 11.19.0, Rust/Cargo 1.98.1, Viceroy 0.21.0, Spin 4.1.0, wasm-bindgen 0.2.126, Wrangler 4.83.0, Docker desktop-linux. CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1, CI=true, CARGO_BUILD_JOBS=6, WRANGLER_SEND_METRICS=false, NO_COLOR=1. Remaining Rust phases use CARGO_INCREMENTAL=0, CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0, CARGO_PROFILE_BENCH_DEBUG=0, CARGO_PROFILE_RELEASE_DEBUG=0; default optimization levels, debug assertions, test selection, targets, and CI filters are unchanged. Runtime integration settings use canonical origin port 8888 and fictional fixture secrets/partners from the CI configuration.

Reviewer tooling: the initial read-only preflight (head/status/instructions/config/workflow listing) could not touch its private Git ownership metadata inside the sandbox. It created no worktree artifacts; later setup and checks ran through the escalated functioning ownership wrapper. This tooling permission error is separate from repository check results.

Storage bookkeeping: the first wasm-clock invocation was intentionally interrupted to restart unfinished Rust checks without incremental caches/debug symbols during low disk space. Its partial raw log is 17-wasm-clock.interrupted.log; storage-restart.json records that event. The resumed full wasm-clock check passed. cargo clean removed only this reviewer worktree's initial incomplete target (574.3 MiB). All completed JS/docs checks were retained without rerunning them.

Fastly deadline result: the first complete harness attempt exited 1 because its Viceroy test process exited 134 at network_fast_sibling_completes_while_another_body_trickles, deadline.rs:916, should finish before deadline. A later full, unchanged five-test rerun passed, exit 0, with the same command/environment/assertions. Both attempts are preserved below. The cause is unconfirmed; a passing rerun does not establish pre-existing or environmental causation, and this agent has not reproduced the failure at the exact base.

Scope notes: EOF finalization local harnesses are conditional on changes to EOF/publisher/HTML processor implementation and are not applicable to this docs-only PR. Linux real NSS trust tests are OS-specific and are not executable on this macOS host. CodeQL is a separate remote service check. CI-prescribed integration name filters and browser skip conditions are retained verbatim; ignored/skipped counts below are reported as such.

Completed command attempts: 93; exit 0: 92; nonzero: 1.

environment

CWD relative to REVIEW_WT: .. Exit: 0. Log: 01-environment.log.

node --version; npm --version; cargo --version; rustc --version; viceroy --version; spin --version; wasm-bindgen --version; command -v worker-build; docker info --format "{{.ServerVersion}}"

Actual result lines:

v24.20.0
11.19.0
cargo 1.98.1 (797e8a9bc 2026-08-05)
rustc 1.98.1 (48a229cea 2026-09-01)
viceroy 0.21.0
spin 4.1.0 (c0b3726 2026-08-25)
wasm-bindgen 0.2.126
REVIEW HARNESS: exit code 0

js-setup

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 02-js-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

docs-setup

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 03-docs-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

js-lint

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 04-js-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

js-format

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 05-js-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

js-build

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 06-js-build.log.

npm run build

Actual result lines:

REVIEW HARNESS: exit code 0

js-test

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 07-js-test.log.

npx vitest run

Actual result lines:

Testing types with tsc and vue-tsc is an experimental feature.
 Test Files  75 passed (75)
      Tests  1839 passed (1839)
Type Errors  no errors
REVIEW HARNESS: exit code 0

docs-lint

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 08-docs-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

docs-format

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 09-docs-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

markdown-format

CWD relative to REVIEW_WT: .. Exit: 0. Log: 10-markdown-format.log.

docs/node_modules/.bin/prettier --config docs/.prettierrc --check "*.md" ".claude/**/*.md" ".github/**/*.md" "crates/**/*.md" "scripts/**/*.md" "tinybird/**/*.md"

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

docs-build

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 11-docs-build.log.

npm run build

Actual result lines:

build complete in 18.40s.
REVIEW HARNESS: exit code 0

ci-node-pin-tests

CWD relative to REVIEW_WT: .. Exit: 0. Log: 12-ci-node-pin-tests.log.

node --test scripts/check-ci-node-pin.test.mjs

Actual result lines:

ℹ tests 30
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

ci-node-pin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 13-ci-node-pin.log.

node scripts/check-ci-node-pin.mjs

Actual result lines:

ok: 28 jobs in 8 workflows pin Node before compiling Rust
REVIEW HARNESS: exit code 0

docs-proposal-shellcheck

CWD relative to REVIEW_WT: .. Exit: 0. Log: 14-docs-proposal-shellcheck.log.

shellcheck scripts/docs-proposal/*.sh

Actual result lines:

REVIEW HARNESS: exit code 0

docs-proposal-hunks

CWD relative to REVIEW_WT: .. Exit: 0. Log: 15-docs-proposal-hunks.log.

node --test scripts/docs-proposal/hunks.test.mjs

Actual result lines:

ℹ tests 20
ℹ pass 20
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

docs-proposal-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 16-docs-proposal-test.log.

scripts/docs-proposal/test.sh

Actual result lines:

All documentation proposal script tests passed.
REVIEW HARNESS: exit code 0

storage-clean

CWD relative to REVIEW_WT: .. Exit: 0. Log: 01-storage-clean.log.

cargo clean

Actual result lines:

REVIEW HARNESS: exit code 0

wasm-clock

CWD relative to REVIEW_WT: .. Exit: 0. Log: 18-wasm-clock.log.

scripts/lint-wasm-clock.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 50.81s
REVIEW HARNESS: exit code 0

claude-symlink

CWD relative to REVIEW_WT: .. Exit: 0. Log: 19-claude-symlink.log.

test "$(git ls-tree HEAD CLAUDE.md | awk '{print $1}')" = 120000 && test "$(git cat-file blob HEAD:CLAUDE.md)" = AGENTS.md && test -f AGENTS.md && echo "CLAUDE.md symlink guard passed"

Actual result lines:

CLAUDE.md symlink guard passed
REVIEW HARNESS: exit code 0

cargo-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 20-cargo-fmt.log.

cargo fmt --all -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

clippy-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 21-clippy-fastly.log.

cargo clippy-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 49s
REVIEW HARNESS: exit code 0

clippy-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 22-clippy-axum.log.

cargo clippy-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 44s
REVIEW HARNESS: exit code 0

clippy-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 23-clippy-cloudflare.log.

cargo clippy-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 48.98s
REVIEW HARNESS: exit code 0

clippy-cloudflare-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 24-clippy-cloudflare-wasm.log.

cargo clippy-cloudflare-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 15.35s
REVIEW HARNESS: exit code 0

clippy-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 25-clippy-spin-native.log.

cargo clippy-spin-native

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 5.34s
REVIEW HARNESS: exit code 0

clippy-spin-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 26-clippy-spin-wasm.log.

cargo clippy-spin-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 59.13s
REVIEW HARNESS: exit code 0

clippy-cli

CWD relative to REVIEW_WT: .. Exit: 0. Log: 27-clippy-cli.log.

cargo clippy-cli

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 37s
REVIEW HARNESS: exit code 0

clippy-codegen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 28-clippy-codegen.log.

cargo clippy-codegen

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.48s
REVIEW HARNESS: exit code 0

core-digest-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 29-core-digest-clippy.log.

cargo clippy -p trusted-server-core --test template_build_digest -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 17.74s
REVIEW HARNESS: exit code 0

test-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 30-test-fastly.log.

cargo test-fastly

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 3m 38s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 1.49s
test result: ok. 3332 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 157.38s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 30 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-fastly-reuse

CWD relative to REVIEW_WT: .. Exit: 0. Log: 31-test-fastly-reuse.log.

cargo test-fastly-reuse

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1m 31s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.60s
REVIEW HARNESS: exit code 0

test-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 32-test-axum.log.

cargo test-axum

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 41.27s
test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 33-test-cloudflare.log.

cargo test-cloudflare

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 20.84s
test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 34-test-spin.log.

cargo test-spin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 3.66s
test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

core-digest-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 35-core-digest-test.log.

cargo test -p trusted-server-core --test template_build_digest

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 21.99s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
REVIEW HARNESS: exit code 0

cli-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 36-cli-test.log.

./scripts/test-cli.sh

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 3m 28s
test result: ok. 765 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.86s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.71s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.75s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.82s
test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.15s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.06s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
test result: ok. 1 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.23s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 3.06s
    Finished `test` profile [unoptimized] target(s) in 0.72s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 771 filtered out; finished in 12.74s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.68s
    Finished `test` profile [unoptimized] target(s) in 0.30s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 41.30s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.19s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 5.14s
    Finished `test` profile [unoptimized] target(s) in 1.69s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 16.72s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 3.01s
    Finished `test` profile [unoptimized] target(s) in 1.71s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 10.66s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

codegen-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 37-codegen-test.log.

cargo test --package trusted-server-openrtb-codegen --target aarch64-apple-darwin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 16.70s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

parity-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 38-parity-fmt.log.

cargo fmt --manifest-path crates/trusted-server-integration-tests/Cargo.toml -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

parity-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 39-parity-test.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --test parity

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1m 20s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
REVIEW HARNESS: exit code 0

parity-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 40-parity-clippy.log.

cargo clippy --manifest-path crates/trusted-server-integration-tests/Cargo.toml --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 28.03s
REVIEW HARNESS: exit code 0

lint-domains

CWD relative to REVIEW_WT: .. Exit: 0. Log: 41-lint-domains.log.

cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --bin ts -- dev lint domains --changed-vs 51730bdaf841e4d7bb96c2258e5e98169bdff9a7 --verbose

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 45s
scanned 2495 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-hard-cutover-design.md
scanned 2197 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-requirements.md
REVIEW HARNESS: exit code 0

build-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 42-build-fastly.log.

cargo build-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 36s
REVIEW HARNESS: exit code 0

build-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 43-build-axum.log.

cargo build-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 55.86s
REVIEW HARNESS: exit code 0

build-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 44-build-cloudflare.log.

cargo build-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 2m 49s
REVIEW HARNESS: exit code 0

check-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 45-check-fastly.log.

cargo check-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 21s
REVIEW HARNESS: exit code 0

check-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 46-check-axum.log.

cargo check-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 43.91s
REVIEW HARNESS: exit code 0

check-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 47-check-cloudflare.log.

cargo check-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 31.61s
REVIEW HARNESS: exit code 0

check-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 48-check-spin.log.

cargo check-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 25.63s
REVIEW HARNESS: exit code 0

check-cloudflare-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 49-check-cloudflare-native.log.

cargo check -p trusted-server-adapter-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 24.84s
REVIEW HARNESS: exit code 0

check-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 50-check-spin-native.log.

cargo check -p trusted-server-adapter-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 4.41s
REVIEW HARNESS: exit code 0

fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 51-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 2m 49s
REVIEW HARNESS: exit code 0

spin-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 52-spin-release.log.

TRUSTED_SERVER__PUBLISHER__ORIGIN_URL=http://127.0.0.1:8080 TRUSTED_SERVER__PUBLISHER__PROXY_SECRET=integration-test-proxy-secret TRUSTED_SERVER__EC__PASSPHRASE=integration-test-ec-secret-padded-32 TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK=false cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release

Actual result lines:

    Finished `release` profile [optimized] target(s) in 2m 40s
REVIEW HARNESS: exit code 0

fastly-deadlines

CWD relative to REVIEW_WT: .. Exit: 1. Log: 53-fastly-deadlines.log.

node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"

Actual result lines:

HEAD: 5bd11340844d2954c0c057cd2f914fa2544443d4
CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-5bd1134-build
COMMAND: node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"


running 5 tests
test platform::deadline::tests::network_fast_sibling_completes_while_another_body_trickles ... 
thread 'main' (1) panicked at crates/trusted-server-adapter-fastly/src/platform/deadline.rs:916:10:
should finish before deadline
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2026-11-07T21:20:38.618963Z ERROR error while executing at wasm backtrace:
    0: 0xf5f4df - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!abort
    1: 0xf537ed - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::sys::pal::wasi::abort_internal
    2: 0xf4e700 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::process::abort
    3: 0xf4ee02 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!__rustc[100742bb89c490cb]::__rust_abort
    4: 0xf4c78f - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!__rustc[100742bb89c490cb]::__rust_start_panic
    5: 0xf4ec99 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!__rustc[100742bb89c490cb]::rust_panic
    6: 0xf4de01 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::panicking::panic_with_hook
    7: 0xf4d92b - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::panicking::panic_handler::{closure#0}
    8: 0xf4d893 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::sys::backtrace::__rust_end_short_backtrace::<std[20022bcccacc018b]::panicking::panic_handler::{closure#0}, !>
    9: 0xf4eee5 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!__rustc[100742bb89c490cb]::rust_begin_unwind
   10: 0xf6c639 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!core[20f923910834e392]::panicking::panic_fmt
   11: 0xf7347f - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!core[20f923910834e392]::option::expect_failed
   12:  0x84ca0 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!<core[20f923910834e392]::option::Option<trusted_server_core[d258229c77be30f2]::platform::http::PlatformSelectResult>>::expect
   13:  0x51aab - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!trusted_server_adapter_fastly[f600ee7f5209a4c1]::platform::deadline::tests::network_fast_sibling_completes_while_another_body_trickles
   14:  0x51530 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!trusted_server_adapter_fastly[f600ee7f5209a4c1]::platform::deadline::tests::network_fast_sibling_completes_while_another_body_trickles::{closure#0}
   15:  0x310a1 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!<trusted_server_adapter_fastly[f600ee7f5209a4c1]::platform::deadline::tests::network_fast_sibling_completes_while_another_body_trickles::{closure#0} as core[20f923910834e392]::ops::function::FnOnce<()>>::call_once
   16:  0xd0f65 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!test[71c10c459ec20e27]::__rust_begin_short_backtrace::<core[20f923910834e392]::result::Result<(), alloc[1a096bf48401f5d5]::string::String>, fn() -> core[20f923910834e392]::result::Result<(), alloc[1a096bf48401f5d5]::string::String>>
   17:  0xe8d7f - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!<test[71c10c459ec20e27]::types::RunnableTest>::run
   18:  0xea13b - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!test[71c10c459ec20e27]::run_test
   19:  0xe78b5 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!test[71c10c459ec20e27]::console::run_tests_console
   20:  0xe2736 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!test[71c10c459ec20e27]::test_main_static
   21:  0xce22f - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!trusted_server_adapter_fastly[f600ee7f5209a4c1]::main
   22:  0x2dea5 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!<fn() as core[20f923910834e392]::ops::function::FnOnce<()>>::call_once
   23:  0xc525e - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
   24:  0x8cca7 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::rt::lang_start::<()>::{closure#0}
   25: 0xf531ba - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::rt::lang_start_internal
   26:  0x8a3ee - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!std[20022bcccacc018b]::rt::lang_start::<()>
   27:  0xd0f15 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!__main_void
   28:  0x184d1 - trusted_server_adapter_fastly-2d4bab662402e09e.wasm!_start
AssertionError [ERR_ASSERTION]: should run the network tests successfully

134 !== 0

    at main (file:///Users/ag/projects/iab/trusted-server/.worktrees/review-1506-5bd1134-build/crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs:147:14) {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: 134,
  expected: 0,
  operator: 'strictEqual',
  diff: 'simple'
}

REVIEW HARNESS: exit code 1

cloudflare-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 54-cloudflare-deadline-build.log.

cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 08s
REVIEW HARNESS: exit code 0

cloudflare-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 55-cloudflare-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 29.14s
REVIEW HARNESS: exit code 0

spin-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 56-spin-deadline-build.log.

cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 43.60s
REVIEW HARNESS: exit code 0

spin-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 57-spin-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 37.38s
REVIEW HARNESS: exit code 0

cloudflare-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 58-cloudflare-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime /private/tmp/review-1506-854fe2e/local-tools/node_modules/.bin/wrangler --wasm-bindgen /private/tmp/review-1506-854fe2e/wasm-bindgen-0.2.126/wasm-bindgen

Actual result lines:

PASS cloudflare /fast budget=80 origin=200: complete:243
PASS cloudflare /headers budget=80 origin=0: timeout:83
PASS cloudflare /body budget=80 origin=0: timeout:81
PASS cloudflare /headers budget=80 origin=200: timeout:202
REVIEW HARNESS: exit code 0

spin-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 59-spin-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"

Actual result lines:

PASS spin /fast budget=80 origin=200: complete:210
PASS spin /headers budget=80 origin=0: timeout:81
PASS spin /body budget=80 origin=0: timeout:82
PASS spin /headers budget=80 origin=200: timeout:202
PASS spin /large budget=2000 origin=0: oversized:55
REVIEW HARNESS: exit code 0

trace-script-skipped

CWD relative to REVIEW_WT: .. Exit: 0. Log: 60-trace-script-skipped.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_skipped_emitted_script_leaves_ad_state_untouched -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 3m 07s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.99s
REVIEW HARNESS: exit code 0

trace-script-freezes

CWD relative to REVIEW_WT: .. Exit: 0. Log: 61-trace-script-freezes.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_emitted_script_deep_freezes_owned_context_in_node -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 2.58s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.05s
REVIEW HARNESS: exit code 0

html-benchmark-smoke

CWD relative to REVIEW_WT: .. Exit: 0. Log: 62-html-benchmark-smoke.log.

cargo bench -p trusted-server-core --bench html_processor_bench -- --test

Actual result lines:

    Finished `bench` profile [optimized] target(s) in 3m 33s
Testing html_processor/process_chunk/10kb
Success
Testing html_processor/process_chunk/100kb
Success
REVIEW HARNESS: exit code 0

template-cache-esi

CWD relative to REVIEW_WT: .. Exit: 0. Log: 63-template-cache-esi.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh esi

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.03s
    Finished `dev` profile [unoptimized] target(s) in 2.17s
  22 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-inline

CWD relative to REVIEW_WT: .. Exit: 0. Log: 64-template-cache-inline.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh inline

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.09s
    Finished `dev` profile [unoptimized] target(s) in 0.93s
  9 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-purge

CWD relative to REVIEW_WT: .. Exit: 0. Log: 65-template-cache-purge.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh purge

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.43s
    Finished `dev` profile [unoptimized] target(s) in 1.30s
  34 passed, 0 failed
REVIEW HARNESS: exit code 0

cloudflare-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 66-cloudflare-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-cloudflare --target wasm32-unknown-unknown --features cloudflare,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 3.73s
REVIEW HARNESS: exit code 0

spin-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 67-spin-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-spin --target wasm32-wasip1 --features spin,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 2.09s
REVIEW HARNESS: exit code 0

cli-native-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 68-cli-native-clippy.log.

cargo clippy --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 13s
REVIEW HARNESS: exit code 0

canonical-port-preflight

CWD relative to REVIEW_WT: .. Exit: 0. Log: 101-canonical-port-preflight.log.

python3 /private/tmp/pr1506-r2-5bd1134/build/check-canonical-port.py

Actual result lines:

Canonical CI integration origin port 8888 is available
REVIEW HARNESS: exit code 0

matching-bindgen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 102-matching-bindgen.log.

node --version; wasm-bindgen --version; wrangler --version

Actual result lines:

v24.20.0
wasm-bindgen 0.2.126
4.83.0
REVIEW HARNESS: exit code 0

generate-integration-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 103-generate-integration-config.log.

./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 52.81s
REVIEW HARNESS: exit code 0

generate-trace-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 104-generate-trace-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace.toml INTEGRATION_BIDDER_ORIGIN_URL=http://127.0.0.1:8888 ARTIFACTS_DIR=/private/tmp/pr1506-r2-5bd1134/build/integration-artifacts/trace ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.67s
REVIEW HARNESS: exit code 0

generate-trace-auth-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 105-generate-trace-auth-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace-auth.toml ARTIFACTS_DIR=/private/tmp/pr1506-r2-5bd1134/build/integration-artifacts/trace-auth ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.24s
REVIEW HARNESS: exit code 0

integration-fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 106-integration-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 0.43s
REVIEW HARNESS: exit code 0

integration-axum-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 107-integration-axum-build.log.

cargo build -p trusted-server-adapter-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.48s
REVIEW HARNESS: exit code 0

integration-cloudflare-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 108-integration-cloudflare-build.log.

bash crates/trusted-server-adapter-cloudflare/build.sh

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 34s
REVIEW HARNESS: exit code 0

image-wordpress

CWD relative to REVIEW_WT: .. Exit: 0. Log: 109-image-wordpress.log.

docker build -t test-wordpress:latest crates/trusted-server-integration-tests/fixtures/frameworks/wordpress/

Actual result lines:

REVIEW HARNESS: exit code 0

image-nextjs

CWD relative to REVIEW_WT: .. Exit: 0. Log: 110-image-nextjs.log.

docker build --build-arg NODE_VERSION=24.20.0 -t test-nextjs:latest crates/trusted-server-integration-tests/fixtures/frameworks/nextjs/

Actual result lines:

REVIEW HARNESS: exit code 0

browser-setup

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 111-browser-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

playwright-chromium

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 112-playwright-chromium.log.

npx playwright install chromium

Actual result lines:

REVIEW HARNESS: exit code 0

browser-prebid-artifact

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 113-browser-prebid-artifact.log.

npm run build:prebid-external -- --modules-json '{"bidder":["rubiconBidAdapter"]}'

Actual result lines:

REVIEW HARNESS: exit code 0

initial-render-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 114-initial-render-fixture-tests.log.

node --test initial-render/pages.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

trace-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 115-trace-fixture-tests.log.

node --test trace-fixture.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

initial-render-ownership

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 116-initial-render-ownership.log.

node initial-render/run.cjs --out /private/tmp/pr1506-r2-5bd1134/build/initial-render-evidence

Actual result lines:

Controlled comparison assertions passed.
REVIEW HARNESS: exit code 0

prebuilt-trace-digest

CWD relative to REVIEW_WT: .. Exit: 0. Log: 117-prebuilt-trace-digest.log.

mkdir -p /private/tmp/pr1506-r2-5bd1134/build/prebuilt-bundle && node crates/trusted-server-js/lib/build-all.mjs --out-dir /private/tmp/pr1506-r2-5bd1134/build/prebuilt-bundle && TSJS_PREBUILT_DIR=/private/tmp/pr1506-r2-5bd1134/build/prebuilt-bundle cargo check-axum --locked

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.01s
REVIEW HARNESS: exit code 0

integration-matrix

CWD relative to REVIEW_WT: .. Exit: 0. Log: 118-integration-matrix.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin -- --include-ignored --skip test_wordpress_fastly --skip test_nextjs_fastly --skip trace_browser_workflow --skip trace_runtime_boundary --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 28.22s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 42.28s
test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 31.26s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
REVIEW HARNESS: exit code 0

integration-fastly-ec

CWD relative to REVIEW_WT: .. Exit: 0. Log: 119-integration-fastly-ec.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin test_ec_lifecycle_fastly -- --include-ignored --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1.30s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 48 filtered out; finished in 2.11s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 28 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

integration-trace-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 120-integration-trace-runtime.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_runtime_boundary -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 0.38s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 46 filtered out; finished in 31.53s
REVIEW HARNESS: exit code 0

integration-trace-browser

CWD relative to REVIEW_WT: .. Exit: 0. Log: 121-integration-trace-browser.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_browser_workflow -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1.04s
  1 passed (4.1s)
  1 passed (2.7s)
  1 passed (3.2s)
  1 passed (4.7s)
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 45 filtered out; finished in 28.35s
REVIEW HARNESS: exit code 0

browser-nextjs

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 122-browser-nextjs.log.

TEST_FRAMEWORK=nextjs PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r2-5bd1134/build/playwright-report-nextjs npx playwright test

Actual result lines:

  2 skipped
  53 passed (43.1s)
REVIEW HARNESS: exit code 0

browser-wordpress

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 123-browser-wordpress.log.

TEST_FRAMEWORK=wordpress PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r2-5bd1134/build/playwright-report-wordpress npx playwright test

Actual result lines:

  23 skipped
  32 passed (36.6s)
REVIEW HARNESS: exit code 0

final-source-state

CWD relative to REVIEW_WT: .. Exit: 0. Log: 124-final-source-state.log.

git rev-parse HEAD && test "$(git rev-parse HEAD)" = 5bd11340844d2954c0c057cd2f914fa2544443d4 && git diff --exit-code && git diff --cached --exit-code && git status --short

Actual result lines:

5bd11340844d2954c0c057cd2f914fa2544443d4
REVIEW HARNESS: exit code 0

fastly-deadlines-exact-rerun

CWD relative to REVIEW_WT: .. Exit: 0. Log: 150-fastly-deadlines-rerun.log.

node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"

Actual result lines:

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 242 filtered out; finished in 0.39s
REVIEW HARNESS: exit code 0
Independent H API probes and source checks

Root independently executed the following current-head API checks (both exit 0).

These use frozen H9b31a697, real public facade/head/framing APIs, and (for framing) the unchanged TS privacy/cache helper sources. Scripted transport/fixed time isolates ownership and limit mechanics; no migrated TS HTML or hosted qualification is claimed.

CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1 CARGO_TARGET_DIR=/private/tmp/pr1506-deep/probes/publisher/target cargo run --offline --locked --manifest-path /private/tmp/pr1506-r2-5bd1134/publisher/probe/Cargo.toml --target aarch64-apple-darwin

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-5bd1134-root. Exit: 0.

CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1 CARGO_TARGET_DIR=/private/tmp/pr1506-deep/probes/lifecycle/target cargo run --offline --locked --manifest-path /private/tmp/pr1506-r2-5bd1134/lifecycle-probe/Cargo.toml --target aarch64-apple-darwin

CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-5bd1134-root. Exit: 0.

Verbatim case results (59-case publisher probe; 126/126 dependency identities match H lock):

ownership mode=send variant=Buffered collection=false placement=InsideRun captured=ResponseBody stream=true attach=ok
ownership mode=send variant=PassThrough collection=false placement=InsideRun captured=ResponseBody stream=true attach=ok
ownership mode=send variant=Range206 collection=false placement=InsideRun captured=ResponseBody stream=true attach=ok
ownership mode=begin variant=Buffered collection=false placement=InsideRun captured=ResponseBody stream=true attach=ok
ownership mode=begin variant=PassThrough collection=false placement=InsideRun captured=ResponseBody stream=true attach=ok
ownership mode=begin variant=Range206 collection=false placement=InsideRun captured=ResponseBody stream=true attach=ok
processed-input adapter=Cloudflare old_client_cap=10485760 size=10485761 publisher_cap=16777216 explicit_encoded_cap=false result=ok bytes=10485761
processed-input adapter=Cloudflare old_client_cap=10485760 size=10485761 publisher_cap=16777216 explicit_encoded_cap=true result=response_too_large
processed-input adapter=Spin old_client_cap=8388608 size=8388609 publisher_cap=16777216 explicit_encoded_cap=false result=ok bytes=8388609
processed-input adapter=Spin old_client_cap=8388608 size=8388609 publisher_cap=16777216 explicit_encoded_cap=true result=response_too_large

Verbatim framing results:

malformed-source connection=Some("keep-alive,"): error=InvalidConnectionHeader
malformed-source connection=Some(""): error=InvalidConnectionHeader
nomination connection=Some("x-example"): status=200 OK, x-example=None, connection=None
nomination connection=None: status=200 OK, x-example=Some("example-value"), connection=None

Fresh source probes: python3 /private/tmp/pr1506-r2-5bd1134/publisher/audit-sources.py (exit0: F1 120 numbered lines, F2 200, F3 89, F6 81); python3 /private/tmp/pr1506-r2-5bd1134/transport/source_probe.py (exit0: 64 TS/H excerpts refreshed, complete2495-line design, 26pins, 62dependent files,37store implementers); python3 /private/tmp/pr1506-r2-5bd1134/audit-qualification.py (exit0:511inventoryrows/261required). All ran under their reviewer ownership guards.

Probe-only setup mistakes were corrected in scratch code (publisher Response alias was initially incorrectly given a type parameter). No TS/H source, assertions or suite filters were changed. The cold-start nested-executor hypothesis and test6 timeline hypothesis were checked and withdrawn.

Keep the Axum, Cloudflare, and Spin origin input caps for every publisher
classification, processed HTML included, through an encoded-byte cap and a
cumulative decoded-byte bound, separate from the processed-output cap. State
that skipping an operator Connection entry drops its nomination semantics,
replacing the claim that the skip is wire-neutral, and test the retained
field.

@aram356 aram356 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKED — the six previously reported defects are addressed in the planning document; maintainer decisions remain open.

Reviewed planning head a83dc4d891536f79c8b27070b498ec2bb9286b10 against exact base 51730bdaf841e4d7bb96c2258e5e98169bdff9a7, including the complete two-file diff (4,746 added lines), the complete update since 5bd11340844d2954c0c057cd2f914fa2544443d4, all review submissions and every thread/reply. Acting login and PR author: aram356 (one-account mode). This is a deliberate COMMENT verdict, not approval.

No new confirmed defect was identified. F2 now specifies the adapter input cap for every publisher classification, the H encoded-byte limit, cumulative TS decoded input and an independent processed-output limit. F4 explicitly accepts the loss of Connection nomination semantics when skipping forbidden operator fields, removes the wire-equivalence assertion, and requires the corresponding retained-header test. F1/F3/F5/F6 retain their previously accepted corrections. Thread dispositions and verification are recorded below.

The remaining blocker is the design's explicitly unanswered Q1–Q7 (lines 2291–2328). Issue #1513 requires maintainers to answer the open questions and record the answers in the design. The current PR body still requests those decisions; #1513 has no answer comments. Next actor: the user/maintainer must supply or identify the recorded decisions for the merge gate, timeouts/upload deadline, hosted operator/service/IO entitlement and measurements, HTTP/3, in-flight API usage, loopback HTTP endpoints, and strict bodiless Fastly framing. CREATOR can then record those decisions for re-review. These are user decisions, not invented implementation defects. Future hosted/frozen-candidate qualification remains #1508's separate work, not a missing runtime implementation in this documentation PR.

Coverage included all outbound sites and deletions; typed request/options/error mapping; request signing and host overrides; redirects, credentials and downgrade policy; auction batch scheduling, readiness, provider parsing, cancellation and telemetry; EC/consent/preload/pull-sync; publisher ownership, raw/processed/compressed bodies, templates and EOF; Fastly ingress/assembly/retention/hooks/egress/privacy/post-delivery work; Axum/Cloudflare/Spin buffering and state; dependency pins, WASM targets and store writes; test doubles, parity and actual runtime harnesses; fixture generators, build/deploy/CLI/documentation paths; rollout and qualification applicability. Fresh source audit refreshed 64 TS/H excerpts, 26 direct H pins, 62 dependent files and 37 store implementers. Runtime/test/build sources are unchanged from the exact base and previous reviewed head.

The immutable H target remains 9b31a69760255c279f163a3e56bc95a7eed228e3; its amended requirements control, while the TS requirements copy is explicitly the historical handoff. Fresh inventory parsing found 511 rows: 256 blocking, 5 gate, 50 conditional and 200 follow-up. The 261 required rows split into EdgeZero 237 (217 local/20 hosted) and TS 24 (15 local/4 hosted/5 reviews). Partial applicability is governed by EZ-Q1.6/.8; neither disclosed H defects nor deferred legs were counted as passing. D1–D4 remain settled.

Fresh current-head verification completed: 91 command attempts, all exited 0. REVIEWER's build-validator ran the full prescribed applicable suite in its isolated detached worktree; root independently reran the focused H/TS mechanism probes. Prescribed ignores, conditional browser skips and inapplicable checks are recorded separately in the command results below. No skipped check is represented as passing. The final source audit confirmed the exact head, empty staged/unstaged diffs and blank status; the ownership wrapper finished successfully.

The independent full suite runs the repository's existing runtime at this documentation-only head. The focused H mechanism probes verify that the corrected design is expressible; they do not execute a migrated TS implementation, frozen candidate C, hosted Fastly, or future cutover qualification. Author-supplied docs logs remain attributed to the author and did not replace this run. No relayed docs-only waiver was accepted.

Existing finding Verified disposition Original thread
F1 Previously accepted/resolved; correction retained Thread
F2 Fixed accepted; resolved this round Thread
F3 Previously accepted/resolved; correction retained Thread
F4 Fixed accepted; resolved this round Thread
F5 Previously accepted/resolved; correction retained Thread
F6 Previously accepted/resolved; correction retained Thread

All six thread resolution states and the two new acceptance replies were independently read back from GitHub. No duplicate finding threads were opened.

Remote GitHub checks: 29 entries; states SUCCESS. These are service-run results, separate from the reviewer suite. CodeQL was not executed locally.

Current-head full suite: exact commands, exits and result lines

Resolved CWD base REVIEW_WT: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-a83dc4d-build. Raw-log base: /private/tmp/pr1506-r3-a83dc4d/build. Only repeated narrative path metadata is abbreviated; command strings and actual result blocks are unchanged.

Reviewed head: a83dc4d891536f79c8b27070b498ec2bb9286b10. Exact PR base: 51730bdaf841e4d7bb96c2258e5e98169bdff9a7.

Runner: independent REVIEWER build-validator in a fresh detached worktree. Every project setup/check command ran through the serialized PRfection ownership wrapper. All checks below were executed at this head; neither prior-head results nor author logs substitute for these runs.

Selected tools/environment: Node 24.20.0, npm 11.19.0, Rust/Cargo 1.98.1, Viceroy 0.21.0, Spin 4.1.0, wasm-bindgen 0.2.126, Wrangler 4.83.0, Docker desktop-linux. CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1, CI=true, CARGO_BUILD_JOBS=6, WRANGLER_SEND_METRICS=false, NO_COLOR=1. All Rust phases use CARGO_INCREMENTAL=0, CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0, CARGO_PROFILE_BENCH_DEBUG=0, CARGO_PROFILE_RELEASE_DEBUG=0; optimization levels, debug assertions, test cases, targets, and CI filters are unchanged. Runtime integration uses canonical origin port 8888 and the fictional CI fixture settings. Only selected reproducibility variables are saved; inherited editor/session metadata is omitted.

Cache policy: dedicated REVIEWER-only external Cargo directories /private/tmp/pr1506-reviewer-build-cache/root-target and /private/tmp/pr1506-reviewer-build-cache/integration-target were created empty for this head. Owned symlinks at the worktree root and integration crate target paths preserve script artifact paths. No user or CREATOR target was read, copied, or shared; no prior tests were reused. The integration target symlink was ignored through private Git info/exclude, without a source change. The owner/policy records are preserved in cache-policy.json and the cache OWNER.json. These external build caches remain after role cleanup; removing a worktree removes its owned links only.

Suite discovery: the current AGENTS.md lists 15 gates; the current workflows, action configuration, and cargo aliases were inspected and saved. The only change from the independently reviewed previous head is design Markdown, so the prescribed command map remains applicable. Conditional local EOF implementation harnesses are not applicable to this docs-only PR. Linux real NSS trust tests are OS-specific and not executable on this macOS host. CodeQL is a separate remote service check. CI integration name filters and browser skip conditions are preserved verbatim and reported below.

Completed command attempts: 91; exit 0: 91; nonzero: 0.

Final enclosing ownership wrapper exit: 0. Final source audit confirms the exact reviewed SHA, empty staged/unstaged diffs, and blank git status --short. No source, assertions, or dependencies were edited; the root REVIEWER handles publication and worktree cleanup.

environment

CWD relative to REVIEW_WT: .. Exit: 0. Log: 01-environment.log.

node --version; npm --version; cargo --version; rustc --version; viceroy --version; spin --version; wasm-bindgen --version; command -v worker-build; docker info --format "{{.ServerVersion}}"

Actual result lines:

v24.20.0
11.19.0
cargo 1.98.1 (797e8a9bc 2026-08-05)
rustc 1.98.1 (48a229cea 2026-09-01)
viceroy 0.21.0
spin 4.1.0 (c0b3726 2026-08-25)
wasm-bindgen 0.2.126
REVIEW HARNESS: exit code 0

js-setup

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 02-js-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

docs-setup

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 03-docs-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

js-lint

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 04-js-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

js-format

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 05-js-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

js-build

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 06-js-build.log.

npm run build

Actual result lines:

REVIEW HARNESS: exit code 0

js-test

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 07-js-test.log.

npx vitest run

Actual result lines:

Testing types with tsc and vue-tsc is an experimental feature.
 Test Files  75 passed (75)
      Tests  1839 passed (1839)
Type Errors  no errors
REVIEW HARNESS: exit code 0

docs-lint

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 08-docs-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

docs-format

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 09-docs-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

markdown-format

CWD relative to REVIEW_WT: .. Exit: 0. Log: 10-markdown-format.log.

docs/node_modules/.bin/prettier --config docs/.prettierrc --check "*.md" ".claude/**/*.md" ".github/**/*.md" "crates/**/*.md" "scripts/**/*.md" "tinybird/**/*.md"

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

docs-build

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 11-docs-build.log.

npm run build

Actual result lines:

build complete in 6.88s.
REVIEW HARNESS: exit code 0

ci-node-pin-tests

CWD relative to REVIEW_WT: .. Exit: 0. Log: 12-ci-node-pin-tests.log.

node --test scripts/check-ci-node-pin.test.mjs

Actual result lines:

ℹ tests 30
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

ci-node-pin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 13-ci-node-pin.log.

node scripts/check-ci-node-pin.mjs

Actual result lines:

ok: 28 jobs in 8 workflows pin Node before compiling Rust
REVIEW HARNESS: exit code 0

docs-proposal-shellcheck

CWD relative to REVIEW_WT: .. Exit: 0. Log: 14-docs-proposal-shellcheck.log.

shellcheck scripts/docs-proposal/*.sh

Actual result lines:

REVIEW HARNESS: exit code 0

docs-proposal-hunks

CWD relative to REVIEW_WT: .. Exit: 0. Log: 15-docs-proposal-hunks.log.

node --test scripts/docs-proposal/hunks.test.mjs

Actual result lines:

ℹ tests 20
ℹ pass 20
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

docs-proposal-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 16-docs-proposal-test.log.

scripts/docs-proposal/test.sh

Actual result lines:

All documentation proposal script tests passed.
REVIEW HARNESS: exit code 0

wasm-clock

CWD relative to REVIEW_WT: .. Exit: 0. Log: 17-wasm-clock.log.

scripts/lint-wasm-clock.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 36.69s
REVIEW HARNESS: exit code 0

claude-symlink

CWD relative to REVIEW_WT: .. Exit: 0. Log: 18-claude-symlink.log.

test "$(git ls-tree HEAD CLAUDE.md | awk '{print $1}')" = 120000 && test "$(git cat-file blob HEAD:CLAUDE.md)" = AGENTS.md && test -f AGENTS.md && echo "CLAUDE.md symlink guard passed"

Actual result lines:

CLAUDE.md symlink guard passed
REVIEW HARNESS: exit code 0

cargo-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 19-cargo-fmt.log.

cargo fmt --all -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

clippy-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 20-clippy-fastly.log.

cargo clippy-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 35.59s
REVIEW HARNESS: exit code 0

clippy-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 21-clippy-axum.log.

cargo clippy-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 28.93s
REVIEW HARNESS: exit code 0

clippy-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 22-clippy-cloudflare.log.

cargo clippy-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.73s
REVIEW HARNESS: exit code 0

clippy-cloudflare-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 23-clippy-cloudflare-wasm.log.

cargo clippy-cloudflare-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 8.61s
REVIEW HARNESS: exit code 0

clippy-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 24-clippy-spin-native.log.

cargo clippy-spin-native

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.97s
REVIEW HARNESS: exit code 0

clippy-spin-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 25-clippy-spin-wasm.log.

cargo clippy-spin-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 42.11s
REVIEW HARNESS: exit code 0

clippy-cli

CWD relative to REVIEW_WT: .. Exit: 0. Log: 26-clippy-cli.log.

cargo clippy-cli

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1m 34s
REVIEW HARNESS: exit code 0

clippy-codegen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 27-clippy-codegen.log.

cargo clippy-codegen

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 6.84s
REVIEW HARNESS: exit code 0

core-digest-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 28-core-digest-clippy.log.

cargo clippy -p trusted-server-core --test template_build_digest -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 20.89s
REVIEW HARNESS: exit code 0

test-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 29-test-fastly.log.

cargo test-fastly

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 2m 11s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 2.28s
test result: ok. 3332 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 90.73s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 30 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out; finished in 0.01s
REVIEW HARNESS: exit code 0

test-fastly-reuse

CWD relative to REVIEW_WT: .. Exit: 0. Log: 30-test-fastly-reuse.log.

cargo test-fastly-reuse

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 3m 27s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 5.61s
REVIEW HARNESS: exit code 0

test-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 31-test-axum.log.

cargo test-axum

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1m 55s
test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 32-test-cloudflare.log.

cargo test-cloudflare

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1m 03s
test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 33-test-spin.log.

cargo test-spin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 10.30s
test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

core-digest-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 34-core-digest-test.log.

cargo test -p trusted-server-core --test template_build_digest

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 41.40s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.60s
REVIEW HARNESS: exit code 0

cli-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 35-cli-test.log.

./scripts/test-cli.sh

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 3m 44s
test result: ok. 765 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.74s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 2.19s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.83s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.89s
test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s
test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.86s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.72s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
test result: ok. 1 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.16s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 3.19s
    Finished `test` profile [unoptimized] target(s) in 0.75s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 771 filtered out; finished in 26.42s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.01s
    Finished `test` profile [unoptimized] target(s) in 6.57s
    Finished `test` profile [unoptimized] target(s) in 0.90s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 62.95s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.06s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.02s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.11s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.13s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 4.86s
    Finished `test` profile [unoptimized] target(s) in 0.33s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 5.46s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.99s
    Finished `test` profile [unoptimized] target(s) in 0.72s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 2.90s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

codegen-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 36-codegen-test.log.

cargo test --package trusted-server-openrtb-codegen --target aarch64-apple-darwin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 4.23s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

parity-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 37-parity-fmt.log.

cargo fmt --manifest-path crates/trusted-server-integration-tests/Cargo.toml -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

parity-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 38-parity-test.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --test parity

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 41.10s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
REVIEW HARNESS: exit code 0

parity-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 39-parity-clippy.log.

cargo clippy --manifest-path crates/trusted-server-integration-tests/Cargo.toml --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 46.58s
REVIEW HARNESS: exit code 0

lint-domains

CWD relative to REVIEW_WT: .. Exit: 0. Log: 40-lint-domains.log.

cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --bin ts -- dev lint domains --changed-vs 51730bdaf841e4d7bb96c2258e5e98169bdff9a7 --verbose

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 51.88s
scanned 2549 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-hard-cutover-design.md
scanned 2197 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-requirements.md
REVIEW HARNESS: exit code 0

build-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 41-build-fastly.log.

cargo build-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 24.59s
REVIEW HARNESS: exit code 0

build-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 42-build-axum.log.

cargo build-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 28.19s
REVIEW HARNESS: exit code 0

build-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 43-build-cloudflare.log.

cargo build-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 44.19s
REVIEW HARNESS: exit code 0

check-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 44-check-fastly.log.

cargo check-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 12.85s
REVIEW HARNESS: exit code 0

check-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 45-check-axum.log.

cargo check-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 20.59s
REVIEW HARNESS: exit code 0

check-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 46-check-cloudflare.log.

cargo check-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 50.55s
REVIEW HARNESS: exit code 0

check-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 47-check-spin.log.

cargo check-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 28.65s
REVIEW HARNESS: exit code 0

check-cloudflare-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 48-check-cloudflare-native.log.

cargo check -p trusted-server-adapter-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 13.41s
REVIEW HARNESS: exit code 0

check-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 49-check-spin-native.log.

cargo check -p trusted-server-adapter-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.46s
REVIEW HARNESS: exit code 0

fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 50-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 3m 29s
REVIEW HARNESS: exit code 0

spin-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 51-spin-release.log.

TRUSTED_SERVER__PUBLISHER__ORIGIN_URL=http://127.0.0.1:8080 TRUSTED_SERVER__PUBLISHER__PROXY_SECRET=integration-test-proxy-secret TRUSTED_SERVER__EC__PASSPHRASE=integration-test-ec-secret-padded-32 TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK=false cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release

Actual result lines:

    Finished `release` profile [optimized] target(s) in 2m 19s
REVIEW HARNESS: exit code 0

fastly-deadlines

CWD relative to REVIEW_WT: .. Exit: 0. Log: 52-fastly-deadlines.log.

node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"

Actual result lines:

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 242 filtered out; finished in 0.37s
REVIEW HARNESS: exit code 0

cloudflare-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 53-cloudflare-deadline-build.log.

cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 50.16s
REVIEW HARNESS: exit code 0

cloudflare-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 54-cloudflare-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 28.20s
REVIEW HARNESS: exit code 0

spin-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 55-spin-deadline-build.log.

cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 47.37s
REVIEW HARNESS: exit code 0

spin-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 56-spin-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 23.63s
REVIEW HARNESS: exit code 0

cloudflare-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 57-cloudflare-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime /private/tmp/review-1506-854fe2e/local-tools/node_modules/.bin/wrangler --wasm-bindgen /private/tmp/review-1506-854fe2e/wasm-bindgen-0.2.126/wasm-bindgen

Actual result lines:

PASS cloudflare /fast budget=80 origin=200: complete:204
PASS cloudflare /headers budget=80 origin=0: timeout:81
PASS cloudflare /body budget=80 origin=0: timeout:81
PASS cloudflare /headers budget=80 origin=200: timeout:200
REVIEW HARNESS: exit code 0

spin-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 58-spin-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"

Actual result lines:

PASS spin /fast budget=80 origin=200: complete:203
PASS spin /headers budget=80 origin=0: timeout:82
PASS spin /body budget=80 origin=0: timeout:82
PASS spin /headers budget=80 origin=200: timeout:202
PASS spin /large budget=2000 origin=0: oversized:4
REVIEW HARNESS: exit code 0

trace-script-skipped

CWD relative to REVIEW_WT: .. Exit: 0. Log: 59-trace-script-skipped.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_skipped_emitted_script_leaves_ad_state_untouched -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1m 45s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.56s
REVIEW HARNESS: exit code 0

trace-script-freezes

CWD relative to REVIEW_WT: .. Exit: 0. Log: 60-trace-script-freezes.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_emitted_script_deep_freezes_owned_context_in_node -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 0.90s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.04s
REVIEW HARNESS: exit code 0

html-benchmark-smoke

CWD relative to REVIEW_WT: .. Exit: 0. Log: 61-html-benchmark-smoke.log.

cargo bench -p trusted-server-core --bench html_processor_bench -- --test

Actual result lines:

    Finished `bench` profile [optimized] target(s) in 2m 35s
Testing html_processor/process_chunk/10kb
Success
Testing html_processor/process_chunk/100kb
Success
REVIEW HARNESS: exit code 0

template-cache-esi

CWD relative to REVIEW_WT: .. Exit: 0. Log: 62-template-cache-esi.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh esi

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.44s
    Finished `dev` profile [unoptimized] target(s) in 0.56s
  22 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-inline

CWD relative to REVIEW_WT: .. Exit: 0. Log: 63-template-cache-inline.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh inline

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 2.43s
    Finished `dev` profile [unoptimized] target(s) in 0.85s
  9 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-purge

CWD relative to REVIEW_WT: .. Exit: 0. Log: 64-template-cache-purge.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh purge

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.66s
    Finished `dev` profile [unoptimized] target(s) in 0.44s
  34 passed, 0 failed
REVIEW HARNESS: exit code 0

cloudflare-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 65-cloudflare-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-cloudflare --target wasm32-unknown-unknown --features cloudflare,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 2.87s
REVIEW HARNESS: exit code 0

spin-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 66-spin-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-spin --target wasm32-wasip1 --features spin,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.42s
REVIEW HARNESS: exit code 0

cli-native-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 67-cli-native-clippy.log.

cargo clippy --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 36.42s
REVIEW HARNESS: exit code 0

canonical-port-preflight

CWD relative to REVIEW_WT: .. Exit: 0. Log: 101-canonical-port-preflight.log.

python3 /private/tmp/pr1506-r3-a83dc4d/build/check-canonical-port.py

Actual result lines:

Canonical CI integration origin port 8888 is available
REVIEW HARNESS: exit code 0

matching-bindgen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 102-matching-bindgen.log.

node --version; wasm-bindgen --version; wrangler --version

Actual result lines:

v24.20.0
wasm-bindgen 0.2.126
4.83.0
REVIEW HARNESS: exit code 0

generate-integration-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 103-generate-integration-config.log.

./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 36.60s
REVIEW HARNESS: exit code 0

generate-trace-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 104-generate-trace-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace.toml INTEGRATION_BIDDER_ORIGIN_URL=http://127.0.0.1:8888 ARTIFACTS_DIR=/private/tmp/pr1506-r3-a83dc4d/build/integration-artifacts/trace ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.65s
REVIEW HARNESS: exit code 0

generate-trace-auth-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 105-generate-trace-auth-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace-auth.toml ARTIFACTS_DIR=/private/tmp/pr1506-r3-a83dc4d/build/integration-artifacts/trace-auth ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.36s
REVIEW HARNESS: exit code 0

integration-fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 106-integration-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 0.68s
REVIEW HARNESS: exit code 0

integration-axum-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 107-integration-axum-build.log.

cargo build -p trusted-server-adapter-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.59s
REVIEW HARNESS: exit code 0

integration-cloudflare-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 108-integration-cloudflare-build.log.

bash crates/trusted-server-adapter-cloudflare/build.sh

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 32s
REVIEW HARNESS: exit code 0

image-wordpress

CWD relative to REVIEW_WT: .. Exit: 0. Log: 109-image-wordpress.log.

docker build -t test-wordpress:latest crates/trusted-server-integration-tests/fixtures/frameworks/wordpress/

Actual result lines:

REVIEW HARNESS: exit code 0

image-nextjs

CWD relative to REVIEW_WT: .. Exit: 0. Log: 110-image-nextjs.log.

docker build --build-arg NODE_VERSION=24.20.0 -t test-nextjs:latest crates/trusted-server-integration-tests/fixtures/frameworks/nextjs/

Actual result lines:

REVIEW HARNESS: exit code 0

browser-setup

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 111-browser-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

playwright-chromium

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 112-playwright-chromium.log.

npx playwright install chromium

Actual result lines:

REVIEW HARNESS: exit code 0

browser-prebid-artifact

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 113-browser-prebid-artifact.log.

npm run build:prebid-external -- --modules-json '{"bidder":["rubiconBidAdapter"]}'

Actual result lines:

REVIEW HARNESS: exit code 0

initial-render-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 114-initial-render-fixture-tests.log.

node --test initial-render/pages.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

trace-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 115-trace-fixture-tests.log.

node --test trace-fixture.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

initial-render-ownership

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 116-initial-render-ownership.log.

node initial-render/run.cjs --out /private/tmp/pr1506-r3-a83dc4d/build/initial-render-evidence

Actual result lines:

Controlled comparison assertions passed.
REVIEW HARNESS: exit code 0

prebuilt-trace-digest

CWD relative to REVIEW_WT: .. Exit: 0. Log: 117-prebuilt-trace-digest.log.

mkdir -p /private/tmp/pr1506-r3-a83dc4d/build/prebuilt-bundle && node crates/trusted-server-js/lib/build-all.mjs --out-dir /private/tmp/pr1506-r3-a83dc4d/build/prebuilt-bundle && TSJS_PREBUILT_DIR=/private/tmp/pr1506-r3-a83dc4d/build/prebuilt-bundle cargo check-axum --locked

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 9.57s
REVIEW HARNESS: exit code 0

integration-matrix

CWD relative to REVIEW_WT: .. Exit: 0. Log: 118-integration-matrix.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin -- --include-ignored --skip test_wordpress_fastly --skip test_nextjs_fastly --skip trace_browser_workflow --skip trace_runtime_boundary --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 31.40s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 38.68s
test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 26.55s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
REVIEW HARNESS: exit code 0

integration-fastly-ec

CWD relative to REVIEW_WT: .. Exit: 0. Log: 119-integration-fastly-ec.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin test_ec_lifecycle_fastly -- --include-ignored --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1.02s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 48 filtered out; finished in 2.21s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 28 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

integration-trace-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 120-integration-trace-runtime.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_runtime_boundary -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 0.31s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 46 filtered out; finished in 22.75s
REVIEW HARNESS: exit code 0

integration-trace-browser

CWD relative to REVIEW_WT: .. Exit: 0. Log: 121-integration-trace-browser.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_browser_workflow -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 0.64s
  1 passed (2.9s)
  1 passed (3.8s)
  1 passed (1.5s)
  1 passed (1.4s)
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 45 filtered out; finished in 20.87s
REVIEW HARNESS: exit code 0

browser-nextjs

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 122-browser-nextjs.log.

TEST_FRAMEWORK=nextjs PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r3-a83dc4d/build/playwright-report-nextjs npx playwright test

Actual result lines:

  2 skipped
  53 passed (37.4s)
REVIEW HARNESS: exit code 0

browser-wordpress

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 123-browser-wordpress.log.

TEST_FRAMEWORK=wordpress PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r3-a83dc4d/build/playwright-report-wordpress npx playwright test

Actual result lines:

  23 skipped
  32 passed (32.9s)
REVIEW HARNESS: exit code 0

final-source-state

CWD relative to REVIEW_WT: .. Exit: 0. Log: 124-final-source-state.log.

git rev-parse HEAD && test "$(git rev-parse HEAD)" = a83dc4d891536f79c8b27070b498ec2bb9286b10 && git diff --exit-code && git diff --cached --exit-code && git status --short

Actual result lines:

a83dc4d891536f79c8b27070b498ec2bb9286b10
REVIEW HARNESS: exit code 0
Fresh H/TS mechanism probes and source evidence

Root independently reran both focused probes at this head, each through the ownership guard in the detached root review worktree. CWD: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-a83dc4d-root. Both exited 0. They use immutable H source and actual TS source excerpts/helpers; scripted transports and fixed time isolate ownership/limits/framing, rather than claiming migrated runtime or hosted behavior.

CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1 CARGO_TARGET_DIR=/private/tmp/pr1506-deep/probes/publisher/target cargo run --offline --locked --manifest-path /private/tmp/pr1506-r3-a83dc4d/publisher/probe/Cargo.toml --target aarch64-apple-darwin

Actual source/provenance/case counts:

source-identical streaming_processor.rs:88-108 sha256=7b9b41f94c26a65c8c80f80c0bbe8a18110869fbe3ded2cfa4be064b9da8a84e
source-identical streaming_processor.rs:420-1171 sha256=b0d589dabf350cc83943f56bcb8d0b7efa34fb0bf510ea3278fe4c095efe8352
source-identical publisher.rs:3020-3056 sha256=cf1ab2bbc16d83762f936535561b5897d0124c61653001ce044577f9d758cacc
dependency provenance: H matches=128/129, TS lock additions=['error-stack@0.6.0']
ownership-and-raw-result.txt: 59 cases
input-decode-output-result.txt: 18 cases

Actual input/decode/output cases (the other 59 controls cover ownership, raw collection, source errors, range/pass-through and template-hit shapes):

boundary adapter=Cloudflare coding=None input_cap=10485760 encoded=10485760 decoded=10485760 result=ok
boundary adapter=Cloudflare coding=None input_cap=10485760 encoded=10485761 decoded=10485761 result=H_encoded_rejected:response_too_large
boundary adapter=Cloudflare coding=Gzip input_cap=10485760 encoded=10259 decoded=10485760 result=ok
boundary adapter=Cloudflare coding=Gzip input_cap=10485760 encoded=10259 decoded=10485761 result=TS_decoded_rejected:Proxy
boundary adapter=Cloudflare coding=Deflate input_cap=10485760 encoded=10247 decoded=10485760 result=ok
boundary adapter=Cloudflare coding=Deflate input_cap=10485760 encoded=10247 decoded=10485761 result=TS_decoded_rejected:Proxy
boundary adapter=Cloudflare coding=Brotli input_cap=10485760 encoded=69 decoded=10485760 result=ok
boundary adapter=Cloudflare coding=Brotli input_cap=10485760 encoded=69 decoded=10485761 result=TS_decoded_rejected:Proxy
output adapter=Cloudflare input_cap=10485760 output_cap=16777216 final_extra=1 result=publisher body exceeded maximum buffered size
boundary adapter=Spin coding=None input_cap=8388608 encoded=8388608 decoded=8388608 result=ok
boundary adapter=Spin coding=None input_cap=8388608 encoded=8388609 decoded=8388609 result=H_encoded_rejected:response_too_large
boundary adapter=Spin coding=Gzip input_cap=8388608 encoded=8227 decoded=8388608 result=ok
boundary adapter=Spin coding=Gzip input_cap=8388608 encoded=8227 decoded=8388609 result=TS_decoded_rejected:Proxy
boundary adapter=Spin coding=Deflate input_cap=8388608 encoded=8215 decoded=8388608 result=ok
boundary adapter=Spin coding=Deflate input_cap=8388608 encoded=8215 decoded=8388609 result=TS_decoded_rejected:Proxy
boundary adapter=Spin coding=Brotli input_cap=8388608 encoded=46 decoded=8388608 result=ok
boundary adapter=Spin coding=Brotli input_cap=8388608 encoded=50 decoded=8388609 result=TS_decoded_rejected:Proxy
output adapter=Spin input_cap=8388608 output_cap=16777216 final_extra=1 result=publisher body exceeded maximum buffered size
CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1 CARGO_TARGET_DIR=/private/tmp/pr1506-deep/probes/publisher/target cargo run --offline --locked --manifest-path /private/tmp/pr1506-r3-a83dc4d/lifecycle-probe/Cargo.toml --target aarch64-apple-darwin

Actual framing results (126/126 dependency identities match H lock):

malformed-source connection=Some("keep-alive,"): error=InvalidConnectionHeader
malformed-source connection=Some(""): error=InvalidConnectionHeader
nomination connection=Some("x-example"): status=200 OK, x-example=None, connection=None
nomination connection=None: status=200 OK, x-example=Some("example-value"), connection=None

Fresh source/audit commands, each exit 0: python3 /private/tmp/pr1506-r3-a83dc4d/publisher/audit-sources.py (492 F2 lines, 225 accepted-regression lines); python3 /private/tmp/pr1506-r3-a83dc4d/lifecycle/source-check.py (skip, nomination concession, validate/push/test and actual H/TS cross-checks); python3 /private/tmp/pr1506-r3-a83dc4d/audit-transport-build.py (64 source excerpts, 26 H pins, 62 dependent files, 37 store implementers); python3 /private/tmp/pr1506-r3-a83dc4d/audit-qualification.py (511 rows/261 required and the complete current question ranges). All ran under reviewer ownership guards.

Scratch setup corrections are retained separately: the first codec probe compile exited 101 because its temporary manifest omitted the direct log dependency used by the copied source; that probe-only manifest was corrected. The initial framing lock resolved newer transitive packages; its result was retained, then the scratch lock was seeded from the H-aligned publisher probe, and the final --offline --locked run above matched all 126 H identities and passed. TS/H source, suite assertions, filters and deadlines were unchanged. The upstream proc-macro-error2 future-compatibility warning is preserved in raw probe logs.

…tover spec

The cut is stacked on PR 275 and follows its head; main merges without
waiting for EdgeZero's qualification record, and production deploys do not
wait for qualification. Limits stay app-owned with D7's values, hosted
qualification is manual, HTTP/3 is qualified per adapter, new outbound-layer
uses are not frozen, loopback http bidder endpoints are accepted, and the
bodiless part of EZ-18.4 is withdrawn in favor of strict suppression. The
HTTP/3 and EZ-18.4 changes are requested in PR 275 threads.

@aram356 aram356 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKED — no new confirmed material author defect; direct requester confirmation of the recorded qualification-policy change is still pending.

Re-reviewed planning PR #1506 at 85f5ca3d962e85e07b29076daab3908f63ee4929, with diff/review base 51730bdaf841e4d7bb96c2258e5e98169bdff9a7, the complete 4,819-line two-file addition, and the complete update since a83dc4d891536f79c8b27070b498ec2bb9286b10. Acting login and PR author are both aram356. All review submissions, all comment pages and every reply in the six prior threads were read. No new inline finding or duplicate acceptance reply is needed.

The seven answers are now recorded, so the previous document omission is addressed. The new D5 deliberately permits merge and production before EdgeZero qualification and follows an exact PR275 commit at each repin. It discloses unqualified deployment and orphaned-pin risks; Q4/Q7 distinguish requested contract amendments from the unchanged current contract, retain the conditional HTTP/3 leg, and leave the nine SDK-parity failures and EZ-18.4 unqualified.

The remaining decision belongs to the user/requester: confirm that the Q1–Q7 decisions attributed to the maintainer in this revision are the intended requirements, particularly merge/production without the EZ-Q1 record. I asked directly during this pass; no direct answer has arrived. The reviewer skill treats PR assertions as evidence rather than authority to approve or waive gates.

The six earlier specification corrections remain substantive and accepted: shared publisher scope construction; raw/processed input caps with cumulative decoding and a separate output budget; reachable EC/KV overlap; explicit Connection-nomination policy; final Image Optimizer GET/HEAD options; and telemetry observation boundaries. Their existing resolved states are verified below. Trusted Server runtime/test/build/CI sources remain unchanged from the previous reviewed head and the supplied base.

Source coverage included all outbound sites and deletions; request options, errors, redirects and signing; auction readiness, batching, parsing, cancellation and telemetry; EC/consent/pull-sync; publisher raw/processed/compressed bodies, ownership, templates and EOF; canonical lifecycle, assembly/retention, ingress, framing, privacy and post-delivery work; all four adapters; dependency/build/CLI/deploy/fixture/test-double/parity/documentation paths; and rollout/qualification records. Fresh baseline checks refreshed 64 TS/H excerpts, 26 exact direct pins, 62 dependent files and 37 store implementers. All 737 baseline archive files were independently compared with a fresh immutable GitHub download and matched.

The baseline H remains 9b31a69760255c279f163a3e56bc95a7eed228e3; the revision expressly scopes its old citations there. New answer-dependent facts were checked against immutable EdgeZero 5ea8d93c940bc021c552d29ddd86dd14bdadcd3e (archive SHA256 d22bbf40377a12fedef555e05aba81b2cf305cefd02ff18b0bad0b59ffb17597). Actual source supports the timeout/head-limit setters/defaults, single-request qualification binary, Fastly scheduling/readiness and Spin cutoff fixes, and frozen export safeguards. Both cited re-reviews were read directly; their limited scope is not an overall upstream approval. Current binding changes cover 57 rows, including 53 newly ready rows; readiness is not a qualification result. Inventory size/applicability remains 511 rows and 261 required rows, split EdgeZero 237 and Trusted Server 24. The unchanged upstream freeze/export process remains necessary for an authoritative qualification record even though D5 removes TS's shipping wait.

The new bodiless rationale agrees with the HTTP content/framing rules checked in the official RFC 9110, RFC 9112, and RFC 9113. This standards check does not convert the still-unamended SDK-parity acceptance failures into passes.

Fresh REVIEWER execution at this exact head completed: 91 command attempts, all exited 0, with no local retry or interruption. The isolated build-validator ran the full applicable prescribed suite. Prescribed ignores, browser skips, CI name filters and inapplicable checks remain separately recorded below. Existing dedicated REVIEWER dependency/build artifacts were reused; every command/test invocation was fresh, and user/CREATOR target trees and prior test results were not reused. The final audit verified the exact head, empty staged/unstaged diffs and blank status; the enclosing ownership wrapper exited 0.

The current-head GitHub macOS CLI check initially failed in job128599882133, workflow attempt1, exit101. Exact failure/result lines:

cargo test (ts CLI, native) (macos-latest)	UNKNOWN STEP	2026-11-08T02:20:42.8475520Z should collect without scrolling: "timed out waiting for browser process to exit after audit"
cargo test (ts CLI, native) (macos-latest)	UNKNOWN STEP	2026-11-08T02:20:42.8687030Z test result: FAILED. 5 passed; 1 failed; 0 ignored; 0 measured; 768 filtered out; finished in 44.42s
cargo test (ts CLI, native) (macos-latest)	UNKNOWN STEP	2026-11-08T02:20:42.8817870Z ##[error]Process completed with exit code 101.

The one failed job was rerun with its existing workflow configuration, without test, assertion, timeout or filter changes. Attempt2 job128619970718 completed successfully; actual result lines:

2026-11-08T03:55:04.7984600Z test commands::audit::generate::browser_collector::tests::collects_lazy_gpt_slot_only_when_scroll_is_enabled ... ok
2026-11-08T03:55:31.0605460Z test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 36.77s

The initial failure is retained, its cause is unconfirmed, and no pre-existing/environmental classification or user dismissal is claimed. Actions checked out merge316f1fadc6c66a45c4708f18483ec25473b13117 (85f5ca3 into main4d55a3c6d6d2564ceb480b9ea6c8c3c65b494b49); local verification used detached85f5ca3 against the supplied/REST/GraphQL baseRefOid51730bda. GraphQL baseRef.target/default main was4d55a3c6. These identities are recorded separately rather than equated. The same named fixture also passed in the fresh local CLI helper. Service-run CI results are separate from reviewer-executed tests; CodeQL was not run locally.

No future migrated TS implementation, hosted qualification, frozen candidate C, or future PR275 head was executed or approved by this pass. Author-supplied docs logs did not replace the reviewer run. The prior 77-case and framing probes remain explicitly prior-head evidence; they were not relabeled as fresh executions. This pass uses fresh source identity/regression checks and the complete current-head repository suite.

Prior finding Reviewer disposition at this head Original thread
F1 Previously fixed/accepted; retained and resolved Thread
F2 Previously fixed/accepted; retained and resolved Thread
F3 Previously fixed/accepted; retained and resolved Thread
F4 Previously fixed/accepted; retained and resolved Thread
F5 Previously fixed/accepted; retained and resolved Thread
F6 Previously fixed/accepted; retained and resolved Thread

No thread was reopened or redundantly resolved. All six resolved states were freshly read back.

Latest remote CI: 29 check entries; states SUCCESS.

Fresh current-head full suite: commands, exits, actual result lines and exclusions

Resolved CWD base REVIEW_WT: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-85f5ca3-build. Raw-log base: /private/tmp/pr1506-r4-85f5ca3/build. Only repeated narrative path metadata is abbreviated; commands and actual result blocks are unchanged.

Reviewed head: 85f5ca3d962e85e07b29076daab3908f63ee4929. Exact PR base: 51730bdaf841e4d7bb96c2258e5e98169bdff9a7.

Runner: independent REVIEWER build-validator in a fresh detached worktree. Every project setup/check command ran through the serialized PRfection ownership wrapper. All checks below were executed at this head; neither prior-head results nor author logs substitute for these runs.

Selected tools/environment: Node 24.20.0, npm 11.19.0, Rust/Cargo 1.98.1, Viceroy 0.21.0, Spin 4.1.0, wasm-bindgen 0.2.126, Wrangler 4.83.0, Docker desktop-linux. CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1, CI=true, CARGO_BUILD_JOBS=6, WRANGLER_SEND_METRICS=false, NO_COLOR=1. All Rust phases use CARGO_INCREMENTAL=0, CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0, CARGO_PROFILE_BENCH_DEBUG=0, CARGO_PROFILE_RELEASE_DEBUG=0; optimization levels, debug assertions, test cases, targets, and CI filters are unchanged. Runtime integration uses canonical origin port 8888 and the fictional CI fixture settings. Only selected reproducibility variables are saved; inherited editor/session metadata is omitted.

Cache policy: dedicated REVIEWER-only external Cargo directories /private/tmp/pr1506-reviewer-build-cache/root-target and /private/tmp/pr1506-reviewer-build-cache/integration-target were created by this REVIEWER in R3 and reused for this head. Owned symlinks at the worktree root and integration crate target paths preserve script artifact paths. Only dedicated REVIEWER compilation/dependency artifacts were reused. No user or CREATOR target was read, copied, or shared. Every suite command and actual test execution ran freshly at this head; prior test results were not reused. The integration target symlink was ignored through private Git info/exclude, without a source change. The owner/policy records are preserved in cache-policy.json and the cache OWNER.json. These external build caches remain after role cleanup; removing a worktree removes its owned links only.

Suite discovery: the current AGENTS.md lists 15 gates; the current workflows, action configuration, and cargo aliases were inspected and saved. The only change from the independently reviewed R3 head is design Markdown, so the prescribed command map remains applicable. Conditional local EOF implementation harnesses are not applicable to this docs-only PR. Linux real NSS trust tests are OS-specific and not executable on this macOS host. CodeQL is a separate remote service check. CI integration name filters and browser skip conditions are preserved verbatim and reported below.

Completed command attempts: 91; exit 0: 91; nonzero: 0.

Separate GitHub Actions result (not counted as an independent local command): cargo test (ts CLI, native) (macos-latest), run 42437659657/job 128599882133, exited 101. That runner checked out merge SHA 316f1fadc6c66a45c4708f18483ec25473b13117 (head 85f5ca3… merged into base tip 4d55a3c6d6d2564ceb480b9ea6c8c3c65b494b49), separate from the local exact-head checkout. collects_lazy_gpt_slot_only_when_scroll_is_enabled failed at browser_collector.rs:2202 with should collect without scrolling: "timed out waiting for browser process to exit after audit"; actual result: 5 passed; 1 failed; 0 ignored; 768 filtered out. Raw log: /private/tmp/pr1506-r4-85f5ca3/failed-ci-cli-macos.log. Cause remains unconfirmed. The local suite result below is separate and does not replace this remote failed attempt; the root REVIEWER records any remote rerun and final check state.

Actual remote attempt 1 failure lines (GitHub Actions):

should collect without scrolling: "timed out waiting for browser process to exit after audit"
test result: FAILED. 5 passed; 1 failed; 0 ignored; 0 measured; 768 filtered out; finished in 44.42s
Process completed with exit code 101.

GitHub Actions attempt 2: the unchanged macOS CLI job 128619970718 in run 42437659657 completed with success at head 85f5ca3d962e85e07b29076daab3908f63ee4929. This is a fresh remote rerun; it does not erase attempt 1 or establish its cause. The named browser fixture and all six tests in its group passed. Source: /private/tmp/pr1506-r4-85f5ca3/ci-attempt2-full.log and ci-attempt2-progress.json.

Actual remote attempt 2 result lines:

2026-11-08T03:50:05.0444690Z HEAD is now at 316f1fa Merge 85f5ca3d962e85e07b29076daab3908f63ee4929 into 4d55a3c6d6d2564ceb480b9ea6c8c3c65b494b49
2026-11-08T03:53:11.3877550Z ##[group]Run ./scripts/test-cli.sh
2026-11-08T03:55:04.7984600Z test commands::audit::generate::browser_collector::tests::collects_lazy_gpt_slot_only_when_scroll_is_enabled ... ok
2026-11-08T03:55:31.0605460Z test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 36.77s

Final enclosing ownership wrapper exit: 0. Final source audit confirms the exact reviewed SHA, empty staged/unstaged diffs, and blank git status --short. No source, assertions, or dependencies were edited; the root REVIEWER handles publication and worktree cleanup.

environment

CWD relative to REVIEW_WT: .. Exit: 0. Log: 01-environment.log.

node --version; npm --version; cargo --version; rustc --version; viceroy --version; spin --version; wasm-bindgen --version; command -v worker-build; docker info --format "{{.ServerVersion}}"

Actual result lines:

v24.20.0
11.19.0
cargo 1.98.1 (797e8a9bc 2026-08-05)
rustc 1.98.1 (48a229cea 2026-09-01)
viceroy 0.21.0
spin 4.1.0 (c0b3726 2026-08-25)
wasm-bindgen 0.2.126
REVIEW HARNESS: exit code 0

js-setup

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 02-js-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

docs-setup

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 03-docs-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

js-lint

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 04-js-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

js-format

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 05-js-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

js-build

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 06-js-build.log.

npm run build

Actual result lines:

REVIEW HARNESS: exit code 0

js-test

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 07-js-test.log.

npx vitest run

Actual result lines:

Testing types with tsc and vue-tsc is an experimental feature.
 Test Files  75 passed (75)
      Tests  1839 passed (1839)
Type Errors  no errors
REVIEW HARNESS: exit code 0

docs-lint

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 08-docs-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

docs-format

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 09-docs-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

markdown-format

CWD relative to REVIEW_WT: .. Exit: 0. Log: 10-markdown-format.log.

docs/node_modules/.bin/prettier --config docs/.prettierrc --check "*.md" ".claude/**/*.md" ".github/**/*.md" "crates/**/*.md" "scripts/**/*.md" "tinybird/**/*.md"

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

docs-build

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 11-docs-build.log.

npm run build

Actual result lines:

build complete in 9.07s.
REVIEW HARNESS: exit code 0

ci-node-pin-tests

CWD relative to REVIEW_WT: .. Exit: 0. Log: 12-ci-node-pin-tests.log.

node --test scripts/check-ci-node-pin.test.mjs

Actual result lines:

ℹ tests 30
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

ci-node-pin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 13-ci-node-pin.log.

node scripts/check-ci-node-pin.mjs

Actual result lines:

ok: 28 jobs in 8 workflows pin Node before compiling Rust
REVIEW HARNESS: exit code 0

docs-proposal-shellcheck

CWD relative to REVIEW_WT: .. Exit: 0. Log: 14-docs-proposal-shellcheck.log.

shellcheck scripts/docs-proposal/*.sh

Actual result lines:

REVIEW HARNESS: exit code 0

docs-proposal-hunks

CWD relative to REVIEW_WT: .. Exit: 0. Log: 15-docs-proposal-hunks.log.

node --test scripts/docs-proposal/hunks.test.mjs

Actual result lines:

ℹ tests 20
ℹ pass 20
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

docs-proposal-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 16-docs-proposal-test.log.

scripts/docs-proposal/test.sh

Actual result lines:

All documentation proposal script tests passed.
REVIEW HARNESS: exit code 0

wasm-clock

CWD relative to REVIEW_WT: .. Exit: 0. Log: 17-wasm-clock.log.

scripts/lint-wasm-clock.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 11.73s
REVIEW HARNESS: exit code 0

claude-symlink

CWD relative to REVIEW_WT: .. Exit: 0. Log: 18-claude-symlink.log.

test "$(git ls-tree HEAD CLAUDE.md | awk '{print $1}')" = 120000 && test "$(git cat-file blob HEAD:CLAUDE.md)" = AGENTS.md && test -f AGENTS.md && echo "CLAUDE.md symlink guard passed"

Actual result lines:

CLAUDE.md symlink guard passed
REVIEW HARNESS: exit code 0

cargo-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 19-cargo-fmt.log.

cargo fmt --all -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

clippy-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 20-clippy-fastly.log.

cargo clippy-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 24.51s
REVIEW HARNESS: exit code 0

clippy-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 21-clippy-axum.log.

cargo clippy-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 13.68s
REVIEW HARNESS: exit code 0

clippy-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 22-clippy-cloudflare.log.

cargo clippy-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.19s
REVIEW HARNESS: exit code 0

clippy-cloudflare-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 23-clippy-cloudflare-wasm.log.

cargo clippy-cloudflare-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 12.37s
REVIEW HARNESS: exit code 0

clippy-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 24-clippy-spin-native.log.

cargo clippy-spin-native

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 5.53s
REVIEW HARNESS: exit code 0

clippy-spin-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 25-clippy-spin-wasm.log.

cargo clippy-spin-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 31.21s
REVIEW HARNESS: exit code 0

clippy-cli

CWD relative to REVIEW_WT: .. Exit: 0. Log: 26-clippy-cli.log.

cargo clippy-cli

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 17.78s
REVIEW HARNESS: exit code 0

clippy-codegen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 27-clippy-codegen.log.

cargo clippy-codegen

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.63s
REVIEW HARNESS: exit code 0

core-digest-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 28-core-digest-clippy.log.

cargo clippy -p trusted-server-core --test template_build_digest -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 9.69s
REVIEW HARNESS: exit code 0

test-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 29-test-fastly.log.

cargo test-fastly

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 37.79s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 1.02s
test result: ok. 3332 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 120.56s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 30 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-fastly-reuse

CWD relative to REVIEW_WT: .. Exit: 0. Log: 30-test-fastly-reuse.log.

cargo test-fastly-reuse

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 27.09s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 2.69s
REVIEW HARNESS: exit code 0

test-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 31-test-axum.log.

cargo test-axum

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 50.77s
test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.03s
REVIEW HARNESS: exit code 0

test-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 32-test-cloudflare.log.

cargo test-cloudflare

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 27.28s
test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 33-test-spin.log.

cargo test-spin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 7.13s
test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

core-digest-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 34-core-digest-test.log.

cargo test -p trusted-server-core --test template_build_digest

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 22.33s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
REVIEW HARNESS: exit code 0

cli-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 35-cli-test.log.

./scripts/test-cli.sh

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 37.66s
test result: ok. 765 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.60s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.78s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.96s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.64s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
test result: ok. 1 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.11s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 1.09s
    Finished `test` profile [unoptimized] target(s) in 0.30s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 771 filtered out; finished in 12.19s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.81s
    Finished `test` profile [unoptimized] target(s) in 0.30s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 28.99s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.86s
    Finished `test` profile [unoptimized] target(s) in 0.28s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 4.26s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.29s
    Finished `test` profile [unoptimized] target(s) in 0.26s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 2.40s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

codegen-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 36-codegen-test.log.

cargo test --package trusted-server-openrtb-codegen --target aarch64-apple-darwin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1.13s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

parity-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 37-parity-fmt.log.

cargo fmt --manifest-path crates/trusted-server-integration-tests/Cargo.toml -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

parity-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 38-parity-test.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --test parity

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 11.38s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
REVIEW HARNESS: exit code 0

parity-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 39-parity-clippy.log.

cargo clippy --manifest-path crates/trusted-server-integration-tests/Cargo.toml --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 7.01s
REVIEW HARNESS: exit code 0

lint-domains

CWD relative to REVIEW_WT: .. Exit: 0. Log: 40-lint-domains.log.

cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --bin ts -- dev lint domains --changed-vs 51730bdaf841e4d7bb96c2258e5e98169bdff9a7 --verbose

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 13.33s
scanned 2622 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-hard-cutover-design.md
scanned 2197 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-requirements.md
REVIEW HARNESS: exit code 0

build-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 41-build-fastly.log.

cargo build-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.89s
REVIEW HARNESS: exit code 0

build-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 42-build-axum.log.

cargo build-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 12.96s
REVIEW HARNESS: exit code 0

build-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 43-build-cloudflare.log.

cargo build-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 37.24s
REVIEW HARNESS: exit code 0

check-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 44-check-fastly.log.

cargo check-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.28s
REVIEW HARNESS: exit code 0

check-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 45-check-axum.log.

cargo check-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 7.79s
REVIEW HARNESS: exit code 0

check-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 46-check-cloudflare.log.

cargo check-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 6.85s
REVIEW HARNESS: exit code 0

check-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 47-check-spin.log.

cargo check-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 6.29s
REVIEW HARNESS: exit code 0

check-cloudflare-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 48-check-cloudflare-native.log.

cargo check -p trusted-server-adapter-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 6.67s
REVIEW HARNESS: exit code 0

check-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 49-check-spin-native.log.

cargo check -p trusted-server-adapter-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.33s
REVIEW HARNESS: exit code 0

fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 50-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 14s
REVIEW HARNESS: exit code 0

spin-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 51-spin-release.log.

TRUSTED_SERVER__PUBLISHER__ORIGIN_URL=http://127.0.0.1:8080 TRUSTED_SERVER__PUBLISHER__PROXY_SECRET=integration-test-proxy-secret TRUSTED_SERVER__EC__PASSPHRASE=integration-test-ec-secret-padded-32 TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK=false cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 46s
REVIEW HARNESS: exit code 0

fastly-deadlines

CWD relative to REVIEW_WT: .. Exit: 0. Log: 52-fastly-deadlines.log.

node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"

Actual result lines:

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 242 filtered out; finished in 0.49s
REVIEW HARNESS: exit code 0

cloudflare-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 53-cloudflare-deadline-build.log.

cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 43.88s
REVIEW HARNESS: exit code 0

cloudflare-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 54-cloudflare-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 32.85s
REVIEW HARNESS: exit code 0

spin-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 55-spin-deadline-build.log.

cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 47.62s
REVIEW HARNESS: exit code 0

spin-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 56-spin-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 18.12s
REVIEW HARNESS: exit code 0

cloudflare-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 57-cloudflare-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime /private/tmp/review-1506-854fe2e/local-tools/node_modules/.bin/wrangler --wasm-bindgen /private/tmp/review-1506-854fe2e/wasm-bindgen-0.2.126/wasm-bindgen

Actual result lines:

PASS cloudflare /fast budget=80 origin=200: complete:205
PASS cloudflare /headers budget=80 origin=0: timeout:81
PASS cloudflare /body budget=80 origin=0: timeout:81
PASS cloudflare /headers budget=80 origin=200: timeout:201
REVIEW HARNESS: exit code 0

spin-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 58-spin-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"

Actual result lines:

PASS spin /fast budget=80 origin=200: complete:211
PASS spin /headers budget=80 origin=0: timeout:81
PASS spin /body budget=80 origin=0: timeout:83
PASS spin /headers budget=80 origin=200: timeout:202
PASS spin /large budget=2000 origin=0: oversized:10
REVIEW HARNESS: exit code 0

trace-script-skipped

CWD relative to REVIEW_WT: .. Exit: 0. Log: 59-trace-script-skipped.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_skipped_emitted_script_leaves_ad_state_untouched -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1m 06s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.41s
REVIEW HARNESS: exit code 0

trace-script-freezes

CWD relative to REVIEW_WT: .. Exit: 0. Log: 60-trace-script-freezes.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_emitted_script_deep_freezes_owned_context_in_node -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 2.81s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.08s
REVIEW HARNESS: exit code 0

html-benchmark-smoke

CWD relative to REVIEW_WT: .. Exit: 0. Log: 61-html-benchmark-smoke.log.

cargo bench -p trusted-server-core --bench html_processor_bench -- --test

Actual result lines:

    Finished `bench` profile [optimized] target(s) in 1m 37s
Testing html_processor/process_chunk/10kb
Success
Testing html_processor/process_chunk/100kb
Success
REVIEW HARNESS: exit code 0

template-cache-esi

CWD relative to REVIEW_WT: .. Exit: 0. Log: 62-template-cache-esi.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh esi

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.66s
    Finished `dev` profile [unoptimized] target(s) in 0.86s
  22 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-inline

CWD relative to REVIEW_WT: .. Exit: 0. Log: 63-template-cache-inline.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh inline

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.55s
    Finished `dev` profile [unoptimized] target(s) in 0.59s
  9 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-purge

CWD relative to REVIEW_WT: .. Exit: 0. Log: 64-template-cache-purge.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh purge

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.18s
    Finished `dev` profile [unoptimized] target(s) in 0.96s
  34 passed, 0 failed
REVIEW HARNESS: exit code 0

cloudflare-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 65-cloudflare-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-cloudflare --target wasm32-unknown-unknown --features cloudflare,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 3.64s
REVIEW HARNESS: exit code 0

spin-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 66-spin-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-spin --target wasm32-wasip1 --features spin,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.39s
REVIEW HARNESS: exit code 0

cli-native-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 67-cli-native-clippy.log.

cargo clippy --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 27.16s
REVIEW HARNESS: exit code 0

canonical-port-preflight

CWD relative to REVIEW_WT: .. Exit: 0. Log: 101-canonical-port-preflight.log.

python3 /private/tmp/pr1506-r4-85f5ca3/build/check-canonical-port.py

Actual result lines:

Canonical CI integration origin port 8888 is available
REVIEW HARNESS: exit code 0

matching-bindgen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 102-matching-bindgen.log.

node --version; wasm-bindgen --version; wrangler --version

Actual result lines:

v24.20.0
wasm-bindgen 0.2.126
4.83.0
REVIEW HARNESS: exit code 0

generate-integration-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 103-generate-integration-config.log.

./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 30.36s
REVIEW HARNESS: exit code 0

generate-trace-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 104-generate-trace-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace.toml INTEGRATION_BIDDER_ORIGIN_URL=http://127.0.0.1:8888 ARTIFACTS_DIR=/private/tmp/pr1506-r4-85f5ca3/build/integration-artifacts/trace ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 3.49s
REVIEW HARNESS: exit code 0

generate-trace-auth-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 105-generate-trace-auth-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace-auth.toml ARTIFACTS_DIR=/private/tmp/pr1506-r4-85f5ca3/build/integration-artifacts/trace-auth ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.46s
REVIEW HARNESS: exit code 0

integration-fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 106-integration-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 2.50s
REVIEW HARNESS: exit code 0

integration-axum-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 107-integration-axum-build.log.

cargo build -p trusted-server-adapter-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 2.84s
REVIEW HARNESS: exit code 0

integration-cloudflare-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 108-integration-cloudflare-build.log.

bash crates/trusted-server-adapter-cloudflare/build.sh

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 04s
REVIEW HARNESS: exit code 0

image-wordpress

CWD relative to REVIEW_WT: .. Exit: 0. Log: 109-image-wordpress.log.

docker build -t test-wordpress:latest crates/trusted-server-integration-tests/fixtures/frameworks/wordpress/

Actual result lines:

REVIEW HARNESS: exit code 0

image-nextjs

CWD relative to REVIEW_WT: .. Exit: 0. Log: 110-image-nextjs.log.

docker build --build-arg NODE_VERSION=24.20.0 -t test-nextjs:latest crates/trusted-server-integration-tests/fixtures/frameworks/nextjs/

Actual result lines:

REVIEW HARNESS: exit code 0

browser-setup

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 111-browser-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

playwright-chromium

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 112-playwright-chromium.log.

npx playwright install chromium

Actual result lines:

REVIEW HARNESS: exit code 0

browser-prebid-artifact

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 113-browser-prebid-artifact.log.

npm run build:prebid-external -- --modules-json '{"bidder":["rubiconBidAdapter"]}'

Actual result lines:

REVIEW HARNESS: exit code 0

initial-render-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 114-initial-render-fixture-tests.log.

node --test initial-render/pages.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

trace-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 115-trace-fixture-tests.log.

node --test trace-fixture.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

initial-render-ownership

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 116-initial-render-ownership.log.

node initial-render/run.cjs --out /private/tmp/pr1506-r4-85f5ca3/build/initial-render-evidence

Actual result lines:

Controlled comparison assertions passed.
REVIEW HARNESS: exit code 0

prebuilt-trace-digest

CWD relative to REVIEW_WT: .. Exit: 0. Log: 117-prebuilt-trace-digest.log.

mkdir -p /private/tmp/pr1506-r4-85f5ca3/build/prebuilt-bundle && node crates/trusted-server-js/lib/build-all.mjs --out-dir /private/tmp/pr1506-r4-85f5ca3/build/prebuilt-bundle && TSJS_PREBUILT_DIR=/private/tmp/pr1506-r4-85f5ca3/build/prebuilt-bundle cargo check-axum --locked

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 13.49s
REVIEW HARNESS: exit code 0

integration-matrix

CWD relative to REVIEW_WT: .. Exit: 0. Log: 118-integration-matrix.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin -- --include-ignored --skip test_wordpress_fastly --skip test_nextjs_fastly --skip trace_browser_workflow --skip trace_runtime_boundary --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 20.67s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.50s
test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 33.96s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
REVIEW HARNESS: exit code 0

integration-fastly-ec

CWD relative to REVIEW_WT: .. Exit: 0. Log: 119-integration-fastly-ec.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin test_ec_lifecycle_fastly -- --include-ignored --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 2.12s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 48 filtered out; finished in 2.33s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 28 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

integration-trace-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 120-integration-trace-runtime.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_runtime_boundary -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 0.30s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 46 filtered out; finished in 35.11s
REVIEW HARNESS: exit code 0

integration-trace-browser

CWD relative to REVIEW_WT: .. Exit: 0. Log: 121-integration-trace-browser.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_browser_workflow -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1.30s
  1 passed (6.5s)
  1 passed (4.6s)
  1 passed (2.4s)
  1 passed (2.5s)
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 45 filtered out; finished in 31.45s
REVIEW HARNESS: exit code 0

browser-nextjs

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 122-browser-nextjs.log.

TEST_FRAMEWORK=nextjs PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r4-85f5ca3/build/playwright-report-nextjs npx playwright test

Actual result lines:

  2 skipped
  53 passed (1.0m)
REVIEW HARNESS: exit code 0

browser-wordpress

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 123-browser-wordpress.log.

TEST_FRAMEWORK=wordpress PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r4-85f5ca3/build/playwright-report-wordpress npx playwright test

Actual result lines:

  23 skipped
  32 passed (40.3s)
REVIEW HARNESS: exit code 0

final-source-state

CWD relative to REVIEW_WT: .. Exit: 0. Log: 124-final-source-state.log.

git rev-parse HEAD && test "$(git rev-parse HEAD)" = 85f5ca3d962e85e07b29076daab3908f63ee4929 && git diff --exit-code && git diff --cached --exit-code && git status --short

Actual result lines:

85f5ca3d962e85e07b29076daab3908f63ee4929
REVIEW HARNESS: exit code 0
Fresh source checks and evidence boundaries

Fresh source checks were executed in the owned detached reviewer worktrees at TS 85f5ca3d962e85e07b29076daab3908f63ee4929. Every worktree command used its serialized PRfection ownership wrapper. No migrated TS implementation or current EdgeZero runtime test was executed by these source audits.

  • python3 /private/tmp/pr1506-r4-85f5ca3/audit-transport-build.py — exit0. Actual result lines:
PASS: F1/F3/F5/F6 substantive corrections retained
PASS: H26 exact pins, Spin SDK fork and TS explicit WASI shell commands
PASS:64 exact TS/H source excerpts refreshed without changes; current2622-line design read and recorded
PASS:62 dependent files and37 async-store implementers
PASS:runtime/test/build sources unchanged from exact base and previous review
  • python3 /private/tmp/pr1506-r4-85f5ca3/audit-current-qualification.py — exit0; baseline and current inventories independently parsed:511 total /261 required, EdgeZero237 / TS24; both26 exact direct pins and the Spin SDK fork unchanged. Full source metadata is retained locally; no readiness status is treated as a passing acceptance result.
  • python3 /private/tmp/pr1506-r4-85f5ca3/audit-current-api.py — exit0. Actual result:
Current immutable EdgeZero API/build/export source excerpts: 13; app setters, single-request run_custom qualification binary and fail-closed frozen export confirmed.
  • Publisher's fresh source recorder (exact command in publisher/source-command-result.txt) — exit0;32 source entries /4456 numbered lines, whole-section identity checks and32 stable final hashes. Actual current Fastly eager/readiness and Spin cutoff source was read. The possible stale-check finding was withdrawn: the prescribed harness uses next() and late-drop, which still holds; the check-Pending counterfactual is explicitly H-scoped. No77-case probe was rerun or relabeled current-head.
  • Lifecycle's full current qualification contract/approval/exporter, Connection and optimizer reads (commands in lifecycle/audit.md) — exit0 after two corrected investigator path lookups. Existing F4/F5 remain addressed; the no-freeze-protocol hypothesis was withdrawn because the revision makes no authoritative qualification-pass claim and the exporter still requires frozen/clean/exact-commit/reviewed provenance. The current bounded-empty-Connection handling does not invalidate the chosen operator ban or nominated-field policy.
  • Both cited upstream re-reviews were fetched directly:5810546608 at598f0a2a,5815197468 at6f0cc74c. These are upstream review evidence with a limited stated scope, not reviewer-executed tests or a global upstream approval.
  • Fresh immutable baseline download matched all737 previously inspected baseline files. Current5ea archive SHA256:d22bbf40377a12fedef555e05aba81b2cf305cefd02ff18b0bad0b59ffb17597. No TS/H source was edited.

The source checks support expressibility and consistency of this planning correction. Author-reported hosted runs, qualification, future moving PR275 heads and any frozen-candidate pass remain outside their evidence.

The two newly cited upstream amendment requests were fetched directly with gh api repos/IABTechLab/edgezero/pulls/comments/4504554519 and gh api repos/IABTechLab/edgezero/pulls/comments/4504573926, both exit0. They request per-adapter HTTP3 applicability and strict bodiless framing; the TS design correctly identifies them as requests while the current upstream contract remains unamended. Their requester labels are not substituted for direct user confirmation in this reviewer session.

@aram356 aram356 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE — GitHub blocked formal approval: "Review Can not approve your own pull request" (HTTP 422).

The acting account and PR author are both aram356. This is an APPROVE-verdict COMMENT, not a formal approval, and it does not make the PR merge-ready. Next actor: CREATOR presents its merge question to the user for PR #1506 at 85f5ca3d962e85e07b29076daab3908f63ee4929. Only the user may authorize a one-time merge exception for that PR/head, which CREATOR records before merging. The policy confirmation does not itself authorize a merge.

The planning phase is acceptable under the requester’s directly confirmed Q1–Q7 decisions.

Re-reviewed planning PR #1506 at 85f5ca3d962e85e07b29076daab3908f63ee4929, with diff/review base 51730bdaf841e4d7bb96c2258e5e98169bdff9a7, the complete 4,819-line two-file addition, and the complete update since a83dc4d891536f79c8b27070b498ec2bb9286b10. Acting login and PR author are both aram356. All review submissions, all comment pages and every reply in the six prior threads were read. No new inline finding or duplicate acceptance reply is needed.

The seven answers are now recorded, so the previous document omission is addressed. The new D5 deliberately permits merge and production before EdgeZero qualification and follows an exact PR275 commit at each repin. It discloses unqualified deployment and orphaned-pin risks; Q4/Q7 distinguish requested contract amendments from the unchanged current contract, retain the conditional HTTP/3 leg, and leave the nine SDK-parity failures and EZ-18.4 unqualified.

The requester has now directly confirmed all seven recorded decisions in this conversation: Yes, those are my decisions. This includes merge/production before EdgeZero qualification, retained timeouts, manual hosted qualification, HTTP/3 per adapter, no old-API freeze, loopback HTTP, and strict bodiless framing. That clears the sole decision blocker in review5816590624.

This follow-up changes the verdict at the same immutable TS head. The complete diff, all discussion pages, six resolved findings, account identities and current CI were rechecked. The 91-command REVIEWER suite below was actually executed during the preceding pass at this exact head; it was not rerun for this confirmation-only follow-up. The original macOS CI failure and unchanged passing retry remain recorded, with cause unconfirmed. Approval covers this TS planning phase, not future implementation, hosted qualification, upstream review readiness or future PR275 commits.

The six earlier specification corrections remain substantive and accepted: shared publisher scope construction; raw/processed input caps with cumulative decoding and a separate output budget; reachable EC/KV overlap; explicit Connection-nomination policy; final Image Optimizer GET/HEAD options; and telemetry observation boundaries. Their existing resolved states are verified below. Trusted Server runtime/test/build/CI sources remain unchanged from the previous reviewed head and the supplied base.

Source coverage included all outbound sites and deletions; request options, errors, redirects and signing; auction readiness, batching, parsing, cancellation and telemetry; EC/consent/pull-sync; publisher raw/processed/compressed bodies, ownership, templates and EOF; canonical lifecycle, assembly/retention, ingress, framing, privacy and post-delivery work; all four adapters; dependency/build/CLI/deploy/fixture/test-double/parity/documentation paths; and rollout/qualification records. Fresh baseline checks refreshed 64 TS/H excerpts, 26 exact direct pins, 62 dependent files and 37 store implementers. All 737 baseline archive files were independently compared with a fresh immutable GitHub download and matched.

The baseline H remains 9b31a69760255c279f163a3e56bc95a7eed228e3; the revision expressly scopes its old citations there. New answer-dependent facts were checked against immutable EdgeZero 5ea8d93c940bc021c552d29ddd86dd14bdadcd3e (archive SHA256 d22bbf40377a12fedef555e05aba81b2cf305cefd02ff18b0bad0b59ffb17597). Actual source supports the timeout/head-limit setters/defaults, single-request qualification binary, Fastly scheduling/readiness and Spin cutoff fixes, and frozen export safeguards. Both cited re-reviews were read directly; their limited scope is not an overall upstream approval. Current binding changes cover 57 rows, including 53 newly ready rows; readiness is not a qualification result. Inventory size/applicability remains 511 rows and 261 required rows, split EdgeZero 237 and Trusted Server 24. The unchanged upstream freeze/export process remains necessary for an authoritative qualification record even though D5 removes TS's shipping wait.

The new bodiless rationale agrees with the HTTP content/framing rules checked in the official RFC 9110, RFC 9112, and RFC 9113. This standards check does not convert the still-unamended SDK-parity acceptance failures into passes.

Fresh REVIEWER execution at this exact head completed: 91 command attempts, all exited 0, with no local retry or interruption. The isolated build-validator ran the full applicable prescribed suite. Prescribed ignores, browser skips, CI name filters and inapplicable checks remain separately recorded below. Existing dedicated REVIEWER dependency/build artifacts were reused; every command/test invocation was fresh, and user/CREATOR target trees and prior test results were not reused. The final audit verified the exact head, empty staged/unstaged diffs and blank status; the enclosing ownership wrapper exited 0.

The current-head GitHub macOS CLI check initially failed in job128599882133, workflow attempt1, exit101. Exact failure/result lines:

cargo test (ts CLI, native) (macos-latest)	UNKNOWN STEP	2026-11-08T02:20:42.8475520Z should collect without scrolling: "timed out waiting for browser process to exit after audit"
cargo test (ts CLI, native) (macos-latest)	UNKNOWN STEP	2026-11-08T02:20:42.8687030Z test result: FAILED. 5 passed; 1 failed; 0 ignored; 0 measured; 768 filtered out; finished in 44.42s
cargo test (ts CLI, native) (macos-latest)	UNKNOWN STEP	2026-11-08T02:20:42.8817870Z ##[error]Process completed with exit code 101.

The one failed job was rerun with its existing workflow configuration, without test, assertion, timeout or filter changes. Attempt2 job128619970718 completed successfully; actual result lines:

2026-11-08T03:55:04.7984600Z test commands::audit::generate::browser_collector::tests::collects_lazy_gpt_slot_only_when_scroll_is_enabled ... ok
2026-11-08T03:55:31.0605460Z test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 36.77s

The initial failure is retained, its cause is unconfirmed, and no pre-existing/environmental classification or user dismissal is claimed. Actions checked out merge316f1fadc6c66a45c4708f18483ec25473b13117 (85f5ca3 into main4d55a3c6d6d2564ceb480b9ea6c8c3c65b494b49); local verification used detached85f5ca3 against the supplied/REST/GraphQL baseRefOid51730bda. GraphQL baseRef.target/default main was4d55a3c6. These identities are recorded separately rather than equated. The same named fixture also passed in the fresh local CLI helper. Service-run CI results are separate from reviewer-executed tests; CodeQL was not run locally.

No future migrated TS implementation, hosted qualification, frozen candidate C, or future PR275 head was executed or approved by this pass. Author-supplied docs logs did not replace the reviewer run. The prior 77-case and framing probes remain explicitly prior-head evidence; they were not relabeled as fresh executions. This pass uses fresh source identity/regression checks and the complete current-head repository suite.

Prior finding Reviewer disposition at this head Original thread
F1 Previously fixed/accepted; retained and resolved Thread
F2 Previously fixed/accepted; retained and resolved Thread
F3 Previously fixed/accepted; retained and resolved Thread
F4 Previously fixed/accepted; retained and resolved Thread
F5 Previously fixed/accepted; retained and resolved Thread
F6 Previously fixed/accepted; retained and resolved Thread

No thread was reopened or redundantly resolved. All six resolved states were freshly read back.

Latest remote CI: 29 check entries; states SUCCESS.

Fresh current-head full suite: commands, exits, actual result lines and exclusions

Resolved CWD base REVIEW_WT: /Users/ag/projects/iab/trusted-server/.worktrees/review-1506-85f5ca3-build. Raw-log base: /private/tmp/pr1506-r4-85f5ca3/build. Only repeated narrative path metadata is abbreviated; commands and actual result blocks are unchanged.

Reviewed head: 85f5ca3d962e85e07b29076daab3908f63ee4929. Exact PR base: 51730bdaf841e4d7bb96c2258e5e98169bdff9a7.

Runner: independent REVIEWER build-validator in a fresh detached worktree. Every project setup/check command ran through the serialized PRfection ownership wrapper. All checks below were executed at this head; neither prior-head results nor author logs substitute for these runs.

Selected tools/environment: Node 24.20.0, npm 11.19.0, Rust/Cargo 1.98.1, Viceroy 0.21.0, Spin 4.1.0, wasm-bindgen 0.2.126, Wrangler 4.83.0, Docker desktop-linux. CARGO_HOME=/Users/ag/.asdf/installs/rust/1.98.1, CI=true, CARGO_BUILD_JOBS=6, WRANGLER_SEND_METRICS=false, NO_COLOR=1. All Rust phases use CARGO_INCREMENTAL=0, CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0, CARGO_PROFILE_BENCH_DEBUG=0, CARGO_PROFILE_RELEASE_DEBUG=0; optimization levels, debug assertions, test cases, targets, and CI filters are unchanged. Runtime integration uses canonical origin port 8888 and the fictional CI fixture settings. Only selected reproducibility variables are saved; inherited editor/session metadata is omitted.

Cache policy: dedicated REVIEWER-only external Cargo directories /private/tmp/pr1506-reviewer-build-cache/root-target and /private/tmp/pr1506-reviewer-build-cache/integration-target were created by this REVIEWER in R3 and reused for this head. Owned symlinks at the worktree root and integration crate target paths preserve script artifact paths. Only dedicated REVIEWER compilation/dependency artifacts were reused. No user or CREATOR target was read, copied, or shared. Every suite command and actual test execution ran freshly at this head; prior test results were not reused. The integration target symlink was ignored through private Git info/exclude, without a source change. The owner/policy records are preserved in cache-policy.json and the cache OWNER.json. These external build caches remain after role cleanup; removing a worktree removes its owned links only.

Suite discovery: the current AGENTS.md lists 15 gates; the current workflows, action configuration, and cargo aliases were inspected and saved. The only change from the independently reviewed R3 head is design Markdown, so the prescribed command map remains applicable. Conditional local EOF implementation harnesses are not applicable to this docs-only PR. Linux real NSS trust tests are OS-specific and not executable on this macOS host. CodeQL is a separate remote service check. CI integration name filters and browser skip conditions are preserved verbatim and reported below.

Completed command attempts: 91; exit 0: 91; nonzero: 0.

Separate GitHub Actions result (not counted as an independent local command): cargo test (ts CLI, native) (macos-latest), run 42437659657/job 128599882133, exited 101. That runner checked out merge SHA 316f1fadc6c66a45c4708f18483ec25473b13117 (head 85f5ca3… merged into base tip 4d55a3c6d6d2564ceb480b9ea6c8c3c65b494b49), separate from the local exact-head checkout. collects_lazy_gpt_slot_only_when_scroll_is_enabled failed at browser_collector.rs:2202 with should collect without scrolling: "timed out waiting for browser process to exit after audit"; actual result: 5 passed; 1 failed; 0 ignored; 768 filtered out. Raw log: /private/tmp/pr1506-r4-85f5ca3/failed-ci-cli-macos.log. Cause remains unconfirmed. The local suite result below is separate and does not replace this remote failed attempt; the root REVIEWER records any remote rerun and final check state.

Actual remote attempt 1 failure lines (GitHub Actions):

should collect without scrolling: "timed out waiting for browser process to exit after audit"
test result: FAILED. 5 passed; 1 failed; 0 ignored; 0 measured; 768 filtered out; finished in 44.42s
Process completed with exit code 101.

GitHub Actions attempt 2: the unchanged macOS CLI job 128619970718 in run 42437659657 completed with success at head 85f5ca3d962e85e07b29076daab3908f63ee4929. This is a fresh remote rerun; it does not erase attempt 1 or establish its cause. The named browser fixture and all six tests in its group passed. Source: /private/tmp/pr1506-r4-85f5ca3/ci-attempt2-full.log and ci-attempt2-progress.json.

Actual remote attempt 2 result lines:

2026-11-08T03:50:05.0444690Z HEAD is now at 316f1fa Merge 85f5ca3d962e85e07b29076daab3908f63ee4929 into 4d55a3c6d6d2564ceb480b9ea6c8c3c65b494b49
2026-11-08T03:53:11.3877550Z ##[group]Run ./scripts/test-cli.sh
2026-11-08T03:55:04.7984600Z test commands::audit::generate::browser_collector::tests::collects_lazy_gpt_slot_only_when_scroll_is_enabled ... ok
2026-11-08T03:55:31.0605460Z test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 36.77s

Final enclosing ownership wrapper exit: 0. Final source audit confirms the exact reviewed SHA, empty staged/unstaged diffs, and blank git status --short. No source, assertions, or dependencies were edited; the root REVIEWER handles publication and worktree cleanup.

environment

CWD relative to REVIEW_WT: .. Exit: 0. Log: 01-environment.log.

node --version; npm --version; cargo --version; rustc --version; viceroy --version; spin --version; wasm-bindgen --version; command -v worker-build; docker info --format "{{.ServerVersion}}"

Actual result lines:

v24.20.0
11.19.0
cargo 1.98.1 (797e8a9bc 2026-08-05)
rustc 1.98.1 (48a229cea 2026-09-01)
viceroy 0.21.0
spin 4.1.0 (c0b3726 2026-08-25)
wasm-bindgen 0.2.126
REVIEW HARNESS: exit code 0

js-setup

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 02-js-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

docs-setup

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 03-docs-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

js-lint

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 04-js-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

js-format

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 05-js-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

js-build

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 06-js-build.log.

npm run build

Actual result lines:

REVIEW HARNESS: exit code 0

js-test

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 07-js-test.log.

npx vitest run

Actual result lines:

Testing types with tsc and vue-tsc is an experimental feature.
 Test Files  75 passed (75)
      Tests  1839 passed (1839)
Type Errors  no errors
REVIEW HARNESS: exit code 0

docs-lint

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 08-docs-lint.log.

npm run lint

Actual result lines:

REVIEW HARNESS: exit code 0

docs-format

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 09-docs-format.log.

npm run format

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

markdown-format

CWD relative to REVIEW_WT: .. Exit: 0. Log: 10-markdown-format.log.

docs/node_modules/.bin/prettier --config docs/.prettierrc --check "*.md" ".claude/**/*.md" ".github/**/*.md" "crates/**/*.md" "scripts/**/*.md" "tinybird/**/*.md"

Actual result lines:

All matched files use Prettier code style!
REVIEW HARNESS: exit code 0

docs-build

CWD relative to REVIEW_WT: docs. Exit: 0. Log: 11-docs-build.log.

npm run build

Actual result lines:

build complete in 9.07s.
REVIEW HARNESS: exit code 0

ci-node-pin-tests

CWD relative to REVIEW_WT: .. Exit: 0. Log: 12-ci-node-pin-tests.log.

node --test scripts/check-ci-node-pin.test.mjs

Actual result lines:

ℹ tests 30
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

ci-node-pin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 13-ci-node-pin.log.

node scripts/check-ci-node-pin.mjs

Actual result lines:

ok: 28 jobs in 8 workflows pin Node before compiling Rust
REVIEW HARNESS: exit code 0

docs-proposal-shellcheck

CWD relative to REVIEW_WT: .. Exit: 0. Log: 14-docs-proposal-shellcheck.log.

shellcheck scripts/docs-proposal/*.sh

Actual result lines:

REVIEW HARNESS: exit code 0

docs-proposal-hunks

CWD relative to REVIEW_WT: .. Exit: 0. Log: 15-docs-proposal-hunks.log.

node --test scripts/docs-proposal/hunks.test.mjs

Actual result lines:

ℹ tests 20
ℹ pass 20
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

docs-proposal-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 16-docs-proposal-test.log.

scripts/docs-proposal/test.sh

Actual result lines:

All documentation proposal script tests passed.
REVIEW HARNESS: exit code 0

wasm-clock

CWD relative to REVIEW_WT: .. Exit: 0. Log: 17-wasm-clock.log.

scripts/lint-wasm-clock.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 11.73s
REVIEW HARNESS: exit code 0

claude-symlink

CWD relative to REVIEW_WT: .. Exit: 0. Log: 18-claude-symlink.log.

test "$(git ls-tree HEAD CLAUDE.md | awk '{print $1}')" = 120000 && test "$(git cat-file blob HEAD:CLAUDE.md)" = AGENTS.md && test -f AGENTS.md && echo "CLAUDE.md symlink guard passed"

Actual result lines:

CLAUDE.md symlink guard passed
REVIEW HARNESS: exit code 0

cargo-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 19-cargo-fmt.log.

cargo fmt --all -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

clippy-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 20-clippy-fastly.log.

cargo clippy-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 24.51s
REVIEW HARNESS: exit code 0

clippy-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 21-clippy-axum.log.

cargo clippy-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 13.68s
REVIEW HARNESS: exit code 0

clippy-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 22-clippy-cloudflare.log.

cargo clippy-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.19s
REVIEW HARNESS: exit code 0

clippy-cloudflare-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 23-clippy-cloudflare-wasm.log.

cargo clippy-cloudflare-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 12.37s
REVIEW HARNESS: exit code 0

clippy-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 24-clippy-spin-native.log.

cargo clippy-spin-native

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 5.53s
REVIEW HARNESS: exit code 0

clippy-spin-wasm

CWD relative to REVIEW_WT: .. Exit: 0. Log: 25-clippy-spin-wasm.log.

cargo clippy-spin-wasm

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 31.21s
REVIEW HARNESS: exit code 0

clippy-cli

CWD relative to REVIEW_WT: .. Exit: 0. Log: 26-clippy-cli.log.

cargo clippy-cli

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 17.78s
REVIEW HARNESS: exit code 0

clippy-codegen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 27-clippy-codegen.log.

cargo clippy-codegen

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.63s
REVIEW HARNESS: exit code 0

core-digest-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 28-core-digest-clippy.log.

cargo clippy -p trusted-server-core --test template_build_digest -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 9.69s
REVIEW HARNESS: exit code 0

test-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 29-test-fastly.log.

cargo test-fastly

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 37.79s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 1.02s
test result: ok. 3332 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 120.56s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 30 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-fastly-reuse

CWD relative to REVIEW_WT: .. Exit: 0. Log: 30-test-fastly-reuse.log.

cargo test-fastly-reuse

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 27.09s
test result: ok. 242 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 2.69s
REVIEW HARNESS: exit code 0

test-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 31-test-axum.log.

cargo test-axum

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 50.77s
test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.03s
REVIEW HARNESS: exit code 0

test-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 32-test-cloudflare.log.

cargo test-cloudflare

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 27.28s
test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

test-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 33-test-spin.log.

cargo test-spin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 7.13s
test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

core-digest-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 34-core-digest-test.log.

cargo test -p trusted-server-core --test template_build_digest

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 22.33s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
REVIEW HARNESS: exit code 0

cli-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 35-cli-test.log.

./scripts/test-cli.sh

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 37.66s
test result: ok. 765 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.60s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.78s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.96s
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.64s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
test result: ok. 1 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.11s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 1.09s
    Finished `test` profile [unoptimized] target(s) in 0.30s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 771 filtered out; finished in 12.19s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.81s
    Finished `test` profile [unoptimized] target(s) in 0.30s
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 768 filtered out; finished in 28.99s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.86s
    Finished `test` profile [unoptimized] target(s) in 0.28s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 4.26s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
    Finished `test` profile [unoptimized] target(s) in 0.29s
    Finished `test` profile [unoptimized] target(s) in 0.26s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 774 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 2.40s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 35 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 54 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 42 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

codegen-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 36-codegen-test.log.

cargo test --package trusted-server-openrtb-codegen --target aarch64-apple-darwin

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1.13s
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

parity-fmt

CWD relative to REVIEW_WT: .. Exit: 0. Log: 37-parity-fmt.log.

cargo fmt --manifest-path crates/trusted-server-integration-tests/Cargo.toml -- --check

Actual result lines:

REVIEW HARNESS: exit code 0

parity-test

CWD relative to REVIEW_WT: .. Exit: 0. Log: 38-parity-test.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --test parity

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 11.38s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
REVIEW HARNESS: exit code 0

parity-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 39-parity-clippy.log.

cargo clippy --manifest-path crates/trusted-server-integration-tests/Cargo.toml --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 7.01s
REVIEW HARNESS: exit code 0

lint-domains

CWD relative to REVIEW_WT: .. Exit: 0. Log: 40-lint-domains.log.

cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --bin ts -- dev lint domains --changed-vs 51730bdaf841e4d7bb96c2258e5e98169bdff9a7 --verbose

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 13.33s
scanned 2622 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-hard-cutover-design.md
scanned 2197 lines in docs/superpowers/specs/2026-10-17-edgezero-pr275-requirements.md
REVIEW HARNESS: exit code 0

build-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 41-build-fastly.log.

cargo build-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.89s
REVIEW HARNESS: exit code 0

build-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 42-build-axum.log.

cargo build-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 12.96s
REVIEW HARNESS: exit code 0

build-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 43-build-cloudflare.log.

cargo build-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 37.24s
REVIEW HARNESS: exit code 0

check-fastly

CWD relative to REVIEW_WT: .. Exit: 0. Log: 44-check-fastly.log.

cargo check-fastly

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 10.28s
REVIEW HARNESS: exit code 0

check-axum

CWD relative to REVIEW_WT: .. Exit: 0. Log: 45-check-axum.log.

cargo check-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 7.79s
REVIEW HARNESS: exit code 0

check-cloudflare

CWD relative to REVIEW_WT: .. Exit: 0. Log: 46-check-cloudflare.log.

cargo check-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 6.85s
REVIEW HARNESS: exit code 0

check-spin

CWD relative to REVIEW_WT: .. Exit: 0. Log: 47-check-spin.log.

cargo check-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 6.29s
REVIEW HARNESS: exit code 0

check-cloudflare-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 48-check-cloudflare-native.log.

cargo check -p trusted-server-adapter-cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 6.67s
REVIEW HARNESS: exit code 0

check-spin-native

CWD relative to REVIEW_WT: .. Exit: 0. Log: 49-check-spin-native.log.

cargo check -p trusted-server-adapter-spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.33s
REVIEW HARNESS: exit code 0

fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 50-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 14s
REVIEW HARNESS: exit code 0

spin-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 51-spin-release.log.

TRUSTED_SERVER__PUBLISHER__ORIGIN_URL=http://127.0.0.1:8080 TRUSTED_SERVER__PUBLISHER__PROXY_SECRET=integration-test-proxy-secret TRUSTED_SERVER__EC__PASSPHRASE=integration-test-ec-secret-padded-32 TRUSTED_SERVER__PROXY__CERTIFICATE_CHECK=false cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 46s
REVIEW HARNESS: exit code 0

fastly-deadlines

CWD relative to REVIEW_WT: .. Exit: 0. Log: 52-fastly-deadlines.log.

node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"

Actual result lines:

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 242 filtered out; finished in 0.49s
REVIEW HARNESS: exit code 0

cloudflare-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 53-cloudflare-deadline-build.log.

cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 43.88s
REVIEW HARNESS: exit code 0

cloudflare-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 54-cloudflare-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 32.85s
REVIEW HARNESS: exit code 0

spin-deadline-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 55-spin-deadline-build.log.

cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 47.62s
REVIEW HARNESS: exit code 0

spin-deadline-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 56-spin-deadline-clippy.log.

cargo clippy --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 18.12s
REVIEW HARNESS: exit code 0

cloudflare-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 57-cloudflare-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime /private/tmp/review-1506-854fe2e/local-tools/node_modules/.bin/wrangler --wasm-bindgen /private/tmp/review-1506-854fe2e/wasm-bindgen-0.2.126/wasm-bindgen

Actual result lines:

PASS cloudflare /fast budget=80 origin=200: complete:205
PASS cloudflare /headers budget=80 origin=0: timeout:81
PASS cloudflare /body budget=80 origin=0: timeout:81
PASS cloudflare /headers budget=80 origin=200: timeout:201
REVIEW HARNESS: exit code 0

spin-deadline-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 58-spin-deadline-runtime.log.

node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"

Actual result lines:

PASS spin /fast budget=80 origin=200: complete:211
PASS spin /headers budget=80 origin=0: timeout:81
PASS spin /body budget=80 origin=0: timeout:83
PASS spin /headers budget=80 origin=200: timeout:202
PASS spin /large budget=2000 origin=0: oversized:10
REVIEW HARNESS: exit code 0

trace-script-skipped

CWD relative to REVIEW_WT: .. Exit: 0. Log: 59-trace-script-skipped.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_skipped_emitted_script_leaves_ad_state_untouched -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1m 06s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.41s
REVIEW HARNESS: exit code 0

trace-script-freezes

CWD relative to REVIEW_WT: .. Exit: 0. Log: 60-trace-script-freezes.log.

cargo test -p trusted-server-core --target aarch64-apple-darwin --lib trace_document_emitted_script_deep_freezes_owned_context_in_node -- --ignored

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 2.81s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3340 filtered out; finished in 0.08s
REVIEW HARNESS: exit code 0

html-benchmark-smoke

CWD relative to REVIEW_WT: .. Exit: 0. Log: 61-html-benchmark-smoke.log.

cargo bench -p trusted-server-core --bench html_processor_bench -- --test

Actual result lines:

    Finished `bench` profile [optimized] target(s) in 1m 37s
Testing html_processor/process_chunk/10kb
Success
Testing html_processor/process_chunk/100kb
Success
REVIEW HARNESS: exit code 0

template-cache-esi

CWD relative to REVIEW_WT: .. Exit: 0. Log: 62-template-cache-esi.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh esi

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.66s
    Finished `dev` profile [unoptimized] target(s) in 0.86s
  22 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-inline

CWD relative to REVIEW_WT: .. Exit: 0. Log: 63-template-cache-inline.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh inline

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.55s
    Finished `dev` profile [unoptimized] target(s) in 0.59s
  9 passed, 0 failed
REVIEW HARNESS: exit code 0

template-cache-purge

CWD relative to REVIEW_WT: .. Exit: 0. Log: 64-template-cache-purge.log.

BID_DELAY=3 ./scripts/template-cache-local-test.sh purge

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.18s
    Finished `dev` profile [unoptimized] target(s) in 0.96s
  34 passed, 0 failed
REVIEW HARNESS: exit code 0

cloudflare-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 65-cloudflare-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-cloudflare --target wasm32-unknown-unknown --features cloudflare,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 3.64s
REVIEW HARNESS: exit code 0

spin-fixture-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 66-spin-fixture-clippy.log.

cargo clippy -p trusted-server-adapter-spin --target wasm32-wasip1 --features spin,test-utils --lib -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 1.39s
REVIEW HARNESS: exit code 0

cli-native-clippy

CWD relative to REVIEW_WT: .. Exit: 0. Log: 67-cli-native-clippy.log.

cargo clippy --manifest-path crates/trusted-server-cli/Cargo.toml --target aarch64-apple-darwin --all-targets -- -D warnings

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 27.16s
REVIEW HARNESS: exit code 0

canonical-port-preflight

CWD relative to REVIEW_WT: .. Exit: 0. Log: 101-canonical-port-preflight.log.

python3 /private/tmp/pr1506-r4-85f5ca3/build/check-canonical-port.py

Actual result lines:

Canonical CI integration origin port 8888 is available
REVIEW HARNESS: exit code 0

matching-bindgen

CWD relative to REVIEW_WT: .. Exit: 0. Log: 102-matching-bindgen.log.

node --version; wasm-bindgen --version; wrangler --version

Actual result lines:

v24.20.0
wasm-bindgen 0.2.126
4.83.0
REVIEW HARNESS: exit code 0

generate-integration-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 103-generate-integration-config.log.

./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 30.36s
REVIEW HARNESS: exit code 0

generate-trace-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 104-generate-trace-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace.toml INTEGRATION_BIDDER_ORIGIN_URL=http://127.0.0.1:8888 ARTIFACTS_DIR=/private/tmp/pr1506-r4-85f5ca3/build/integration-artifacts/trace ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 3.49s
REVIEW HARNESS: exit code 0

generate-trace-auth-config

CWD relative to REVIEW_WT: .. Exit: 0. Log: 105-generate-trace-auth-config.log.

INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace-auth.toml ARTIFACTS_DIR=/private/tmp/pr1506-r4-85f5ca3/build/integration-artifacts/trace-auth ./scripts/generate-integration-viceroy-configs.sh

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 0.46s
REVIEW HARNESS: exit code 0

integration-fastly-release

CWD relative to REVIEW_WT: .. Exit: 0. Log: 106-integration-fastly-release.log.

cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1

Actual result lines:

    Finished `release` profile [optimized] target(s) in 2.50s
REVIEW HARNESS: exit code 0

integration-axum-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 107-integration-axum-build.log.

cargo build -p trusted-server-adapter-axum

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 2.84s
REVIEW HARNESS: exit code 0

integration-cloudflare-build

CWD relative to REVIEW_WT: .. Exit: 0. Log: 108-integration-cloudflare-build.log.

bash crates/trusted-server-adapter-cloudflare/build.sh

Actual result lines:

    Finished `release` profile [optimized] target(s) in 1m 04s
REVIEW HARNESS: exit code 0

image-wordpress

CWD relative to REVIEW_WT: .. Exit: 0. Log: 109-image-wordpress.log.

docker build -t test-wordpress:latest crates/trusted-server-integration-tests/fixtures/frameworks/wordpress/

Actual result lines:

REVIEW HARNESS: exit code 0

image-nextjs

CWD relative to REVIEW_WT: .. Exit: 0. Log: 110-image-nextjs.log.

docker build --build-arg NODE_VERSION=24.20.0 -t test-nextjs:latest crates/trusted-server-integration-tests/fixtures/frameworks/nextjs/

Actual result lines:

REVIEW HARNESS: exit code 0

browser-setup

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 111-browser-setup.log.

npm ci

Actual result lines:

REVIEW HARNESS: exit code 0

playwright-chromium

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 112-playwright-chromium.log.

npx playwright install chromium

Actual result lines:

REVIEW HARNESS: exit code 0

browser-prebid-artifact

CWD relative to REVIEW_WT: crates/trusted-server-js/lib. Exit: 0. Log: 113-browser-prebid-artifact.log.

npm run build:prebid-external -- --modules-json '{"bidder":["rubiconBidAdapter"]}'

Actual result lines:

REVIEW HARNESS: exit code 0

initial-render-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 114-initial-render-fixture-tests.log.

node --test initial-render/pages.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

trace-fixture-tests

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 115-trace-fixture-tests.log.

node --test trace-fixture.test.cjs

Actual result lines:

ℹ tests 2
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
REVIEW HARNESS: exit code 0

initial-render-ownership

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 116-initial-render-ownership.log.

node initial-render/run.cjs --out /private/tmp/pr1506-r4-85f5ca3/build/initial-render-evidence

Actual result lines:

Controlled comparison assertions passed.
REVIEW HARNESS: exit code 0

prebuilt-trace-digest

CWD relative to REVIEW_WT: .. Exit: 0. Log: 117-prebuilt-trace-digest.log.

mkdir -p /private/tmp/pr1506-r4-85f5ca3/build/prebuilt-bundle && node crates/trusted-server-js/lib/build-all.mjs --out-dir /private/tmp/pr1506-r4-85f5ca3/build/prebuilt-bundle && TSJS_PREBUILT_DIR=/private/tmp/pr1506-r4-85f5ca3/build/prebuilt-bundle cargo check-axum --locked

Actual result lines:

    Finished `dev` profile [unoptimized] target(s) in 13.49s
REVIEW HARNESS: exit code 0

integration-matrix

CWD relative to REVIEW_WT: .. Exit: 0. Log: 118-integration-matrix.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin -- --include-ignored --skip test_wordpress_fastly --skip test_nextjs_fastly --skip trace_browser_workflow --skip trace_runtime_boundary --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 20.67s
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.50s
test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 10 filtered out; finished in 33.96s
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
REVIEW HARNESS: exit code 0

integration-fastly-ec

CWD relative to REVIEW_WT: .. Exit: 0. Log: 119-integration-fastly-ec.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin test_ec_lifecycle_fastly -- --include-ignored --test-threads=1

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 2.12s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.00s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 48 filtered out; finished in 2.33s
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 28 filtered out; finished in 0.00s
REVIEW HARNESS: exit code 0

integration-trace-runtime

CWD relative to REVIEW_WT: .. Exit: 0. Log: 120-integration-trace-runtime.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_runtime_boundary -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 0.30s
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 46 filtered out; finished in 35.11s
REVIEW HARNESS: exit code 0

integration-trace-browser

CWD relative to REVIEW_WT: .. Exit: 0. Log: 121-integration-trace-browser.log.

cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target aarch64-apple-darwin --test integration trace_browser_workflow -- --ignored --test-threads=1 --nocapture

Actual result lines:

    Finished `test` profile [unoptimized] target(s) in 1.30s
  1 passed (6.5s)
  1 passed (4.6s)
  1 passed (2.4s)
  1 passed (2.5s)
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 45 filtered out; finished in 31.45s
REVIEW HARNESS: exit code 0

browser-nextjs

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 122-browser-nextjs.log.

TEST_FRAMEWORK=nextjs PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r4-85f5ca3/build/playwright-report-nextjs npx playwright test

Actual result lines:

  2 skipped
  53 passed (1.0m)
REVIEW HARNESS: exit code 0

browser-wordpress

CWD relative to REVIEW_WT: crates/trusted-server-integration-tests/browser. Exit: 0. Log: 123-browser-wordpress.log.

TEST_FRAMEWORK=wordpress PLAYWRIGHT_HTML_REPORT=/private/tmp/pr1506-r4-85f5ca3/build/playwright-report-wordpress npx playwright test

Actual result lines:

  23 skipped
  32 passed (40.3s)
REVIEW HARNESS: exit code 0

final-source-state

CWD relative to REVIEW_WT: .. Exit: 0. Log: 124-final-source-state.log.

git rev-parse HEAD && test "$(git rev-parse HEAD)" = 85f5ca3d962e85e07b29076daab3908f63ee4929 && git diff --exit-code && git diff --cached --exit-code && git status --short

Actual result lines:

85f5ca3d962e85e07b29076daab3908f63ee4929
REVIEW HARNESS: exit code 0
Fresh source checks and evidence boundaries

Fresh source checks were executed in the owned detached reviewer worktrees at TS 85f5ca3d962e85e07b29076daab3908f63ee4929. Every worktree command used its serialized PRfection ownership wrapper. No migrated TS implementation or current EdgeZero runtime test was executed by these source audits.

  • python3 /private/tmp/pr1506-r4-85f5ca3/audit-transport-build.py — exit0. Actual result lines:
PASS: F1/F3/F5/F6 substantive corrections retained
PASS: H26 exact pins, Spin SDK fork and TS explicit WASI shell commands
PASS:64 exact TS/H source excerpts refreshed without changes; current2622-line design read and recorded
PASS:62 dependent files and37 async-store implementers
PASS:runtime/test/build sources unchanged from exact base and previous review
  • python3 /private/tmp/pr1506-r4-85f5ca3/audit-current-qualification.py — exit0; baseline and current inventories independently parsed:511 total /261 required, EdgeZero237 / TS24; both26 exact direct pins and the Spin SDK fork unchanged. Full source metadata is retained locally; no readiness status is treated as a passing acceptance result.
  • python3 /private/tmp/pr1506-r4-85f5ca3/audit-current-api.py — exit0. Actual result:
Current immutable EdgeZero API/build/export source excerpts: 13; app setters, single-request run_custom qualification binary and fail-closed frozen export confirmed.
  • Publisher's fresh source recorder (exact command in publisher/source-command-result.txt) — exit0;32 source entries /4456 numbered lines, whole-section identity checks and32 stable final hashes. Actual current Fastly eager/readiness and Spin cutoff source was read. The possible stale-check finding was withdrawn: the prescribed harness uses next() and late-drop, which still holds; the check-Pending counterfactual is explicitly H-scoped. No77-case probe was rerun or relabeled current-head.
  • Lifecycle's full current qualification contract/approval/exporter, Connection and optimizer reads (commands in lifecycle/audit.md) — exit0 after two corrected investigator path lookups. Existing F4/F5 remain addressed; the no-freeze-protocol hypothesis was withdrawn because the revision makes no authoritative qualification-pass claim and the exporter still requires frozen/clean/exact-commit/reviewed provenance. The current bounded-empty-Connection handling does not invalidate the chosen operator ban or nominated-field policy.
  • Both cited upstream re-reviews were fetched directly:5810546608 at598f0a2a,5815197468 at6f0cc74c. These are upstream review evidence with a limited stated scope, not reviewer-executed tests or a global upstream approval.
  • Fresh immutable baseline download matched all737 previously inspected baseline files. Current5ea archive SHA256:d22bbf40377a12fedef555e05aba81b2cf305cefd02ff18b0bad0b59ffb17597. No TS/H source was edited.

The source checks support expressibility and consistency of this planning correction. Author-reported hosted runs, qualification, future moving PR275 heads and any frozen-candidate pass remain outside their evidence.

The two newly cited upstream amendment requests were fetched directly with gh api repos/IABTechLab/edgezero/pulls/comments/4504554519 and gh api repos/IABTechLab/edgezero/pulls/comments/4504573926, both exit0. They request per-adapter HTTP3 applicability and strict bodiless framing; the TS design correctly identifies them as requests while the current upstream contract remains unamended. Their requester labels are not substituted for direct user confirmation in this reviewer session.

Fastly and Axum read request heads through parts, headers and extensions,
propagate into_request errors, and convert bodies through into_body_payload.
Hooks::routes returns Err(startup_error(..)) on a settings failure; core maps
the root status to the matching EdgeError constructor. Axum main assembles
the app with App::build and exits non-zero before binding when startup fails,
and its startup_error_router is gone. Fastly keeps its startup router and
hand-built App; its run_custom and serve_custom callbacks return Ok(()).

The Axum route tests and the CLI proxy test now serve the real app through
AxumTestServer over loopback TCP.
…egress policies

Core gains edge_app.rs. install_edge_policies sets a response write deadline
60 s after egress starts and installs x-ts-version as the app-level
synthesized response header set. Every adapter's Hooks::configure calls it,
and Fastly also adds x-ts-fastly-version from FASTLY_SERVICE_VERSION. Fastly's
hand-built app still logs a configure error instead of failing.

Cloudflare and Spin read request heads through parts, headers and
extensions, propagate into_request errors, convert bodies through
into_body_payload, and convert ConfigValue to String at the config store
boundary. Their startup_error_routers are gone: routes() returns Err, mapped
by startup_error on Cloudflare and always service_unavailable on Spin. Spin
opens its config store with for_label, normalizes RequestParts, and its entry
point returns SpinResponse. sanitize_forwarded_headers takes a HeaderMap.
Spin's outbound client detaches its tasks with spawn_local, because the
repinned spin-sdk deprecates spawn.

Cloudflare and Spin route tests drive the assembled app and check that
EdgeZero's canonical 404 and 405 carry x-ts-version.
The Axum route tests now prove that TrustedServerApp::configure installs the
synthesized response headers over real TCP. TRACE /auction gets the canonical
405 with a sorted Allow and x-ts-version. A raw OPTIONS * request, the one
target the publisher fallback does not claim, gets the canonical 404 with
x-ts-version.
EdgeZero PR 275 hands inbound bodies to handlers as deadline-bounded
streams, so the old readers broke: POST /auction and EC batch sync read
an empty body, and the sign, rebuild, request-signing, and cache purge
endpoints answered 400 for any streamed body.

Add http_util::read_request_body, which rejects a single valid
Content-Length over the cap without polling the body and otherwise reads
with Body::into_bytes_bounded. Errors map by status: 413 to
RequestTooLarge, 408 to the new TrustedServerError::RequestTimeout,
another 4xx to BadRequest, and a 5xx to Proxy (502). A duplicate or
malformed Content-Length skips the precheck and the bounded read
governs. Body bytes are never logged.

Move every inbound reader onto it with its existing cap: /auction (keeps
the text/plain 413), EC batch sync (keeps the body_too_large body), cache
purge, first-party sign and rebuild, verify-signature, key rotate and
deactivate, the six integration proxies, and the GTM beacon. Delete
request_body_bytes, collect_body_bounded, enforce_max_body_size, and the
GTM PayloadSizeError path. The request-signing handlers and batch sync
become async, and the adapters await them.

Add a shared body-read case table so each reader asserts the declared
413, the streamed 413, 408, 400, and 502 through its handler, plus Axum
listener tests that sign a URL and parse an auction body sent as
streams.
ScriptedHttpClient implements EdgeZero's OutboundHttpClient for core and adapter tests. It records each prepared request with its options and answers from a first-in, first-out script per method and URI, with chunked, delayed, held, and failing replies. Its forbid mode fails and records every request.

TestClock pairs a hand-advanced clock with a timer factory that wakes on advance, so batch cutoffs, timeouts, and slot timing follow EdgeZero's batch ledger deterministically.
…igration

Conflicts keep both sides; #1493's mediator HTTP-error fallback moves onto run_mediator and its tests onto the scripted client, and #1455's checks sit beside the cut's config rejections.
`spin up` serves through a `spin trigger http` child, and killing only the
launcher left that child running after every Spin runtime test. The harness
now starts Spin in its own process group and stops the whole group.
A non-2xx adserver_mock reply must fail response processing, so the warning names the HTTP status, instead of returning an error-status response that only the error-status filter turns into local ranking.
On Linux an unreaped zombie leader keeps its process group visible, so the
drop loop waited the full 3 s and then sent SIGKILL for every owned runtime.
The loop now reaps the leader first, treats only ESRCH as a gone group, and
skips SIGKILL once the group has exited.
The instream video pair is #1325 and #1437, not #1493, and the section now records which main PRs the Task 12 merges ported and that #1516 is still open.
@aram356
aram356 force-pushed the spec/edgezero-pr275-migration branch from 33d2214 to 6c39a56 Compare November 12, 2026 17:14
Every adapter rendered a failed request's report through its own copy of
http_error, which logged at error whatever the status, and
read_request_body logged the same rejection again. A 413, 408, or 400 from
a body read therefore produced one warn line and one error line.

The adapters now share trusted_server_core::error::http_error. It logs the
report once, at warn for a client error and at error otherwise, and the
four adapter copies are gone. read_request_body no longer logs: its report
names the limit or carries the read error. The auction and batch sync
routes, which answer a 413 without the helper, log the report at warn
themselves.

WarningCapture now records errors as well as warnings, with each record's
level, so a test can show that a request logs one line at the expected
level.
aram356 added a commit that referenced this pull request Nov 12, 2026


Per the user, every feature is built once and works on every adapter in
platform order, with platform gaps sent to EdgeZero (DEC-16, SH-5). T21
moves the identity routes, EC lifecycle, providers and write-back into one
router in core that each adapter mounts; A2, A10, T8, T9, T17 and T18
shrink to turning it on per adapter and passing the conformance suite, and
T7, T14 and A11 fold into A2 and A10. EZI-2a adds EdgeZero's local store
for Axum development and EZI-4 binds Axum's geo provider from the manifest.

Restack the Axum RC units on #1506: #1531 carries A1 in place of #1528,
#1533 and #1534 close as copies of #1525 and #1526, and the image and
Terraform units sit directly on #1532 so A6 and A7 stop waiting on A2.
Record #1566, refresh the provider stack's fixes at their current heads,
and flag #1535 as unplanned.
aram356 added a commit that referenced this pull request Nov 12, 2026
Per the user, Axum's record uses EdgeZero's pluggable KvStore adapters
(DynamoDB and celld through EZI-2b), never an Axum-only store (DEC-3). DEC-6
now covers only the base, restacking the RC units on #1506, and DEC-9 waits
on a LiveRamp test setup the user is getting.
Each adapter read the request's outbound client, failed with the same
internal error when it was missing, and turned the proxy marker off in its
own copy of one block. Core's outbound::request_outbound_client now does
that once, and the four copies are gone.

Cloudflare and Spin each had an identical publisher_input_cap, and Axum
inlined its first half. Core's publisher::publisher_input_cap takes the
platform cap as a parameter: Cloudflare passes 10 MiB, Spin 8 MiB, and Axum,
which has no runtime limit of its own, u64::MAX.
CodeQL alert 283 (rust/cleartext-logging) flagged
RecordedRequest::assert_headers: its assert_eq printed every recorded and
expected header value, a Fastly API key among them, and its message printed
the request's method and URI.

A failure now names the missing, unexpected, and differing headers only.
assert_transport_settings also stops printing the URI and the authority it
sent, and names the request by its method. The management API test calls
its upsert request upsert_request instead of secret.
Spec test 11 says canonical 404 and 405 carry x-ts-version on every
runtime, but the Fastly leg had no test: the Viceroy TRACE canary checked
only the 405 status. It now also requires a non-empty x-ts-version and
x-ts-fastly-version, which Viceroy's FASTLY_SERVICE_VERSION supplies. CI
runs the canary in both Fastly integration jobs.

The Axum, Cloudflare, and Spin canonical tests compared the header with
TS_GIT_VERSION, so a build without a git version passed on an absent
header. They now expect the compiled-in version and fail when the build
has none. The EOF harness compared the detached responses' version headers
with the routed page's, which also passed when both were absent; it now
requires both headers on the routed page first.
On Fastly a forbidden or invalid operator response header warned twice per
request: once when the entry point built the per-request synthesized set,
which runs apply_finalize_headers on an empty response, and again when the
routed response was finalized.

Core now splits the warning from the application.
apply_response_headers_with_cache_privacy skips the entries without a log,
and warn_skipped_operator_response_headers logs one warning per skipped
entry. Fastly calls it from per_request_synthesized_headers, which the
entry point runs once for every request. Axum, Cloudflare, and Spin call it
from their finalize helper, which their middleware runs once per request.
EC pull sync and the Fastly Tinybird sender logged a failed request's
status and kind themselves, and pull sync logged a request-build error
with Debug, which includes the error's message. That contradicted the
outbound module's rule, and spec section 2.11, that every client failure
and request-construction error goes through outbound_error.

Both now build the report with outbound_error and
OutboundRequestSource::Internal, then log it at warn: pull sync with an
EdgeCookie context for a build failure, a group failure, a request
failure, or an unreadable response, and Tinybird with a Proxy context for
a build or send failure. outbound_error adds its typed detail and keeps
the provider's text out of the logs.
The final review found passages that contradict the branch. The spec now
says, to match the code at 14a6ca8b:

- Status is approved at 85f5ca3, with implementation corrections folded
  in.
- An Axum head over the byte or field limit gets 431; only a connection
  over MAX_CONNECTIONS or a head timeout is closed.
- Spin's client sets Content-Length on buffered bodies and frames an empty
  body only for POST, PUT, and PATCH.
- finalize_response takes FinalizeInputs and returns Option<FinalizeState>.
- A client-caused mid-body stream error answers 502; the 400 case is
  EdgeZero's ingress framing error.
- The response diff cites Fastly differences 5, 6, and 25; bodiless
  framing shows no difference on its requests.
- Test 6's Spin leg has its own name in both CI jobs, and test 9's reuse
  leg is the unconditional missing-blob recovery test.
- The worker examples use start_batch_until and collect.
- Open defects 1, 2, and 3 are fixed at the pin.
- request_start, insert_outbound_client, the backend limits, the
  multi-provider plan test, and post-delivery block_on match the code.
- read_request_body does not log; http_error logs once by status.
- Expected files lists the files the cut touches, and the test section
  records the partial coverage of tests 6 and 21 and Fastly differences 16
  and 17.
- Before deploy names the requests to drop for the staging diff.
aram356 added a commit that referenced this pull request Nov 12, 2026
Per the user, the RC line is forward-ported to main (DEC-6). Rechecking the
proposed stack against DEC-3 and DEC-16: #1536 and #1537 are mostly
Axum-only stores, store selection and wiring that EZI-2b, T6 and T21
replace, so A2 becomes a new pull request that takes their tests, and both
close with #1535 once their code moves. The image and Terraform units
restack on #1543, which publishes the image and shares .dockerignore with
#1539. #1531 goes on #1506 for A1 and #1532 on #1531 for #1529.
aram356 added a commit that referenced this pull request Nov 13, 2026
#1516 merged on main, so it leaves #1506's wait list and the wave-1
fallback clock. #1540 and #1541 moved: #1540 now wires a single-partition
DynamoDB table and an opt-in CloudFront front door, and no longer
restacks cleanly on #1531, so AX-6's state, DEC-6 and Part C say so.
@aram356

aram356 commented Nov 13, 2026

Copy link
Copy Markdown
Collaborator Author

CREATOR: From the server-side identity plan (#1559, c7dc9de77): Rebase after #1557 and #1526; #1516 has merged. Keep EdgeZero pinned to IABTechLab/edgezero#275's head or an integration-branch tag (DEC-5): an RC-tag pin pushed to this branch on 2026-11-12 was reverted. Repin after the fold-in, or under wave 1's fallback; drop the origin_readthrough_enabled rejection in config.rs once cache tags return. The current pin already carries IABTechLab/edgezero b97efec1, which stops Spin sending Content-Length: 0 on bodiless DELETE and OPTIONS. Port #1527's native-client, response-owner and managed Fastly delivery tests if missing.

Part of #1507

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Write the EdgeZero PR 275 cutover spec Cut Trusted Server over to EdgeZero PR 275

2 participants