SkateSpots/cvm-server
SkateSpots 3a32dc2334 feat(cvm-server): load protection + type-check it in the gate
Load protection (public read-only endpoint — protects relays + this box):
- Per-pubkey sliding-window throttle and in-flight cap via inbound middleware.
  The transport can't return a JSON-RPC error, so over-budget callers are dropped
  and time out (logged).
- Global semaphore caps concurrent upstream relay queries.
- Short-TTL cache keyed by filter set, so repeated identical queries (e.g. a
  burst of get_community_stats) don't re-hit the relays.
- All tunable via CVM_RATE_* / CVM_MAX_* / CVM_QUERY_CACHE_MS (documented in
  .env.example); maps pruned by a janitor.

CI:
- cvm-server/tsconfig.json type-checks the standalone server; new
  typecheck:cvm / check:cvm scripts, with typecheck:cvm wired into npm test so
  the server can't rot unnoticed (it was excluded from tsc + eslint).
2026-09-27 11:36:20 +07:00
..
.env.example feat(cvm-server): load protection + type-check it in the gate 2026-09-27 11:36:20 +07:00
bootstrap.sh feat: add SkateSpots CVM server — MCP tools over Nostr 2026-06-16 17:45:04 +07:00
DEPLOY.md Fix CVM relay URL: relay.contextvm.net → relay.contextvm.org 2026-06-18 11:13:51 +07:00
package.cvm.json feat: add SkateSpots CVM server — MCP tools over Nostr 2026-06-16 17:45:04 +07:00
server.ts feat(cvm-server): load protection + type-check it in the gate 2026-09-27 11:36:20 +07:00
skatespots-cvm.service feat: add SkateSpots CVM server — MCP tools over Nostr 2026-06-16 17:45:04 +07:00
tsconfig.json feat(cvm-server): load protection + type-check it in the gate 2026-09-27 11:36:20 +07:00