writeonce/docs/examples
shoney.arickathil 491c2f42b4 feat(porch-store): limiter delegates all counting to the key pool
- delete all RateLimitCounter access from limiter.wo: query, increment,
  delete-then-insert, and the swallowing catch (e) nil -- the pool is now
  the only writer, so its serialization guarantee actually holds
- Limiter gains pool/limit/trust_proxy fields; before() calls pool_count
  and acts on the Verdict; make_limiter takes a pool
- key selection: req.principal first, else trust_proxy ? client_ip(req)
  : net.peer(req.conn); delete the dead req.ctx["verified_proxy"] branch
- 429 on a spent window (Retry-After, X-RateLimit-*); 503 + Retry-After
  on a caught actor trap (saturated pool), request never let through
- add Limiter.after(), registered alongside before() as both Mw and Aw
  (Cors's own shape) so the allowed path's X-RateLimit-* headers reach
  the response, not just req.ctx
- scripts/web-app-accept.sh: three new gate legs -- threshold (N pass,
  N+1th 429), SIGTERM+restart (still limited from the WAL), and N
  genuinely-parallel curl clients on one key with an exact-count assertion

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit a653dd0aa64711c43461126d32b4632cc8f64c7a)
2026-09-15 01:15:30 +02:00
..
chat docs(24): T10 closeout — stories done, board, graph, ledger, CODE-LOGIC 2026-08-28 00:06:31 +02:00
db-actor docs(24): T10 closeout — stories done, board, graph, ledger, CODE-LOGIC 2026-08-28 00:06:31 +02:00
db-bench feat(db2-keys): gate the residency measurement, close out task 7 2026-08-30 20:38:03 +02:00
employee docs: audit all markdown against the code, fix findings, flatten status folders 2026-08-26 19:20:22 +02:00
employee-list docs(databasev2): third track — the database beyond RAM, with per-table storage modes 2026-08-26 20:52:48 +02:00
fibers feat(lang+wo-html): raw text literals, component layer, MVC samples 2026-08-25 03:58:41 +02:00
gc-cycle docs: audit all markdown against the code, fix findings, flatten status folders 2026-08-26 19:20:22 +02:00
log-watcher docs: audit all markdown against the code, fix findings, flatten status folders 2026-08-26 19:20:22 +02:00
operators feat: iteration 36 task 5 — operators sample, docs closeout 2026-08-22 21:42:08 +02:00
porch feat(porch-store): limiter delegates all counting to the key pool 2026-09-15 01:15:30 +02:00
residency feat(db2-delta): lift the resident:keys refusal, prove it end to end 2026-08-30 20:37:49 +02:00
residency-bench feat(db2-keys): gate the residency measurement, close out task 7 2026-08-30 20:38:03 +02:00
shop refactor(porch): name the web framework porch, fix the wo.toml identifier claim 2026-08-26 19:36:34 +02:00
site@81ef9b9ca0 refactor(site-submodule): docs/examples/site becomes a submodule 2026-08-30 22:02:55 +02:00
skill-catalog feat(query-corpus): iteration 9g corpus #1 — skillhost needs no new query grammar 2026-09-15 01:15:30 +02:00
subprocess feat(lang42): subprocess example + gate 2026-09-01 22:19:25 +02:00
web-app refactor(porch): name the web framework porch, fix the wo.toml identifier claim 2026-08-26 19:36:34 +02:00
writeonce-view feat(serve+view): file serving, downloads, supported systems; rename 2026-08-25 04:41:00 +02:00