Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
524 commits
Select commit Hold shift + click to select a range
fa0353b
Address review feedback and move sandbox bounds off the deprecated store
aram356 Oct 8, 2026
4cd2024
Merge branch 'main' into fix/align-edgezero-pr-381
aram356 Oct 8, 2026
9b92886
Stop the Fastly deploy skill from recommending compute publish
aram356 Oct 8, 2026
cfa9953
Merge branch 'main' into spec/1234-creative-click-rewrite-switch
prk-Jr Oct 8, 2026
dc69eb4
Pin trace path classification across Fastly request conversion
prk-Jr Oct 8, 2026
285c75f
Merge main into spec/mobile-ad-render-trace-endpoint
prk-Jr Oct 8, 2026
fbc7372
Merge branch 'main' into fix/dev-proxy-rewrite-origin
prk-Jr Oct 8, 2026
cfa87ac
Merge branch 'main' into fix/align-edgezero-pr-381
aram356 Oct 8, 2026
a1dd0fe
Merge branch 'main' into fix/sourcepoint-unknown-length-1088
aram356 Oct 8, 2026
0d0689a
Merge branch 'main' into fix/rewrite-origin-urls-in-response-headers
aram356 Oct 8, 2026
06fd4cc
Merge branch 'main' into fix/redirect-body-replay
aram356 Oct 8, 2026
49077c6
Merge branch 'main' into fix/dev-proxy-rewrite-origin
aram356 Oct 8, 2026
70ba83f
Merge branch 'main' into chore/ci-pinned-node-tsjs-build
aram356 Oct 8, 2026
b8dbc19
Merge branch 'main' into chore/ci-per-job-rust-cache
aram356 Oct 8, 2026
c185093
Address Sourcepoint cache and review coverage
ChristianPavilonis Oct 8, 2026
c0982a5
Merge branch 'main' into fix/dev-proxy-rewrite-origin
prk-Jr Oct 9, 2026
117373e
Merge branch 'main' into spec/mobile-ad-render-trace-endpoint
prk-Jr Oct 9, 2026
ece25d3
Merge branch 'main' into spec/1231-creative-asset-host-allowlist
aram356 Oct 9, 2026
527a367
Merge branch 'main' into fix/redirect-body-replay
aram356 Oct 9, 2026
92dd203
Authenticate forwarded public origins before request dispatch
prk-Jr Oct 9, 2026
8d6ba17
Merge branch 'spec/mobile-ad-render-trace-endpoint' into fix/dev-prox…
prk-Jr Oct 9, 2026
ee024b8
Preserve browser Origin with authenticated proxy forwarding
prk-Jr Oct 9, 2026
cf36844
Document random forwarder tokens and temporary digest comparison
prk-Jr Oct 9, 2026
720ae96
Merge branch 'spec/mobile-ad-render-trace-endpoint' into fix/dev-prox…
prk-Jr Oct 9, 2026
b01b2e2
Clarify random proxy token provisioning and security review
prk-Jr Oct 9, 2026
ba227cb
Initialize proxy TLS before startup
prk-Jr Oct 9, 2026
782d83c
Merge branch 'main' into chore/ci-pinned-node-tsjs-build
aram356 Oct 9, 2026
50ad004
Unify the git version build input as TRUSTED_SERVER__GIT_VERSION
dhruv8sh Oct 9, 2026
a7ad11d
Harden documentation proposals against forks, symlinks, and live rati…
dhruv8sh Oct 9, 2026
466520b
Widen the wasm clock lint and share the std SystemTime bridge
dhruv8sh Oct 9, 2026
42fba17
Merge origin/main into fix/rewrite-origin-urls-in-response-headers
dhruv8sh Oct 9, 2026
badb5a1
Keep redirect body drops covered and finalize every proxy exit
dhruv8sh Oct 10, 2026
9f139a0
Guard the pinned Node setup in CI with a step-order check
dhruv8sh Oct 10, 2026
437b810
Keep cookieless same-URL GET redirects off the serving host
dhruv8sh Oct 10, 2026
5e54ade
Merge remote-tracking branch 'origin/main' into feat/docs-proposal-au…
dhruv8sh Oct 10, 2026
025df95
Merge remote-tracking branch 'origin/main' into fix/cloudflare-web-ti…
dhruv8sh Oct 10, 2026
959e503
Merge remote-tracking branch 'origin/main' into feat/git-version-header
dhruv8sh Oct 10, 2026
091e3cd
Merge branch 'main' into chore/ci-per-job-rust-cache
dhruv8sh Oct 10, 2026
0baefea
Merge branch 'main' into fix/redirect-body-replay
dhruv8sh Oct 10, 2026
5c66d64
Merge branch 'main' into spec/mobile-ad-render-trace-endpoint
aram356 Oct 11, 2026
bcec6ad
Move pinned Rust setup into a shared composite action
dhruv8sh Oct 12, 2026
b445b7b
Merge remote-tracking branch 'origin/chore/ci-per-job-rust-cache' int…
dhruv8sh Oct 12, 2026
b4a20f4
Address trace workflow review findings
prk-Jr Oct 12, 2026
3993b72
Merge trace base into dev proxy origin fix
prk-Jr Oct 12, 2026
ab4c378
Merge branch 'main' into chore/ci-lint-domains-gate
dhruv8sh Oct 12, 2026
a40b319
Merge branch 'main' into feat/docs-proposal-automation
prk-Jr Oct 12, 2026
cce4e2a
Address review feedback on the include_domains spec and plan
dhruv8sh Oct 12, 2026
e2970f4
Merge branch 'spec/1231-creative-asset-host-allowlist' into feat/1231…
dhruv8sh Oct 12, 2026
f1c0c14
Address review feedback on the rewrite_clicks spec and plan
dhruv8sh Oct 12, 2026
6930246
Merge branch 'spec/1234-creative-click-rewrite-switch' into feat/1234…
dhruv8sh Oct 12, 2026
72f26d2
Cover suffix spoofing in the rewrite policy test
dhruv8sh Oct 12, 2026
80fc013
Warn that public rewrite wrappers ignore switches
dhruv8sh Oct 12, 2026
d2c77d6
Keep a bidder base target when dropping its URL
dhruv8sh Oct 12, 2026
be1ae72
Correct operator docs for rewrite_clicks
dhruv8sh Oct 12, 2026
7c5eca0
Expand the CHANGELOG notes for the shared step
dhruv8sh Oct 12, 2026
f7885c1
Round-trip include_domains entries through url
dhruv8sh Oct 12, 2026
e1332c9
Use a let-chain in the creative link handler
dhruv8sh Oct 12, 2026
2af735d
Document include_domains host round-trip rules
dhruv8sh Oct 12, 2026
1b97522
Warn that public rewrite wrappers ignore switches
dhruv8sh Oct 12, 2026
ff48ae9
Keep a bidder base target when dropping its URL
dhruv8sh Oct 12, 2026
366e361
Correct operator docs for rewrite_clicks
dhruv8sh Oct 12, 2026
e210f62
Expand the CHANGELOG notes for the shared step
dhruv8sh Oct 12, 2026
1f9ab09
Keep config permissions and hide config text in ts prebid bundle errors
dhruv8sh Oct 12, 2026
1cf83d9
Merge branch 'main' into fix/prebid-bundle-config-write
dhruv8sh Oct 12, 2026
3ddf615
Merge branch 'main' into fix/sourcepoint-unknown-length-1088
aram356 Oct 12, 2026
941a5d8
Merge branch 'main' into feat/git-version-header
aram356 Oct 12, 2026
5d423a2
Merge branch 'main' into fix/cloudflare-web-time-instant
aram356 Oct 12, 2026
d824a42
Merge branch 'main' into fix/rewrite-origin-urls-in-response-headers
aram356 Oct 12, 2026
5c5e92f
Merge branch 'main' into fix/redirect-body-replay
aram356 Oct 12, 2026
b72f6df
Report a reason when an APS creative render fails
aram356 Oct 12, 2026
9610979
Record APS render failures in GPT diagnostics
aram356 Oct 12, 2026
4a1eb28
Pin EdgeZero to v0.0.9 and address the latest review round
aram356 Oct 12, 2026
fde0086
Merge remote-tracking branch 'origin/main' into fix/align-edgezero-pr…
aram356 Oct 12, 2026
c38e141
Add proxy-side identity capture design spec for lockr-issued IDs
jevansnyc Oct 8, 2026
2874689
Implement server-side identity foundation and Lockr response capture
ChristianPavilonis Oct 9, 2026
f22c4ad
Use official ECR mirror for CI framework images
ChristianPavilonis Oct 9, 2026
bb7dbf2
Fix Lockr EID capture and GPP USP consent
ChristianPavilonis Oct 12, 2026
ea39605
Reconstruct provenance for Lockr-captured ID5 IDs
ChristianPavilonis Oct 12, 2026
16b6d09
Add authenticated identity capture handoff
ChristianPavilonis Oct 12, 2026
3add18d
Name the managed-deploy token and staged-version config prerequisites
aram356 Oct 12, 2026
ceadfdc
Read the APS renderer version from its declaration in the browser spec
aram356 Oct 12, 2026
a102c12
Merge branch 'main' into feature/aps-render-failure-reasons
aram356 Oct 12, 2026
939f81f
Merge PR #1175 into rc/202610
aram356 Oct 12, 2026
8d1f530
Merge PR #1183 into rc/202610
aram356 Oct 12, 2026
9f8e21f
Merge branch 'main' into fix/sourcepoint-unknown-length-1088
aram356 Oct 12, 2026
ab326ba
Merge PR #1107 into rc/202610
aram356 Oct 12, 2026
892a26f
Merge PR #1251 into rc/202610
aram356 Oct 12, 2026
8233648
Merge PR #1213 into rc/202610
aram356 Oct 12, 2026
e887cee
Merge main into rc/202610
aram356 Oct 12, 2026
9db1d72
Merge branch 'main' into fix/sourcepoint-unknown-length-1088
aram356 Oct 12, 2026
905a8f4
Accept and drop TS Console auction evidence in trace projection
aram356 Oct 12, 2026
e65000e
Run the Axum dev server through EdgeZero's AxumDevServer
aram356 Oct 12, 2026
f4bd3d5
Merge main into rc/202610
aram356 Oct 12, 2026
549120c
Revert PR #1052 from rc/202610
aram356 Oct 12, 2026
5d84340
Merge PR #1300 into rc/202610
aram356 Oct 12, 2026
d356d76
Separate import groups in the trace projection
aram356 Oct 12, 2026
c3a33e6
Merge branch 'main' into feat/docs-proposal-automation
aram356 Oct 12, 2026
4efde34
Merge main into rc/202610
aram356 Oct 12, 2026
0484e8d
Merge PR #1183 into rc/202610
aram356 Oct 12, 2026
0ff684f
Merge PR #1239 into rc/202610
aram356 Oct 12, 2026
747126f
Merge PR #1254 into rc/202610
aram356 Oct 12, 2026
4cf890d
Merge PR #1257 into rc/202610
aram356 Oct 12, 2026
f543469
Merge PR #1259 into rc/202610
aram356 Oct 12, 2026
1f175e0
Merge PR #1291 into rc/202610
aram356 Oct 12, 2026
0ba787a
Merge PR #1222 into rc/202610
aram356 Oct 12, 2026
035b5e2
Merge PR #1225 into rc/202610
aram356 Oct 12, 2026
f8ec5ac
Merge PR #1226 into rc/202610
aram356 Oct 12, 2026
a430096
Merge PR #1238 into rc/202610
aram356 Oct 12, 2026
c556a35
Merge PR #1252 into rc/202610
aram356 Oct 12, 2026
ae3199f
Merge PR #1253 into rc/202610
aram356 Oct 12, 2026
e034e5d
Merge PR #1260 into rc/202610
aram356 Oct 12, 2026
3590f32
Merge branch 'main' into feature/aps-render-failure-reasons
prk-Jr Oct 13, 2026
77dc8c7
Restore browser EIDs and expired capture fallback
ChristianPavilonis Oct 13, 2026
7fecdbd
Update .github/workflows/test.yml
dhruv8sh Oct 13, 2026
bdf63d3
Merge branch 'main' into feature/aps-render-failure-reasons
aram356 Oct 13, 2026
77bd197
Merge branch 'main' into chore/ci-pinned-node-tsjs-build
aram356 Oct 14, 2026
ee2c589
Merge branch 'main' into chore/ci-per-job-rust-cache
aram356 Oct 14, 2026
5ab8282
Add a failing test for the build-time git version in env overrides
aram356 Oct 14, 2026
e46987a
Ignore the build-time git version in test env overrides
aram356 Oct 14, 2026
22ef7ca
Fix streamed Flight fallback and GTM routing, support serialized form…
ChristianPavilonis Oct 14, 2026
e03a5a0
Merge branch 'main' into fix/sourcepoint-unknown-length-1088
aram356 Oct 14, 2026
8e31ebe
Merge branch 'main' into feature/aps-render-failure-reasons
aram356 Oct 14, 2026
6519803
Merge branch 'main' into fix/native-settings-env-tests
aram356 Oct 14, 2026
8a2f2b4
Merge branch 'main' into chore/ci-per-job-rust-cache
aram356 Oct 14, 2026
d423045
Require agent-reviewed specs for feature PRs
aram356 Oct 14, 2026
d29da66
Match spec review round count across the guide
aram356 Oct 14, 2026
9066231
Fix contradictions in contributor docs
aram356 Oct 14, 2026
a90f2f8
Deliver the APS render reason to diagnostics
aram356 Oct 15, 2026
86ec6b2
Merge main into rc/202610
aram356 Oct 15, 2026
978c6e2
Merge PR #1183 into rc/202610
aram356 Oct 15, 2026
8619394
Merge PR #1257 into rc/202610
aram356 Oct 15, 2026
33c7e51
Merge PR #1259 into rc/202610
aram356 Oct 15, 2026
bc87378
Merge PR #1254 into rc/202610
aram356 Oct 15, 2026
9d726d8
Merge PR #1326 into rc/202610
aram356 Oct 15, 2026
e42f8f9
Merge PR #1385 into rc/202610
aram356 Oct 15, 2026
83cf03b
Merge PR #1387 into rc/202610
aram356 Oct 15, 2026
ca792be
Merge PR #1222 into rc/202610
aram356 Oct 15, 2026
9895c54
Merge PR #1300 into rc/202610
aram356 Oct 15, 2026
97bcfa1
Merge PR #1260 into rc/202610
aram356 Oct 15, 2026
bd98825
Merge remote-tracking branch 'origin/main' into chore/ci-lint-domains…
dhruv8sh Oct 15, 2026
d3c5082
Merge remote-tracking branch 'origin/main' into feat/1234-creative-cl…
dhruv8sh Oct 15, 2026
d0d74cc
Pin Node before building ts and log scanned lines in lint-domains job
dhruv8sh Oct 15, 2026
220f86d
Harden CI Node pin guard and list it in CI gates
dhruv8sh Oct 15, 2026
89d4897
Align creative click switch docs and tests with review feedback
dhruv8sh Oct 15, 2026
8b8445e
Report TOML error line and column and tighten config write tests
dhruv8sh Oct 15, 2026
2feb489
Address review feedback on the creative asset host allowlist
dhruv8sh Oct 15, 2026
2a7b6ce
Merge origin/main into feat/1231-creative-asset-host-allowlist
dhruv8sh Oct 15, 2026
17f64b3
Format the creative click rewrite switch spec with Prettier
dhruv8sh Oct 15, 2026
8aabb39
Potential fix for pull request finding 'CodeQL / Cleartext logging of…
dhruv8sh Oct 15, 2026
e15eea5
Format the exclude_domains warning after the CodeQL fix
dhruv8sh Oct 15, 2026
29ff56c
Merge main and preserve trace asset verification
prk-Jr Oct 15, 2026
ad9b768
Address trace build provenance and dispatch review findings
prk-Jr Oct 15, 2026
d821fb3
Update EdgeZero to reviewed request ingress revision
prk-Jr Oct 15, 2026
ba06c37
Forward Cloudflare fixture readiness through shared spawn helper
prk-Jr Oct 15, 2026
09b1e21
Merge branch 'main' into fix/prebid-bundle-config-write
aram356 Oct 15, 2026
e7e7397
Merge main and move EdgeZero to v0.0.10
aram356 Oct 16, 2026
7528279
Declare and enforce the Spin 4.1 runtime minimum
aram356 Oct 16, 2026
5c850c6
Pin Spin in .tool-versions and read the floor from it
aram356 Oct 16, 2026
b17d64b
Install worker-build with --locked
aram356 Oct 16, 2026
21f91f4
Match SDK URLs by vendor hostname and path
ChristianPavilonis Oct 16, 2026
212372c
Keep Lockr API routing first-party without polling
ChristianPavilonis Oct 16, 2026
ed91166
Share SDK URL parsing and test support
ChristianPavilonis Oct 16, 2026
d0cfd88
Merge main into fix/1206-1208-script-composition
ChristianPavilonis Oct 16, 2026
847c9b2
Merge main and move the EdgeZero pins to the IABTechLab org
aram356 Oct 17, 2026
4c5ca8a
Drop the getrandom 0.4 pin and tighten the esi rev
aram356 Oct 17, 2026
6b317b5
Merge branch 'main' into fix/1206-1208-script-composition
aram356 Oct 17, 2026
efdd8a0
Merge branch 'main' into feat/1234-creative-click-rewrite-switch
aram356 Oct 18, 2026
71a11bb
Merge branch 'main' into chore/ci-lint-domains-gate
aram356 Oct 18, 2026
b967de6
Merge branch 'main' into chore/ci-pinned-node-tsjs-build
aram356 Oct 18, 2026
944c3eb
Merge main and preserve EdgeZero hook revision
prk-Jr Oct 19, 2026
bccb1bf
Resolve trace asset and authenticated client IP review findings
prk-Jr Oct 19, 2026
6cdcda4
Merge updated trace base into dev proxy origin fix
prk-Jr Oct 19, 2026
f9a426c
Address authenticated dev proxy review findings
prk-Jr Oct 19, 2026
eb6e892
Add spec for EID Fidelity
dhruv8sh Oct 19, 2026
01a8c2c
Resolve request host from URI authority when headers are absent
prk-Jr Oct 19, 2026
4b0d3cb
Use trusted geography for all Didomi SDK requests
prk-Jr Oct 19, 2026
f519f94
Restore the entry and reason in the exclude_domains warning
dhruv8sh Oct 19, 2026
d61637a
Hide config text in remaining ts audit generate parse errors
dhruv8sh Oct 19, 2026
70ba721
Document EC ID forwarding and close remaining click switch doc gaps
dhruv8sh Oct 19, 2026
36797df
Document the URL-host CI gate and its base-branch caveat
dhruv8sh Oct 19, 2026
bf54943
Merge branch 'main' into fix/1247-lockr-shim
prk-Jr Oct 19, 2026
2e7634a
Merge branch 'main' into chore/upgrade-rust-198-deps
prk-Jr Oct 19, 2026
3bdac07
Carry OpenRTB EID-level fields on Eid
dhruv8sh Oct 19, 2026
5dc8a37
Add one parser for browser-supplied EIDs
dhruv8sh Oct 19, 2026
953a03d
Validate body and cookie EIDs with the shared parser
dhruv8sh Oct 19, 2026
cdcf51f
Forward browser EIDs as sent and fill only absent sources from KV
dhruv8sh Oct 19, 2026
eb3a69b
Ingest only the auction's own client EIDs on /auction
dhruv8sh Oct 19, 2026
b597a1c
Add a pure collector for the trustedServer bidder request's EIDs
dhruv8sh Oct 19, 2026
a845cc7
Forward the trustedServer bidder request's EIDs and write ts-eids in …
dhruv8sh Oct 19, 2026
5d5fadc
Re-justify the served shim size bound
dhruv8sh Oct 19, 2026
606b5a5
Stop overriding the publisher's Prebid userSync settings
dhruv8sh Oct 19, 2026
8d7cffd
Prove the trustedServer EID contract with real Prebid.js
dhruv8sh Oct 19, 2026
29191a9
Assert readyState in every real-Prebid arm
dhruv8sh Oct 19, 2026
ab34b2a
Delete the unused EID-to-module resolver
dhruv8sh Oct 19, 2026
191bc78
Document Prebid EID forwarding, the ts-eids writer and the TCF exception
dhruv8sh Oct 19, 2026
8e9214e
Keep buildRequests alive when the ts-eids cookie cannot be written
dhruv8sh Oct 19, 2026
c463952
Report non-array ts-eids cookie JSON as a parse error
dhruv8sh Oct 19, 2026
34a776b
Merge branch 'main' into fix/1199-sdk-url-matching
prk-Jr Oct 19, 2026
1e35a89
Merge branch 'main' into fix/native-settings-env-tests
prk-Jr Oct 19, 2026
04b8bc5
Merge branch 'main' into feat/1231-creative-asset-host-allowlist
prk-Jr Oct 19, 2026
75c0491
Port the CI Node pin guard to Node and add its tests
dhruv8sh Oct 19, 2026
6fb5e93
Ask before ad-template generation writes a changed config
dhruv8sh Oct 19, 2026
a7f6517
Harden the ad-template write confirmation
dhruv8sh Oct 19, 2026
7a46b8e
Opt the browser generation fixture into writes with --yes
dhruv8sh Oct 19, 2026
012e406
Merge branch 'main' into chore/upgrade-rust-198-deps
aram356 Oct 19, 2026
36d3d82
Merge branch 'main' into fix/1247-lockr-shim
ChristianPavilonis Oct 19, 2026
46608aa
Merge branch 'main' into fix/prebid-bundle-config-write
aram356 Oct 19, 2026
5597ed0
Merge branch 'main' into fix/http2-authority-host
aram356 Oct 19, 2026
40b75e7
Merge branch 'main' into spec/1246-prebid-eid-fidelity
aram356 Oct 19, 2026
0ea795a
Merge branch 'spec/1246-prebid-eid-fidelity' of https://github.com/IA…
dhruv8sh Oct 19, 2026
c84a73d
Add plan for EID fidelity
dhruv8sh Oct 19, 2026
ba8a667
Merge branch 'main' into fix/native-settings-env-tests
aram356 Oct 19, 2026
b5aac6d
Prepared scoped, uncommitted changes for findings 0–6: foreign-refere…
ChristianPavilonis Oct 19, 2026
7d73ec5
Merge branch 'main' into fix-didomi-trusted-geo
prk-Jr Oct 20, 2026
cf76307
Queue pull request CI runs per author and workflow
dhruv8sh Oct 20, 2026
68e005b
Key the CI queue on the PR author and add job timeouts
dhruv8sh Oct 20, 2026
3d448f9
Merge branch 'main' into chore/ci-per-user-concurrency
aram356 Oct 20, 2026
b090ed9
Merge branch 'main' into chore/upgrade-rust-198-deps
aram356 Oct 20, 2026
5fd5827
Add spec for server-side identity providers
dhruv8sh Oct 21, 2026
5ab7d49
Separate import groups in the Prebid integration test
dhruv8sh Oct 21, 2026
f0f7a17
Merge branch 'spec/1246-prebid-eid-fidelity' into spec/1246-server-si…
dhruv8sh Oct 21, 2026
3b374fc
Merge branch 'main' into fix-didomi-trusted-geo
prk-Jr Oct 21, 2026
1caedc1
Merge branch 'main' into fix/http2-authority-host
prk-Jr Oct 21, 2026
43967ff
Merge branch 'main' into fix/audit-ad-templates-confirm-write
prk-Jr Oct 21, 2026
074c3ee
Merge main into October release candidate
aram356 Oct 21, 2026
9450784
Merge PR #1123 into rc/202610
aram356 Oct 21, 2026
a9264c0
Refresh PR #1107 in rc/202610
aram356 Oct 21, 2026
f00f579
Refresh PR #1251 in rc/202610
aram356 Oct 21, 2026
c334a13
Refresh PR #1222 in rc/202610
aram356 Oct 21, 2026
6433199
Refresh PR #1252 in rc/202610
aram356 Oct 21, 2026
903c8c5
Refresh PR #1253 in rc/202610
aram356 Oct 21, 2026
c15ed8d
Refresh PR #1254 in rc/202610
aram356 Oct 21, 2026
2f04b1a
Refresh PR #1257 in rc/202610
aram356 Oct 21, 2026
5fc0642
Refresh PR #1291 in rc/202610
aram356 Oct 21, 2026
4c3e790
Record current PR #1326 ancestry in rc/202610
aram356 Oct 21, 2026
d4f357b
Include milestone issue #1199 PR #1405 in RC
aram356 Oct 21, 2026
160b964
Include milestone issue #1247 PR #1406 in RC
aram356 Oct 21, 2026
2bc440f
Include HTTP/2 host PR #1413 in rc/202610
aram356 Oct 21, 2026
7987125
Include Didomi geo PR #1414 in rc/202610
aram356 Oct 21, 2026
fe4d142
Include Prebid EID fidelity PR #1416 in rc/202610
aram356 Oct 21, 2026
d1084e3
Include ad-template confirmation PR #1420 in rc/202610
aram356 Oct 21, 2026
6556fb8
Include per-author CI scheduling PR #1426 in rc/202610
aram356 Oct 21, 2026
129914e
Include identity-provider design PR #1428 in rc/202610
aram356 Oct 21, 2026
05f483b
Align RC fixtures and examples with URL-host checks
aram356 Oct 21, 2026
b147fe3
Merge branch 'main' into feature/aps-render-failure-reasons
aram356 Oct 21, 2026
95e3342
Merge branch 'main' into fix/native-settings-env-tests
aram356 Oct 21, 2026
a9fb1b2
Merge branch 'main' into fix/1199-sdk-url-matching
aram356 Oct 21, 2026
610ac68
Merge branch 'main' into fix/1247-lockr-shim
aram356 Oct 21, 2026
8406281
Reference EdgeZero request fidelity branch in RC
aram356 Oct 21, 2026
755223f
Refresh included upstream PR heads in October RC
aram356 Oct 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .claude/commands/check-ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@ Run all CI checks locally, in order. Stop and report if any step fails.
5. `cd crates/trusted-server-js/lib && npx vitest run`
6. `cd crates/trusted-server-js/lib && npm run format`
7. `cd docs && npm run format`
8. `cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target "$(rustc -vV | sed -n 's/host: //p')" --bin ts -- dev lint domains --changed-vs origin/main` (use the PR's base branch in place of `main` when it targets another branch)
9. `node --test scripts/check-ci-node-pin.test.mjs && node scripts/check-ci-node-pin.mjs`

Report a summary of all results when done.
18 changes: 17 additions & 1 deletion .github/actions/setup-integration-test-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,18 @@ runs:
shell: bash
run: echo "node-version=$(grep '^nodejs ' .tool-versions | awk '{print $2}')" >> "$GITHUB_OUTPUT"

# Pin Node before anything compiles trusted-server-core: its dependency on
# trusted-server-js runs the TSJS build with the `npm` on PATH. That covers
# the Rust builds below and the callers' later cargo steps, and callers use
# this Node directly too (e.g. `npm install -g wrangler`), so keep the step
# unconditional.
- name: Use Node.js for the TSJS build
uses: actions/setup-node@v4
with:
node-version: ${{ steps.node-version.outputs.node-version }}
cache: npm
cache-dependency-path: crates/trusted-server-js/lib/package-lock.json

- name: Retrieve Viceroy version
id: viceroy-version
if: ${{ inputs.install-viceroy == 'true' }}
Expand Down Expand Up @@ -95,8 +107,11 @@ runs:
- name: Build WordPress test container
if: ${{ inputs.build-test-images == 'true' }}
shell: bash
# Docker's official ECR mirror avoids Docker Hub anonymous pull limits.
run: |
docker build -t test-wordpress:latest \
docker build \
--build-arg DOCKER_LIBRARY=public.ecr.aws/docker/library \
-t test-wordpress:latest \
crates/trusted-server-integration-tests/fixtures/frameworks/wordpress/

- name: Build Next.js test container
Expand All @@ -105,6 +120,7 @@ runs:
run: |
docker build \
--build-arg NODE_VERSION=${{ steps.node-version.outputs.node-version }} \
--build-arg DOCKER_LIBRARY=public.ecr.aws/docker/library \
-t test-nextjs:latest \
crates/trusted-server-integration-tests/fixtures/frameworks/nextjs/

Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ on:
schedule:
- cron: "42 6 * * 0"

# Each pull request author runs one PR at a time per workflow, so one person
# opening many PRs cannot fill the runner queue ahead of everyone else. Their
# other runs wait in order instead of being cancelled, and every job has a
# timeout so a hung run cannot hold that queue for hours. Bot-authored PRs and
# other events get their own group from the run ID and are never held back.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }}
cancel-in-progress: false
queue: max

jobs:
analyze:
name: Analyze (${{ matrix.language }})
Expand All @@ -28,6 +38,7 @@ jobs:
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: 45
permissions:
# required for all workflows
security-events: write
Expand Down
48 changes: 48 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,21 @@ on:
permissions:
contents: read

# Each pull request author runs one PR at a time per workflow, so one person
# opening many PRs cannot fill the runner queue ahead of everyone else. Their
# other runs wait in order instead of being cancelled, and every job has a
# timeout so a hung run cannot hold that queue for hours. Bot-authored PRs and
# other events get their own group from the run ID and are never held back.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }}
cancel-in-progress: false
queue: max

jobs:
check-claude-md-symlink:
name: CLAUDE.md symlink guard
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -39,9 +50,34 @@ jobs:
exit 1
fi

check-ci-node-pin:
name: CI Node pin guard
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

# The guard's tests check the tree before the guard landed; fetch only
# that commit instead of the full history.
- name: Fetch the pre-guard commit
run: git fetch --no-tags --depth=1 origin 7a0ecb4cbfa39af3d83f7e1ed2733d7eabdc4cb1

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version-file: .tool-versions

- name: Test the guard
run: node --test scripts/check-ci-node-pin.test.mjs

# Every job that compiles trusted-server-core also runs the TSJS build, so
# it must set up the `.tool-versions` Node first (see issue #1204).
- name: Verify jobs pin Node before compiling Rust
run: node scripts/check-ci-node-pin.mjs

format-rust:
name: cargo fmt
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v4

Expand All @@ -64,6 +100,15 @@ jobs:
components: "clippy, rustfmt"
cache-key: cargo-clippy

# trusted-server-core's dependency on trusted-server-js runs the TSJS
# build with the `npm` on PATH, so pin Node before any cargo step.
- name: Use Node.js for the TSJS build
uses: actions/setup-node@v4
with:
node-version-file: .tool-versions
cache: npm
cache-dependency-path: crates/trusted-server-js/lib/package-lock.json

- name: Run cargo fmt
uses: actions-rust-lang/rustfmt@v1

Expand Down Expand Up @@ -103,6 +148,7 @@ jobs:

format-typescript:
runs-on: ubuntu-latest
timeout-minutes: 10
defaults:
run:
working-directory: crates/trusted-server-js/lib
Expand Down Expand Up @@ -134,6 +180,7 @@ jobs:

format-docs:
runs-on: ubuntu-latest
timeout-minutes: 10
defaults:
run:
working-directory: docs
Expand Down Expand Up @@ -175,6 +222,7 @@ jobs:
docs-proposal-scripts:
name: docs-proposal scripts
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

Expand Down
133 changes: 114 additions & 19 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Integration Tests"
name: 'Integration Tests'

permissions:
contents: read
Expand All @@ -10,6 +10,16 @@ on:
types: [opened, synchronize, reopened]
workflow_dispatch:

# Each pull request author runs one PR at a time per workflow, so one person
# opening many PRs cannot fill the runner queue ahead of everyone else. Their
# other runs wait in order instead of being cancelled, and every job has a
# timeout so a hung run cannot hold that queue for hours. Bot-authored PRs and
# other events get their own group from the run ID and are never held back.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }}
cancel-in-progress: false
queue: max

env:
ORIGIN_PORT: 8888
ARTIFACTS_DIR: /tmp/integration-test-artifacts
Expand All @@ -30,11 +40,14 @@ jobs:
uses: ./.github/actions/setup-integration-test-env
with:
origin-port: ${{ env.ORIGIN_PORT }}
install-viceroy: "false"
build-cloudflare: "true"
install-viceroy: 'false'
build-cloudflare: 'true'

- name: Generate integration Viceroy configs
run: ./scripts/generate-integration-viceroy-configs.sh
run: |
./scripts/generate-integration-viceroy-configs.sh
INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace.toml INTEGRATION_BIDDER_ORIGIN_URL="http://127.0.0.1:${ORIGIN_PORT}" ARTIFACTS_DIR="$ARTIFACTS_DIR/trace" ./scripts/generate-integration-viceroy-configs.sh
INTEGRATION_APP_CONFIG_PATH=crates/trusted-server-integration-tests/fixtures/configs/trusted-server.trace-auth.toml ARTIFACTS_DIR="$ARTIFACTS_DIR/trace-auth" ./scripts/generate-integration-viceroy-configs.sh
env:
INTEGRATION_ORIGIN_PORT: ${{ env.ORIGIN_PORT }}

Expand Down Expand Up @@ -68,10 +81,10 @@ jobs:
uses: ./.github/actions/setup-integration-test-env
with:
origin-port: ${{ env.ORIGIN_PORT }}
install-viceroy: "true"
build-wasm: "false"
build-axum: "false"
build-test-images: "false"
install-viceroy: 'true'
build-wasm: 'false'
build-axum: 'false'
build-test-images: 'false'

- name: Download integration test artifacts
uses: actions/download-artifact@v4
Expand All @@ -90,11 +103,6 @@ jobs:
- name: Load integration test Docker images
run: docker load --input "$DOCKER_ARTIFACT_PATH"

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ steps.shared-setup.outputs.node-version }}

- name: Install wrangler
run: npm install -g wrangler

Expand All @@ -105,6 +113,7 @@ jobs:
--target x86_64-unknown-linux-gnu
-- --include-ignored
--skip test_wordpress_fastly --skip test_nextjs_fastly
--skip trace_browser_workflow --skip trace_runtime_boundary
--test-threads=1
env:
WASM_BINARY_PATH: ${{ env.WASM_ARTIFACT_PATH }}
Expand All @@ -127,9 +136,9 @@ jobs:
uses: ./.github/actions/setup-integration-test-env
with:
origin-port: ${{ env.ORIGIN_PORT }}
install-viceroy: "true"
build-wasm: "false"
build-test-images: "false"
install-viceroy: 'true'
build-wasm: 'false'
build-test-images: 'false'

- name: Download integration test artifacts
uses: actions/download-artifact@v4
Expand All @@ -152,6 +161,84 @@ jobs:
VICEROY_CONFIG_PATH: ${{ env.ARTIFACTS_DIR }}/configs/viceroy.toml
RUST_LOG: info

trace-runtime-tests:
name: trace runtime and browser acceptance
needs: prepare-artifacts
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v4

- name: Set up trace test runtime
id: shared-setup
uses: ./.github/actions/setup-integration-test-env
with:
origin-port: ${{ env.ORIGIN_PORT }}
install-viceroy: 'true'
build-wasm: 'false'
build-axum: 'false'
build-test-images: 'false'

- name: Download integration test artifacts
uses: actions/download-artifact@v4
with:
name: integration-test-artifacts
path: ${{ env.ARTIFACTS_DIR }}

- name: Restore runtime binaries and framework images
run: |
chmod +x "$AXUM_ARTIFACT_PATH"
mkdir -p crates/trusted-server-adapter-cloudflare/build
cp -r "$CF_BUILD_ARTIFACT_PATH/." crates/trusted-server-adapter-cloudflare/build/
docker load --input "$DOCKER_ARTIFACT_PATH"

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ steps.shared-setup.outputs.node-version }}
cache: npm
cache-dependency-path: |
crates/trusted-server-integration-tests/browser/package-lock.json
crates/trusted-server-js/lib/package-lock.json

- name: Install browser dependencies
run: |
npm ci --prefix crates/trusted-server-js/lib
npm ci --prefix crates/trusted-server-integration-tests/browser
cd crates/trusted-server-integration-tests/browser
npx playwright install --with-deps chromium
npm install -g wrangler@4.83.0

- name: Install the verified Spin runtime
run: |
trace_spin_dir="$RUNNER_TEMP/trace-spin"
mkdir -p "$trace_spin_dir"
curl --fail --location --silent --show-error https://github.com/spinframework/spin/releases/download/v4.0.0/spin-v4.0.0-linux-amd64.tar.gz --output "$trace_spin_dir/spin.tar.gz"
echo "e705c9bfd9484a9175f392a116856680862a40f31d1a85618bed331f34ffccfa $trace_spin_dir/spin.tar.gz" | sha256sum --check --strict
tar -xzf "$trace_spin_dir/spin.tar.gz" -C "$trace_spin_dir" spin
echo "$trace_spin_dir" >> "$GITHUB_PATH"

- name: Build the production Spin component
run: cargo build --package trusted-server-adapter-spin --target wasm32-wasip1 --features spin --release

- name: Run trace acceptance against prepared runtimes
run: |
cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target x86_64-unknown-linux-gnu --test integration trace_runtime_boundary -- --ignored --test-threads=1 --nocapture
cargo test --manifest-path crates/trusted-server-integration-tests/Cargo.toml --target x86_64-unknown-linux-gnu --test integration trace_browser_workflow -- --ignored --test-threads=1 --nocapture
env:
WASM_BINARY_PATH: ${{ env.WASM_ARTIFACT_PATH }}
AXUM_BINARY_PATH: ${{ env.AXUM_ARTIFACT_PATH }}
CLOUDFLARE_WRANGLER_DIR: ${{ github.workspace }}/crates/trusted-server-adapter-cloudflare
INTEGRATION_ORIGIN_PORT: ${{ env.ORIGIN_PORT }}

- name: Upload trace browser evidence
uses: actions/upload-artifact@v4
if: always()
with:
name: trace-runtime-browser-evidence
path: crates/trusted-server-integration-tests/browser/test-results/trace-runtime-*/
retention-days: 7

browser-tests:
name: browser integration tests
needs: prepare-artifacts
Expand All @@ -165,9 +252,9 @@ jobs:
uses: ./.github/actions/setup-integration-test-env
with:
origin-port: ${{ env.ORIGIN_PORT }}
install-viceroy: "true"
build-wasm: "false"
build-test-images: "false"
install-viceroy: 'true'
build-wasm: 'false'
build-test-images: 'false'

- name: Download integration test artifacts
uses: actions/download-artifact@v4
Expand Down Expand Up @@ -204,6 +291,10 @@ jobs:
working-directory: crates/trusted-server-integration-tests/browser
run: node --test initial-render/pages.test.cjs

- name: Test trace fixture cleanup
working-directory: crates/trusted-server-integration-tests/browser
run: node --test trace-fixture.test.cjs

- name: Test initial render ownership
working-directory: crates/trusted-server-integration-tests/browser
# Let the runner build its Rubicon + Shared ID artifact; the bidder-only
Expand All @@ -225,6 +316,8 @@ jobs:
WASM_BINARY_PATH: ${{ env.WASM_ARTIFACT_PATH }}
INTEGRATION_ORIGIN_PORT: ${{ env.ORIGIN_PORT }}
VICEROY_CONFIG_PATH: ${{ env.ARTIFACTS_DIR }}/configs/viceroy.toml
TRACE_VICEROY_CONFIG_PATH: ${{ env.ARTIFACTS_DIR }}/trace/configs/viceroy.toml
TRACE_AUTH_VICEROY_CONFIG_PATH: ${{ env.ARTIFACTS_DIR }}/trace-auth/configs/viceroy.toml
TEST_FRAMEWORK: nextjs
PLAYWRIGHT_HTML_REPORT: playwright-report-nextjs
run: npx playwright test
Expand All @@ -244,6 +337,8 @@ jobs:
WASM_BINARY_PATH: ${{ env.WASM_ARTIFACT_PATH }}
INTEGRATION_ORIGIN_PORT: ${{ env.ORIGIN_PORT }}
VICEROY_CONFIG_PATH: ${{ env.ARTIFACTS_DIR }}/configs/viceroy.toml
TRACE_VICEROY_CONFIG_PATH: ${{ env.ARTIFACTS_DIR }}/trace/configs/viceroy.toml
TRACE_AUTH_VICEROY_CONFIG_PATH: ${{ env.ARTIFACTS_DIR }}/trace-auth/configs/viceroy.toml
TEST_FRAMEWORK: wordpress
PLAYWRIGHT_HTML_REPORT: playwright-report-wordpress
run: npx playwright test
Expand Down
Loading
Loading