Release notes: httpd M3 optional (m3-optional)¶
Branch: cursor/httpd-plan-continue
Summary¶
M3 optional agent-gateway hooks: RFC for L4 TCP stream proxy and x-token-budget ingress cap, config validate/flatten, runtime oracles, and 429 reject when declared budget exceeds schema cap.
Agent deliverable¶
- Branch pushed and PR opened (not draft)
- CI triggered on PR
- Tests added / updated —
li-tests/httpd/m3_optional_oracle.li,li-tests/config_desugar/good|reject/m3_*.toml,scripts/check-httpd-m3-config.sh,scripts/test-m3-token-budget-runtime.sh - Bench evidence — deferred (
stream_tcptier5 needs on-wire L4 relay) - Release notes — this file
Changed¶
docs/superpowers/specs/2026-05-22-li-httpd-m3-l4-token-budget.md— L4 + token-budget RFCscripts/httpd_m3.py,scripts/check-httpd-m3-config.sh,scripts/httpd-plan-gates.shli-tests/config_desugar/good/m3_optional.toml,reject/m3_*.toml(incl. SSRF reject for loopback upstream)li-tests/httpd/m3_optional_oracle.liruntime/li_rt_httpd.c,runtime/li_rt.h,runtime/li_rt_net.c— M3 parse + token-budget 429 hook; TLS HTTP/1.1 recv/send via SSL (fixes m2-tls-h2-runtime smoke)packages/li-net-httpd/examples/m3_token_budget.toml,scripts/test-m3-token-budget-runtime.sh— live 429 smokescripts/httpd_config.py,scripts/flatten-httpd-config.pydocs/superpowers/plans/2026-05-16-li-httpd-plan.md—m3-optional→completed
Not changed¶
- L4 byte relay (
spliceloop) on wire — M3.1 after async reactor - Live GitHub Pages bench refresh (
SKIP_BENCH=1)