design-edge-rate-limit-358
apimode.go
+85 −0
apimode.goLoading diff…
docs/site/cli.md
+30 −0
docs/site/cli.mdLoading diff…
docs/site/nav.json
+5 −0
docs/site/nav.jsonLoading diff…
docs/site/plans.md
+4 −0
docs/site/plans.mdLoading diff…
docs/site/rate-limits.md
+57 −0
docs/site/rate-limits.mdLoading diff…
docs/superpowers/notes/census-proposal-design-edge-rate-limit-358.md
+48 −0
docs/superpowers/notes/census-proposal-design-edge-rate-limit-358.mdLoading diff…
docs/superpowers/plans/2026-10-24-edge-rate-limit.md
+427 −0
docs/superpowers/plans/2026-10-24-edge-rate-limit.mdLoading diff…
docs/superpowers/specs/2026-10-24-edge-rate-limit-design.md
+376 −0
docs/superpowers/specs/2026-10-24-edge-rate-limit-design.mdLoading diff…
docs/superpowers/specs/CODEX-FINDINGS-EDGE-RATE-LIMIT-builder-check.md
+16 −0
docs/superpowers/specs/CODEX-FINDINGS-EDGE-RATE-LIMIT-builder-check.mdLoading diff…
instances_cli.go
+5 −1
instances_cli.goLoading diff…
internal/console/apiinstances.go
+32 −1
internal/console/apiinstances.goLoading diff…
internal/console/apiinstances_ratelimit.go
+235 −0
internal/console/apiinstances_ratelimit.goLoading diff…
internal/console/apiinstances_ratelimit_test.go
+385 −0
internal/console/apiinstances_ratelimit_test.goLoading diff…
internal/console/appsettings.go
+163 −1
internal/console/appsettings.goLoading diff…
internal/console/appsettings_ratelimit_test.go
+235 −0
internal/console/appsettings_ratelimit_test.goLoading diff…
internal/console/authcli.go
+3 −0
internal/console/authcli.goLoading diff…
internal/console/claim_invariant_fixtures_test.go
+11 −0
internal/console/claim_invariant_fixtures_test.goLoading diff…
internal/console/claim_invariant_probes_read_test.go
+2 −0
internal/console/claim_invariant_probes_read_test.goLoading diff…
internal/console/ratelimit_copy.go
+16 −0
internal/console/ratelimit_copy.goLoading diff…
internal/console/server.go
+2 −0
internal/console/server.goLoading diff…
internal/console/svcroutes_test.go
+5 −0
internal/console/svcroutes_test.goLoading diff…
internal/console/templates/app_settings.html
+42 −0
internal/console/templates/app_settings.htmlLoading diff…
internal/console/testdata/claim-routes.txt
+2 −0
internal/console/testdata/claim-routes.txtLoading diff…
internal/edge/backhaul_share_test.go
+268 −0
internal/edge/backhaul_share_test.goLoading diff…
internal/edge/door.go
+4 −2
internal/edge/door.goLoading diff…
internal/edge/edge.go
+167 −26
internal/edge/edge.goLoading diff…
internal/edge/homemap.go
+33 −5
internal/edge/homemap.goLoading diff…
internal/edge/homemap_test.go
+12 −3
internal/edge/homemap_test.goLoading diff…
internal/edge/hopdoor_test.go
+224 −0
internal/edge/hopdoor_test.goLoading diff…
internal/edge/mesh.go
+36 −3
internal/edge/mesh.goLoading diff…
internal/edge/ratelimit.go
+243 −0
internal/edge/ratelimit.goLoading diff…
internal/edge/ratelimit_test.go
+854 −0
internal/edge/ratelimit_test.goLoading diff…
internal/edge/usagemeter.go
+22 −2
internal/edge/usagemeter.goLoading diff…
internal/edge/usagemeter_test.go
+21 −0
internal/edge/usagemeter_test.goLoading diff…
internal/host/agent.go
+4 −0
internal/host/agent.goLoading diff…
internal/host/plans_pass.go
+12 −0
internal/host/plans_pass.goLoading diff…
internal/host/plans_pass_ratelimit_test.go
+29 −0
internal/host/plans_pass_ratelimit_test.goLoading diff…
internal/plans/catalog.go
+63 −1
internal/plans/catalog.goLoading diff…
internal/plans/catalog_ratelimit_test.go
+185 −0
internal/plans/catalog_ratelimit_test.goLoading diff…
internal/provision/edge_rate_limit_census_test.go
+73 −0
internal/provision/edge_rate_limit_census_test.goLoading diff…
internal/provision/plan9_b8_census_test.go
+1 −1
internal/provision/plan9_b8_census_test.goLoading diff…
internal/provision/provision.go
+25 −0
internal/provision/provision.goLoading diff…
internal/provision/ratelimit_record_test.go
+93 −0
internal/provision/ratelimit_record_test.goLoading diff…
internal/provision/reconcile.go
+19 −0
internal/provision/reconcile.goLoading diff…
internal/provision/reconcile_ratelimit_test.go
+136 −0
internal/provision/reconcile_ratelimit_test.goLoading diff…
internal/provision/testdata/plan14-root-reads-chain.tsv
+2 −0
internal/provision/testdata/plan14-root-reads-chain.tsvLoading diff…
internal/provision/testdata/plan14-root-reads-design-edge-rate-limit-358-decisions.tsv
+23 −0
internal/provision/testdata/plan14-root-reads-design-edge-rate-limit-358-decisions.tsvLoading diff…
internal/provision/testdata/plan14-root-reads-design-edge-rate-limit-358.tsv
+29 −0
internal/provision/testdata/plan14-root-reads-design-edge-rate-limit-358.tsvLoading diff…
internal/ratelimit/clientkey.go
+25 −0
internal/ratelimit/clientkey.goLoading diff…
internal/ratelimit/clientkey_test.go
+27 −0
internal/ratelimit/clientkey_test.goLoading diff…
internal/ratelimit/limiter.go
+273 −0
internal/ratelimit/limiter.goLoading diff…
internal/ratelimit/limiter_test.go
+468 −0
internal/ratelimit/limiter_test.goLoading diff…
internal/ratelimit/settings.go
+221 −0
internal/ratelimit/settings.goLoading diff…
internal/ratelimit/settings_test.go
+195 −0
internal/ratelimit/settings_test.goLoading diff…
internal/ratelimit/shares.go
+71 −0
internal/ratelimit/shares.goLoading diff…
internal/ratelimit/shares_test.go
+104 −0
internal/ratelimit/shares_test.goLoading diff…
internal/registry/ratelimit_column_test.go
+122 −0
internal/registry/ratelimit_column_test.goLoading diff…
internal/registry/ratelimit_fingerprint_test.go
+37 −0
internal/registry/ratelimit_fingerprint_test.goLoading diff…
internal/registry/registry.go
+52 −7
internal/registry/registry.goLoading diff…
internal/registry/remote_dispatch.go
+3 −0
internal/registry/remote_dispatch.goLoading diff…
internal/usage/edge.go
+29 −2
internal/usage/edge.goLoading diff…
internal/usage/edge_ratelimit_test.go
+66 −0
internal/usage/edge_ratelimit_test.goLoading diff…
main.go
+3 −0
main.goLoading diff…
ratelimit_cli.go
+479 −0
ratelimit_cli.goLoading diff…
ratelimit_cli_test.go
+415 −0
ratelimit_cli_test.goLoading diff…