@@ -1830,3 +1830,40 @@ clock edges and privacy leaks.
18301830- Non-blocking, no change: a UID2 refresh that keeps failing is retried on
18311831 every navigation until the token expires unless ` rate_limit_per_hour ` is
18321832 set. The fix for overdue UID2 refresh state (834af2591) chose this bound.
1833+
1834+ ### Round 9 (2026-11-12, PR #1489 at 4b11d05a1, Claude Code (Opus 5.5) review agent)
1835+
1836+ Angle: data flow end to end, from partner config and the registry through
1837+ pull sync dispatch, the after-response write and bidstream egress, to the
1838+ mirror cookie and its vendor-consent expiry, on the tree restacked onto PR
1839+ #1488 .
1840+
1841+ - Blocking, fixed (9638d7184): pull sync, now a provider, stored UIDs up to
1842+ 1024 bytes. It runs for existing deployments with no config change, so a
1843+ row holding a longer pull-sync UID broke rollback, which older builds
1844+ reject whole (§6.3, §12.3). Pull-sync UIDs over 512 bytes are ignored, as
1845+ legacy pull sync did.
1846+ - Restack: the mirror's vendor gate now uses the per-source vendor set from
1847+ PR #1487 round 5, so a disabled provider's denied vendor withholds the
1848+ source from the mirror and expires a carried mirror holding it, as in the
1849+ bidstream. Tested; §10, the guide and the changelog no longer name a single
1850+ owning vendor.
1851+ - Non-blocking, fixed: stale comments on pull-sync ownership and on when a
1852+ provider claiming a pull-sync source fails.
1853+
1854+ ### Round 10 (2026-11-12, PR #1489 at 9638d7184, Claude Code (Opus 5.5) review agent)
1855+
1856+ Angle: adversarial. Malformed mirror cookies and pull-sync replies, config
1857+ combinations, adapter differences and privacy leaks.
1858+
1859+ - No blocking findings. Re-checked forged, undecodable and oversized mirror
1860+ values (an undecodable one is expired whenever a mirrored vendor is denied;
1861+ one naming unknown sources is never trusted over KV); non-string, blank and
1862+ oversized pull-sync UIDs; zero rate limits and tokens that cannot form a
1863+ header (rejected at startup); ` mirror_enabled ` without
1864+ ` bidstream_enabled ` , and a configured provider or ` kind = "pull-sync" `
1865+ claiming a pull-sync source (rejected); withdrawal and missing EID consent
1866+ expiring the mirror on every response; and the bot gate on pull sync.
1867+ - Non-blocking, no change: pull sync and provider-written mirror contents
1868+ exist only on Fastly; other adapters build the mirror from rows without
1869+ provider UIDs, so it stays unset there (§12.3 "On Fastly").
0 commit comments