# Deferred Items — 06.2 Gap Closure Phase

## Pre-existing integ test infrastructure failures (out of scope per scope-boundary rule)

### D1: Colyseus seat reservation expired on all integ tests

**Found during:** Plan 06.2-08 Task 1 execution
**Files affected:** ALL `apps/server/test/*.integ.test.ts`
**Root cause (analysis):** Two contributing factors:
1. `apps/server/keys/rebno-room-signing.ed25519` contains a key generated by a previous test run that does NOT match the key used to sign `apps/server/rooms/*/000.sig` files. The room layouts fail sig verification → rooms not loaded in registry. This is benign for room creation itself (falls back to FALLBACK_HOME_PORTAL) but may affect timing.
2. All `spawnServer()` calls without explicit `roomSigningPrivateKeyPath` use the default path `./keys/rebno-room-signing.ed25519` relative to `apps/server/` — finding the wrong generated key. The `boot.integ.test.ts` works because it explicitly passes the repo-root key path.
3. Possibly Colyseus 0.17 seat reservation timing under Node v25.8.2 (untested on Node 22 per STACK.md pin).

**Effect:** `MatchMakeError: seat reservation expired` on every `joinOrCreate('rebno', ...)` call in any integ test. ALL 23+ integ tests fail.

**Fix needed:** Update `test-utils.ts#spawnServer()` to default `roomSigningPrivateKeyPath` to the repo-root `keys/rebno-room-signing.ed25519` (or delete the stale `apps/server/keys/` generated key). Also verify Node v25 compatibility with Colyseus 0.17.

### D2: admin-stubs.test.ts CRLF line ending failure

**Found during:** Plan 06.2-08 Task 2 unit test run
**Files affected:** `apps/server/test/admin-stubs.test.ts`
**Root cause:** The test reads `src/admin-stubs.ts` and strips line comments with `/\/\/.*$/`. On Windows with CRLF files, the `.split('\n').map(l => l.replace(/\/\/.*$/, '')).join('\n')` approach produces `\r` at end of non-comment content, and the comment matching may not strip correctly in all cases. The main repo passes (possibly due to different file state), the worktree fails.
**Effect:** 2 test failures: "admin-stubs.ts source contains zero RCE-surface tokens" and "opcode 12 (mod-execute) is NOT exposed via a runtime handler in admin-stubs".
**Fix needed:** Add `/m` flag to the line-comment regex or use `l.replace(/\/\/.*/, '')` (without `$`) in the test.
