From ae74f570dc764b633e76d24c06c4c3aa8b3e74b4 Mon Sep 17 00:00:00 2001 From: VinPropane Date: Thu, 30 Apr 2026 21:33:08 -0400 Subject: [PATCH] NEO-32: manual QA step 3 without server console logging --- docs/manual-qa/NEO-32.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual-qa/NEO-32.md b/docs/manual-qa/NEO-32.md index 202c66f..2e0c601 100644 --- a/docs/manual-qa/NEO-32.md +++ b/docs/manual-qa/NEO-32.md @@ -6,6 +6,6 @@ Prereq: game server running (`NeonSprawl.Server`), client pointed at same `base_ 2. **Server deny on spam** — Immediately double-tap cast during cooling (or remove client guard temporarily): second attempt should show `ability_cast_denied: on_cooldown` (server) on the cast feedback line when POST completes. -3. **Client guard** — While slot 0 shows cooling, press `1` rapidly; expect `(client guard)` line without flooding the server (optional: watch server logs / Bruno). +3. **Client guard** — While slot 0 shows cooling, press `1` repeatedly. Expect **`ability_cast_denied: on_cooldown (client guard)`** on **`CastFeedbackLabel`** on most presses (local mirror blocks the POST). No server console logging required. **Optional proof the server still enforces cooldown:** in Bruno (or `curl`), send **`POST …/ability-cast`** twice in a row with the same valid body while the snapshot still shows slot 0 cooling — second response **`accepted": false`**, **`reasonCode": "on_cooldown"`** (same contract as step 2). 4. **Reconnect / rehydrate** — With slot 0 mid-cooldown, restart the client (or reload scene) while server keeps running; after boot expect cooldown line to match server within one GET cycle (same dev player id).