Skip to content

feat(dataplane): ADR 0016 Phase B — HTTP risk classify + park stub - #1391

Closed
danielsmithdevelopment wants to merge 22 commits into
cursor/rust-dataplane-phase0a-a621from
cursor/rust-dataplane-phase0b-a621
Closed

danielsmithdevelopment wants to merge 22 commits into
cursor/rust-dataplane-phase0a-a621from
cursor/rust-dataplane-phase0b-a621

Conversation

@danielsmithdevelopment

@danielsmithdevelopment danielsmithdevelopment commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

Starts Phase B of ADR 0016 on top of Phase A (#1388), with the Bun JSON _streamMapping climb fix (#1390) merged in.

Post-prune week-1 remasure (done)

CF_DP_REPS=1 ITERS=5000 — WEEK1-POST-PRUNE.md

Arm call p999 sess p999 Memory
Bun tip + prune 4.86 ms 31.3 ms ~235 MB plateau (climbing=false)
Rust dataplane 4.89 ms 23.0 ms ~15.3 MB

Pre-prune Bun climbed 200→3444 MB. Climb gone. Memory gap vs tip Bun ≈ 15×. Lean-confirm ~244 MB (≠ Oct-15 130).

Phase B code

  • risk.rs — HTTP allow / mandate / block
  • CLAWQL_DATAPLANE_GOVERNANCE=1 — park stub for writes without mandate
  • Re-exported injection-drills (merge gap that broke CI tsc)

Next

  • Mandate Postgres consume + IFC + WORM
  • Differential suite vs TypeScript
  • Optional full 3×10k remasure
Open in Web Open in Cursor 

cursoragent and others added 22 commits October 22, 2026 05:02
Link-header ruleset jq crashed on null rules and exited the script
(set -e) before DNS-AID / Pages custom-domain ran — leaving apex on
bare GitHub Pages so /mcp and Accept:markdown never applied.

Null-safe jq for transform rules; keep Link failures non-fatal; always
attempt Pages domain attach; add post-edge /mcp verify warning.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Make orange-cloud probe failures easier to diagnose when Pages domain
attach still leaves clawql.com on GitHub Pages.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Pages discovery MCP returns 200 JSON on GET and 405 on HEAD, so the
post-edge curl -I check produced false warnings even when healthy.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
…-edge-pages-domain-e103

fix(deploy): finish agent-edge before Pages domain attach
Post-#1387 attach of clawql.com to Pages succeeded, but Zone DNS Edit
was missing on CLOUDFLARE_API_TOKEN, so apex stayed on GitHub Pages A
records. Make pages-domain exit 1 with a clear token/manual DNS message,
null-safe DNS-AID jq, and document the required DNS Edit scope.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
…-edge-dns-perms-e103

fix(deploy): fail agent-edge when Pages DNS CNAME cannot be created
MCP SDK JSON-response mode never cleans `_streamMapping` after resolveJson,
so sessionful multiturn retained one entry per POST and Anonymous climbed
(~200→~3444 MB on the week-1 board). Restore orphan prune after each POST,
close stateless transports, default 30m idle eviction + max live sessions,
and clear IFC labels on session end. Export governance from clawql-api so
native-tool wrap resolves.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Tip lean probe and week-1 board no longer match the published plateau.
Label Anon MB figures as measured on the October 15 build until remasured
after the host memory climb fix.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Short sustained known-op run fails if Anonymous climbs past a slope limit
or hard ceiling, so the next streamMapping-style leak fails at merge time.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Root package.json briefly gained viem from a local payments rebuild and
desynced package-lock, failing npm ci on every job. Remove it and format
the version-scoped docs that Prettier flagged.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Bun CI lacks node:sqlite/`sqlite`, so default CLAWQL_SECRET_STORE=sqlite
killed host startup. Point the gate at memory secret + auth-audit stores.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Expose stream map sizes on /healthz when CLAWQL_BENCH_STATS=1 and add a
~300-POST regression that fails if the host orphan prune disappears.
Document the private-field workaround against typescript-sdk#2559.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Exact pin until a published v1.x release includes the JSON-mode
_streamMapping cleanup (typescript-sdk#2559 / #2747). Re-run the bound
regression test on any SDK bump.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Schedule a full 30k Anonymous slope gate (PR stays at 2k). Document that
the Oct 12 prune never reached main, link upstream #2559/#2747, and keep
the Oct 15 lean floor (~130→170–260 MB) as a separate bisect item.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
…1' into cursor/rust-dataplane-phase0b-a621

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
CI showed prune holding ~450 MB flat after cold start, but slope from the
first sample and a 450 MB hard cap still failed. Baseline after 20% warmup
and raise the default ceiling so the gate catches real climbs, not tip lean.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Opt-in CLAWQL_DATAPLANE_GOVERNANCE=1 mirrors TypeScript HTTP defaults
(allow GET, mandate writes, block DELETE). Parks mandate ops without a
token; mandate Postgres consume and IFC/WORM follow in later slices.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
…y-cli)

Phase0b merge dropped `export * from "./security/injection-drills.js"`,
breaking `tsc` / memory-plateau host build on CI.

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
1×5k CF known-op after host _streamMapping prune: Bun median plateau
~235 MB (climbing=false), Rust ~15 MB; per-call p999 ~4.9 ms both.
Raise lean-confirm default max to tip band (350 MB).

Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
Co-authored-by: Daniel Smith <danielsmithdevelopment@gmail.com>
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.

2 participants