All releases
v2026-10-14
October 14, 2026
Patch
In this release
New20
Fixed120
Total140

pre-dispatch `customer_capped` short-circuit when vendor x tier telemetry shows every tier at or below the customer's max_tier is ~0% (bounded probe budget, no charge, bandwidth-avoided counter)

pre-dispatch `customer_capped` short-circuit when vendor x tier telemetry shows every tier at or below the customer's max_tier is ~0% (bounded probe budget, no charge, bandwidth-avoided counter) WorkerBrowserPoolSaturated reports the utilisation ratio as "sessions" and alerts on a cache that is full by design classify user-capped failures as `customer_capped` (excluded from stealth/success SLI only when vendor x tier telemetry shows a higher tier succeeds) and tell the customer transient DNS res

New Features

20

pre-dispatch `customer_capped` short-circuit when vendor x tier telemetry shows every tier at or below the customer's max_tier is ~0% (bounded probe budget, no charge, bandwidth-avoided counter)

pre-dispatch `customer_capped` short-circuit when vendor x tier telemetry shows every tier at or below the customer's max_tier is ~0% (bounded probe budget, no charge, bandwidth-avoided counter)

corroborate dead origins with a cheap TCP/TLS-SNI probe before T3 retries, with explicit-scheme-respecting HTTP fallback

corroborate dead origins with a cheap TCP/TLS-SNI probe before T3 retries, with explicit-scheme-respecting HTTP fallback

automatic lead sources — B2B detector, signup linking, filter intake

automatic lead sources — B2B detector, signup linking, filter intake

production-path A/B for Amazon T4 image blocking (replaces never-run gate)

production-path A/B for Amazon T4 image blocking (replaces never-run gate)

meter real proxy wire bytes per job and feed proxy_cost_daily from the unified pipeline

meter real proxy wire bytes per job and feed proxy_cost_daily from the unified pipeline

event-driven per-container cloud provider final health wait

event-driven per-container cloud provider final health wait

admin UI watch results and end-to-end regression-then-rollback test

admin UI watch results and end-to-end regression-then-rollback test

persist per-job content-validity verdict and cost provenance on scrape_diagnostics ( part 1)

persist per-job content-validity verdict and cost provenance on scrape_diagnostics ( part 1)

reuse images by retagging existing :<digest> instead of rebuilding

reuse images by retagging existing :<digest> instead of rebuilding

explicit cloud provider traffic-commit point and cloud provider rollout overlapped with the cloud provider tail

explicit cloud provider traffic-commit point and cloud provider rollout overlapped with the cloud provider tail

batched, per-service-concurrent cloud provider worker with live-capacity floor

batched, per-service-concurrent cloud provider worker with live-capacity floor

content-addressed per-service image input digest and :<digest> tagging (no behaviour change)

content-addressed per-service image input digest and :<digest> tagging (no behaviour change)

risk-tiered, evidence-based progression

risk-tiered, evidence-based progression

restructure job graph — build in parallel with tests, changelog off the critical path, single Next.js build

restructure job graph — build in parallel with tests, changelog off the critical path, single Next.js build

terminal-state issue write-back and bidirectional supersession links

terminal-state issue write-back and bidirectional supersession links

tiered load shedding (503 + Retry-After) and concurrency as the primary metered dimension

tiered load shedding (503 + Retry-After) and concurrency as the primary metered dimension

change-scoped rollout: skip cloud provider/cloud provider when runtime image digests are unchanged

change-scoped rollout: skip cloud provider/cloud provider when runtime image digests are unchanged

decide+feat(api): key rate limits by account (sum across keys) instead of per API key

decide+feat(api): key rate limits by account (sum across keys) instead of per API key

export valid-result economics and add coverage-aware dashboard panels and budget alerts ( part 3)

export valid-result economics and add coverage-aware dashboard panels and budget alerts ( part 3)

coverage-aware cost per verified valid result endpoint ( part 2)

coverage-aware cost per verified valid result endpoint ( part 2)

Bug Fixes

120

WorkerBrowserPoolSaturated reports the utilisation ratio as "sessions" and alerts on a cache that is full by design

WorkerBrowserPoolSaturated reports the utilisation ratio as "sessions" and alerts on a cache that is full by design

classify user-capped failures as `customer_capped` (excluded from stealth/success SLI only when vendor x tier telemetry shows a higher tier succeeds) and tell the customer

classify user-capped failures as `customer_capped` (excluded from stealth/success SLI only when vendor x tier telemetry shows a higher tier succeeds) and tell the customer

transient DNS resolver failures are reported to customers as SSRF blocks

transient DNS resolver failures are reported to customers as SSRF blocks

cloud provider/cloud provider scraper and structurer expected counts disagree across three monitors

cloud provider/cloud provider scraper and structurer expected counts disagree across three monitors

log-monitor 5xx scan tail ramp is below real log volume and the billing outcome is never verified

log-monitor 5xx scan tail ramp is below real log volume and the billing outcome is never verified

replace customer-facing error and suggestion copy that implies a site cannot be scraped

replace customer-facing error and suggestion copy that implies a site cannot be scraped

alert runbooks hardcode service so operators query a container that does not exist when green is active

alert runbooks hardcode service so operators query a container that does not exist when green is active

tier-policy alerts mix connection-level denials into vendor_class and flag non-canonical detector strings

tier-policy alerts mix connection-level denials into vendor_class and flag non-canonical detector strings

"Tier Health" in the DevOps report is a capped all-time per-attempt counter, not tier success

"Tier Health" in the DevOps report is a capped all-time per-attempt counter, not tier success

proactive T4 clamp leaves T4 reachable without T3 when AI engine skips T3 (review finding — )

proactive T4 clamp leaves T4 reachable without T3 when AI engine skips T3 (review finding — )

CPR bot protection system pages recorded as proxy/ASN IP-reputation failures via reputation_class (review finding — )

CPR bot protection system pages recorded as proxy/ASN IP-reputation failures via reputation_class (review finding — )

failed job with pending refund retry classed settlement_mismatch instead of unknown (review finding — )

failed job with pending refund retry classed settlement_mismatch instead of unknown (review finding — )

record CF circuit numerator and denominator at the same point (review finding — )

record CF circuit numerator and denominator at the same point (review finding — )

Fix(api): 96 more stdlib-logger calls with structlog kwargs raise TypeError (21 files) — fix all + repo-wide guard

Fix(api): 96 more stdlib-logger calls with structlog kwargs raise TypeError (21 files) — fix all + repo-wide guard

gross-or-net match on succeeded jobs hides post-success refunds (review finding — )

gross-or-net match on succeeded jobs hides post-success refunds (review finding — )

disk alert overstates reclaimable images and docs claim journald is about 104MB when it is 4.0GB

disk alert overstates reclaimable images and docs claim journald is about 104MB when it is 4.0GB

T4 synthetic screen sizes (viewport+130+taskbar) and 3-entry plugins list

T4 synthetic screen sizes (viewport+130+taskbar) and 3-entry plugins list

Fix(worker): bot protection system rotation transport error denies T4 on sec-cpt evidence (, )

Fix(worker): bot protection system rotation transport error denies T4 on sec-cpt evidence (, )

redacted_redis_target can leak password tail for unencoded @ and / (review finding — )

redacted_redis_target can leak password tail for unencoded @ and / (review finding — )

T4 deadline neutrality masks earlier-tier antibot evidence (review finding — )

T4 deadline neutrality masks earlier-tier antibot evidence (review finding — )

move embeddings to dedicated CORTEX_EMBEDDING_API_KEY with own balance check; drop text-embedding-3-small from chat allowlist

move embeddings to dedicated CORTEX_EMBEDDING_API_KEY with own balance check; drop text-embedding-3-small from chat allowlist

tier attempts missing on 0.5/replay/T4-shortcut paths and Turnstile attempts marked success on failed jobs

tier attempts missing on 0.5/replay/T4-shortcut paths and Turnstile attempts marked success on failed jobs

incident spool installer loosens /var/lib/alterlab state dirs to 755 (review finding — )

incident spool installer loosens /var/lib/alterlab state dirs to 755 (review finding — )

freshness subnet probes not charged against re-roll budget (review finding - )

freshness subnet probes not charged against re-roll budget (review finding - )

patchright page.evaluate isolated world changes evaluate-action semantics (review finding — )

patchright page.evaluate isolated world changes evaluate-action semantics (review finding — )

Billing: Stripe webhook deposit settlement correctness

Billing: Stripe webhook deposit settlement correctness

Worker: T4 breaker, deadline and evidence envelope follow-ups

Worker: T4 breaker, deadline and evidence envelope follow-ups

API/SDK: proxy intent request contract

API/SDK: proxy intent request contract

API: entitlement rate-limit reservation ordering and headroom headers

API: entitlement rate-limit reservation ordering and headroom headers

Billing: organization usage attribution findings (PRs ///)

Billing: organization usage attribution findings (PRs ///)

bound PDF decompression and extraction resource usage

bound PDF decompression and extraction resource usage

DevOps report 429 counter reads a legacy log line; 4xx-flood alert cannot attribute client

DevOps report 429 counter reads a legacy log line; 4xx-flood alert cannot attribute client

settlement checker raises false missing_debit for scheduled jobs (debit under reference_type=schedule)

settlement checker raises false missing_debit for scheduled jobs (debit under reference_type=schedule)

job failure-rate alerts count dead-origin and origin-error-page outcomes as scraping failures

job failure-rate alerts count dead-origin and origin-error-page outcomes as scraping failures

Fastly 403 hard-labelled as IP-reputation and T4 denied untested; api.sofascore.com still 0% after the UA fix (was ~70% until 2026-09-25)

Fastly 403 hard-labelled as IP-reputation and T4 denied untested; api.sofascore.com still 0% after the UA fix (was ~70% until 2026-09-25)

first database-budget admission after boot always fails (lazyConnect with offline queue disabled)

first database-budget admission after boot always fails (lazyConnect with offline queue disabled)

cloud provider load alert assumes 8 cores on a 12-vCPU host and fleet status excerpts truncate to 8 lines

cloud provider load alert assumes 8 cores on a 12-vCPU host and fleet status excerpts truncate to 8 lines

settlement checker first-run failure is undiagnosable and blind until next interval after deploy

settlement checker first-run failure is undiagnosable and blind until next interval after deploy

status-gated 4xx pages are reported as origin_unavailable "not a bot-detection block" even when the detector classified a vendor challenge (~130 of 371 failures/24h)

status-gated 4xx pages are reported as origin_unavailable "not a bot-detection block" even when the detector classified a vendor challenge (~130 of 371 failures/24h)

Default T4 script still defines navigator/screen overrides as own instance properties after moved advanced browser to prototypes (review finding — )

Default T4 script still defines navigator/screen overrides as own instance properties after moved advanced browser to prototypes (review finding — )

tier-capped requests consume the T4 breaker half-open probe slot, so the breaker is never re-tested (www.yelp.com anti-bot system: 541/682 failures in 24h)

tier-capped requests consume the T4 breaker half-open probe slot, so the breaker is never re-tested (www.yelp.com anti-bot system: 541/682 failures in 24h)

delta baselines and cooldowns under per-deploy cron generation dir cause false cache eviction CRITICAL after every deploy

delta baselines and cooldowns under per-deploy cron generation dir cause false cache eviction CRITICAL after every deploy

fix covers only auth call sites; support/submit, demo-security, proxy-passthrough, affiliates click still forward unverified CF-Connecting-IP/XFF (review finding — )

fix covers only auth call sites; support/submit, demo-security, proxy-passthrough, affiliates click still forward unverified CF-Connecting-IP/XFF (review finding — )

auto TLS-verify bypass is job-wide, covers proxied legs and customer auth headers (review finding SEC-1 - )

auto TLS-verify bypass is job-wide, covers proxied legs and customer auth headers (review finding SEC-1 - )

Cloudflare cache-hit-rate alert is zone-wide and counts uncacheable API traffic

Cloudflare cache-hit-rate alert is zone-wide and counts uncacheable API traffic

follow-up: 3 deferred item(s) (deferred from )

follow-up: 3 deferred item(s) (deferred from )

Uptime Guardian ignores in-progress blue/green deploys and posts literal backslash-n in Discord messages

Uptime Guardian ignores in-progress blue/green deploys and posts literal backslash-n in Discord messages

Vacuum Staleness alert flags tables below autovacuum trigger, prints stray 0, and instructs container exec

Vacuum Staleness alert flags tables below autovacuum trigger, prints stray 0, and instructs container exec

scrape cache and in-flight keys ignore skip_tls_verification (review finding API-1 - )

scrape cache and in-flight keys ignore skip_tls_verification (review finding API-1 - )

Real scaled-laptop screen sizes (1536x864, 1280x720) drawn with device_scale_factor fixed at 1 contradicts advanced browser pairing (D.25/1.5) (review finding — )

Real scaled-laptop screen sizes (1536x864, 1280x720) drawn with device_scale_factor fixed at 1 contradicts advanced browser pairing (D.25/1.5) (review finding — )

Keyed-API challenge exemption trusts any non-empty X-API-Key / "bearer " Authorization value, so a junk header skips WAF challenges 3/6/7 and /v1/* has no edge rate limit (review finding — )

Keyed-API challenge exemption trusts any non-empty X-API-Key / "bearer " Authorization value, so a junk header skips WAF challenges 3/6/7 and /v1/* has no edge rate limit (review finding — )

unclosed <p hidden>/<li hidden> hides all later text from interstitial scan (review finding SCR-1 - )

unclosed <p hidden>/<li hidden> hides all later text from interstitial scan (review finding SCR-1 - )

Firefox T4 attempts hit the 45 s deadline on ~40% of Cloudflare/anti-bot system challenges since 2026-10-08

Firefox T4 attempts hit the 45 s deadline on ~40% of Cloudflare/anti-bot system challenges since 2026-10-08

internal tooling-bridge crashes refresh on non-numeric memo counters (review finding — )

internal tooling-bridge crashes refresh on non-numeric memo counters (review finding — )

API: org billing error contract and payer resolution surface

API: org billing error contract and payer resolution surface

SDK Drift: Missing SDK parameters — Node (8 items) [sdk-drift:missing_params:node]

SDK Drift: Missing SDK parameters — Node (8 items) [sdk-drift:missing_params:node]

Billing: API contract, changelog and retry-helper polish

Billing: API contract, changelog and retry-helper polish

Billing: org owner debit-fence behavior fixes

Billing: org owner debit-fence behavior fixes

probe_error keys drop current-side detail and persist raw exception text (review finding — )

probe_error keys drop current-side detail and persist raw exception text (review finding — )

bound the shadow dry run's rclone install so an apt hang can't consume the 50-minute job

bound the shadow dry run's rclone install so an apt hang can't consume the 50-minute job

0364 allowlist superseded_by names unrelated migration 0388 (review finding — )

0364 allowlist superseded_by names unrelated migration 0388 (review finding — )

guardian skips probes on 50:50 (review finding — )

guardian skips probes on 50:50 (review finding — )

Scheduler: billing principal and dispatch-slot correctness at run time

Scheduler: billing principal and dispatch-slot correctness at run time

Web: production-actions admin page UI fixes

Web: production-actions admin page UI fixes

Billing: search child debit/enqueue compensation (/)

Billing: search child debit/enqueue compensation (/)

CI: wire missing test suites and harden CI migration/test harness

CI: wire missing test suites and harden CI migration/test harness

Billing: refund_pending usage-row reconcile correctness ( cohort)

Billing: refund_pending usage-row reconcile correctness ( cohort)

release entitlement rate slot after failed scheduled debit (review finding — )

release entitlement rate slot after failed scheduled debit (review finding — )

make periodic recovery sweeps run once per cadence across Uvicorn workers

make periodic recovery sweeps run once per cadence across Uvicorn workers

P3 activate-demo findings from

P3 activate-demo findings from

T4.5 never engages on challenge pages — gate requires _last_t3_html which challenge failures never set; Kasada V8 solver remains unwired

T4.5 never engages on challenge pages — gate requires _last_t3_html which challenge failures never set; Kasada V8 solver remains unwired

resolve apex API health routing block and align the Cloudflare probe

resolve apex API health routing block and align the Cloudflare probe

2 compatible issues —

2 compatible issues —

import the 25-message support@ backlog before enabling live inbound polling

import the 25-message support@ backlog before enabling live inbound polling

return 400 for malformed public JSON instead of 500 error storms

return 400 for malformed public JSON instead of 500 error storms

pin the audited executor blob for the approved-dispatch executor

pin the audited executor blob for the approved-dispatch executor

let crawlers fetch Next.js rendering assets in robots.txt

let crawlers fetch Next.js rendering assets in robots.txt

parseable, Free-plan-sized WAF policy — discovery-first website, locked-down API

parseable, Free-plan-sized WAF policy — discovery-first website, locked-down API

dispatch approved production actions via approved -> scheduled -> executing

dispatch approved production actions via approved -> scheduled -> executing

data policy missing 0450 tier_attempt rollup tables; test-only ORM fixture leaks into table inventory

data policy missing 0450 tier_attempt rollup tables; test-only ORM fixture leaks into table inventory

routers/ uses the fail-open org billing resolver on a request path

routers/ uses the fail-open org billing resolver on a request path

OpenAPI contract tests fail — batch search documents 409, and latest archive mismatches current contract

OpenAPI contract tests fail — batch search documents 409, and latest archive mismatches current contract

builds httpx.AsyncClient outside the egress allowlist (egress AST guard fails)

builds httpx.AsyncClient outside the egress allowlist (egress AST guard fails)

Cloudflare Worker route check gates on removed step id pre-cloud provider-status (never runs)

Cloudflare Worker route check gates on removed step id pre-cloud provider-status (never runs)

deploy-production test-api org-fence step drifted from (deploy/CI parity test fails)

deploy-production test-api org-fence step drifted from (deploy/CI parity test fails)

backup/restore/migration-safety job has unaccounted test suites

backup/restore/migration-safety job has unaccounted test suites

SDK sync check test_detect_drift_checks_actual_scrape_response_fields raises StopIteration

SDK sync check test_detect_drift_checks_actual_scrape_response_fields raises StopIteration

config/sdk_manifest.json is stale vs SDK sources

config/sdk_manifest.json is stale vs SDK sources

cloud provider rollback runner is not valid Bash — unterminated REMOTE_EOF here-doc

cloud provider rollback runner is not valid Bash — unterminated REMOTE_EOF here-doc

deposit route test 'forwards structured definitive promo validation codes without backend details' fails

deposit route test 'forwards structured definitive promo validation codes without backend details' fails

trusted-runtime bundle omits infra/monitoring/pg-compose-drift.sh (root cron install would fail)

trusted-runtime bundle omits infra/monitoring/pg-compose-drift.sh (root cron install would fail)

Web: session-binding and auth proxy route hardening

Web: session-binding and auth proxy route hardening

deploy step leaves staged index entry in production checkout (review finding — )

deploy step leaves staged index entry in production checkout (review finding — )

API: job dispatch reservation and create_job robustness

API: job dispatch reservation and create_job robustness

Web: DepositFunds and Quick Deposit UI fixes

Web: DepositFunds and Quick Deposit UI fixes

persist failed crawl spend release as a durable retry record (review finding — )

persist failed crawl spend release as a durable retry record (review finding — )

lost Stripe disputes never claw back disputed deposit credit

lost Stripe disputes never claw back disputed deposit credit

wait_for around to_thread inventory scan leaves Stripe scan thread running (review finding — )

wait_for around to_thread inventory scan leaves Stripe scan thread running (review finding — )

deployed-version verifier can report verified with a declared service down or replica on stale tag (review finding — )

deployed-version verifier can report verified with a declared service down or replica on stale tag (review finding — )

count worker-side all-store refund retry failures and alert (review finding — )

count worker-side all-store refund retry failures and alert (review finding — )

deposit fast path holds DB transaction open across Stripe retrieve (review finding — )

deposit fast path holds DB transaction open across Stripe retrieve (review finding — )

log replay identifiers needed for artifact_recharge retry records (review finding — )

log replay identifiers needed for artifact_recharge retry records (review finding — )

deployed-version verifier yields permanent UNKNOWN when checkout is ahead of running image tag (review finding — )

deployed-version verifier yields permanent UNKNOWN when checkout is ahead of running image tag (review finding — )

rl2 must not meter authenticated API traffic below entitlement — exempt well-formed keyed requests, add volumetric backstop

rl2 must not meter authenticated API traffic below entitlement — exempt well-formed keyed requests, add volumetric backstop

Worker: custom configuration cache isolation and identity pool safety

Worker: custom configuration cache isolation and identity pool safety

Data: diagnostic and attempt-outcome retention

Data: diagnostic and attempt-outcome retention

30fps frame cap removed for all FlowingParticles presets (review finding — )

30fps frame cap removed for all FlowingParticles presets (review finding — )

SDK Drift: Missing SDK response fields — Node (5 items) [sdk-drift:missing_response_fields:node]

SDK Drift: Missing SDK response fields — Node (5 items) [sdk-drift:missing_response_fields:node]

shared OpenAPI 429 body omits spend_limit_exceeded variant (review finding — )

shared OpenAPI 429 body omits spend_limit_exceeded variant (review finding — )

pre-auth hardening before relaxing edge limits on keyed traffic

pre-auth hardening before relaxing edge limits on keyed traffic

SDK Drift: Missing SDK parameters — Python (1 item) [sdk-drift:missing_params:python]

SDK Drift: Missing SDK parameters — Python (1 item) [sdk-drift:missing_params:python]

promo reclaim candidate join accepts NULL promo_reserved_by_user_id across principals (review finding — )

promo reclaim candidate join accepts NULL promo_reserved_by_user_id across principals (review finding — )

support WS client has unrecoverable terminal states (review finding — )

support WS client has unrecoverable terminal states (review finding — )

deployed-version verifier counts non-healthy container states as healthy (review finding — )

deployed-version verifier counts non-healthy container states as healthy (review finding — )

monitor-actor guard for deployed-verified is a literal denylist (review finding — )

monitor-actor guard for deployed-verified is a literal denylist (review finding — )

ememo_link_issue races across sibling memos of one incident (review finding — )

ememo_link_issue races across sibling memos of one incident (review finding — )

internal tooling claim marker never expires or is released (review finding — )

internal tooling claim marker never expires or is released (review finding — )

egress re-roll loop ends early on non-reputation status-0 attempt (review finding - )

egress re-roll loop ends early on non-reputation status-0 attempt (review finding - )

Edge: Cloudflare personalization Worker fixes

Edge: Cloudflare personalization Worker fixes

Shared: penetrator in-place hold page evidence

Shared: penetrator in-place hold page evidence