 John SmithandClaude
|
b7bb40b160
|
feat(gateway): durability-bridge auth + header-first tokens on legacy routes (iteration 8)
persist/hydrate require auth with x-card-style participation gating
(gm/admin any session, others via bound lobby roster, unbound fail closed).
All remaining token:Query routes migrated to _require_auth (Bearer preferred);
EnginePersistRequest.owner_user_id spoofing removed — ownership from verified
token. Sweep documented remaining unauthenticated LLM-spend/agent routes for a
coordinated follow-up. 11 new tests red-first; pytest 618 passed / 22 skipped.
Co-Authored-By: Claude <[email protected]>
|
2026-08-24 19:26:51 -04:00 |
|
 John SmithandClaude
|
18239bf7b5
|
feat(wave15): zero-trust hardening, real WFC, write-through Postgres, RBAC, Yjs default
Phase 1-5 remediation + four-gap closure:
- Authoritative engine: ids-only combat payloads (deny_unknown_fields),
server-side stat blocks, ActionBudget consumption, cover->AC, LoS gating,
difficult-terrain Dijkstra, HMAC auth middleware + strict CORS
- Honest metrics: live-engine synthetic playtest with trust-boundary probes,
MCR = valid/(valid+rejected), benchmark script boots its own engine
- Mechanics: condition lifecycle timers, spell slot economy w/ damage caps,
topological ModifierSource graph, reaction stack (Shield/Counterspell/OA),
X-card full ledger replay restoration
- Persistence: sqlx write-through tailer to event_sourcing_log,
snapshot persist/hydrate bridge, recursive CTE inventory functions
- vtt-wfc: dead solver activated (reseed-retry contradictions, flood-fill
single-region guarantee, deterministic dressing); fixed template removed
- RBAC: role claims in gateway tokens, identity propagation, entity
ownership, spectator/owner enforcement, fog layer ownership at WS
- Client: PixiJS v8 board layer, physics dice with server-predetermined
faces, Silero VAD, HRTF PannerNode chain, Y.Doc CRDT default transport
with HMAC-authenticated ysync relay and LWW fallback
Co-Authored-By: Claude <[email protected]>
|
2026-08-23 22:41:53 -04:00 |
|
 John SmithandClaude
|
ce03c0fae0
|
feat(wave10): real multiplayer backbone — WebSocket CRDT relay, live presence & server-backed auth
- vtt-server: activate the dormant CrdtRelayHub with a live PeerRegistry and
actix-ws endpoint /ws/sessions/{id}/sync (root + /api/v1 alias). Token moves
pass LWW vector-clock arbitration before fan-out; stale transforms are
suppressed. GET /rooms/{id}/presence reports connected peers.
- client: VttCrdtSyncClient gains remote-update listeners, exponential
backoff reconnect, solo-safe no-ops; App.tsx instantiates it, broadcasts
token drags, applies peer updates; LobbyView polls live relay presence
- orchestrator: /api/v1/auth/{signup,login,session} — PBKDF2-salted password
hashes, HMAC-signed 12h tokens (AUTH_SECRET env), default GM seed account;
AuthModal uses the server with demo-account fallback offline
- tests: +5 auth suite; all suites green (46 pytest engine-up, cargo clean,
client ~1s build, MCR 100% / HCI 1.0)
Co-Authored-By: Claude <[email protected]>
|
2026-08-23 01:23:15 -04:00 |
|