design-edge-rate-limit-358
Human
Design for #358: a per-client limit at the edge that only bites when an instance is busy (fair share by concurrency, heaviest clients shed first), plus a high always-on backstop. Settings live on the instance record like the password gate, with path-prefix exceptions such as /api/, and an optional plan ceiling where a catalog is loaded. Spec: docs/superpowers/specs/2026-10-24-edge-rate-limit-design.md. Status: draft, builder check by Astra running, then Paul's read.
Commits
34
Files changed
65
+7354 −55
Discussions
1
1 open
Tasks
18/18
done
Discussions 1 open
Tasks 18/18 done
- Draft the design (spec) Done
- Builder check by Astra Done
- Paul's questions answered and folded in Done
- Paul approves the design Done
- Write the implementation plan Done
Activity
- task updated: Final whole-branch review (Astra)
- claude agent, operated by paul@keymail.dev pushed 360c3815c census: re-seal after the final fix wave (#358)
- claude agent, operated by paul@keymail.dev pushed 6526925fd edge test: the stream-life backhaul test signals once and reads the end (#358)
- claude agent, operated by paul@keymail.dev pushed a4a4897a2 carlos ratelimit set: read settings from the record, not the counts (#358)
- claude agent, operated by paul@keymail.dev pushed 7af07df49 usage, edge: a host's new owner starts its refusal counts afresh (#358)
- claude agent, operated by paul@keymail.dev pushed 53ad87cd9 plans, ratelimit: a sponsorship or ceiling never tightens the backstop (#358)
- claude agent, operated by paul@keymail.dev pushed 771d97272 ratelimit: key limiter state by the rule's prefix, not its index (#358)
- claude agent, operated by paul@keymail.dev pushed 74021ca05 edge: an upgrade holds its slot until the handshake is answered (#358)
- claude agent, operated by paul@keymail.dev opened Rate limit: refusals at the sending edge's backhaul queue are not in owners' counts
- claude agent, operated by paul@keymail.dev pushed b20d8be48 Merge origin/main into design-edge-rate-limit-358; census re-sealed onto main (#358)
- task updated: T11 operator docs
- claude agent, operated by paul@keymail.dev pushed 1bdc79d67 docs: rate-limits page states the backstop's exception (#358)
- claude agent, operated by paul@keymail.dev pushed 5e12a3ee9 carlos ratelimit: show prints the plan ceiling; help lists the verb (#358)
- claude agent, operated by paul@keymail.dev pushed 21dc5a182 docs: rate limits per instance, modes and plan ceilings (#358)
- claude agent, operated by paul@keymail.dev pushed 38dc29f9e census: overlay and record-write entries for design-edge-rate-limit-358 (#358)
- task updated: T10 console settings fields
- claude agent, operated by paul@keymail.dev pushed db38f976d console: rate limit page shows path rules in full, neutral test names (#358)
- claude agent, operated by paul@keymail.dev pushed 8f7cd322a console: rate limit fields on the instance settings page (#358)
- task updated: T9 carlos ratelimit verb
- claude agent, operated by paul@keymail.dev pushed 45fa41dac carlos ratelimit: fan-out truncation, path zero resets, approved -h (#358)
- claude agent, operated by paul@keymail.dev pushed a19399ce7 console: keep the reviewed "nothing to update" sentence byte for byte (#358)
- claude agent, operated by paul@keymail.dev pushed d9b13590e carlos ratelimit: show, set and clear per-instance rate limits (#358)
- task updated: T8 console doors
- claude agent, operated by paul@keymail.dev pushed f8545e2d6 console: rate-limit counts fail on an unreadable day object, not a short total (#358)
- claude agent, operated by paul@keymail.dev pushed 249d942d1 console: rate_limit on the instance PATCH, plan-ceiling refusal, rate-limit GET (#358)
- task updated: T7 backhaul fair share
- claude agent, operated by paul@keymail.dev pushed 3eb9a3e69 edge: fair share over backhaul slots so one client cannot fill a box's hop (#358)
- task updated: T6 door mark survives a hop
- claude agent, operated by paul@keymail.dev pushed b3c1ff2c3 edge: delete the hop door header from every request, read one value only (#358)
- claude agent, operated by paul@keymail.dev pushed 00c19fae0 edge: carry the door mark across a signed hop so door callers stay unlimited (#358)