audit-1-5.md section 2: 46 values were emitted as bare strings
(`'auth_failed'`, `'listener_threw'`, `'check'`) and collided across
artifacts in any aggregated log stream. Each value now carries its
module prefix so the type is self-describing in isolation and never
clashes with another emitter.
- arts/conn/consts.ts (CONNECTION_DIAGNOSTIC_EVENTS) — 15 values → conn.*
- arts/sess/consts.ts (SESSION_DIAGNOSTIC_EVENTS) — 15 values → sess.*
- arts/perm/consts.ts (PERMISSION_CLIENT_DIAGNOSTIC_EVENTS) — 3 → perm.client.*
- svrs/perm/consts.ts (PERMISSION_DIAGNOSTIC_EVENTS) — 3 → perm.server.*
- svrs/perm/consts.ts (PERMISSION_METHOD_*) — 7 → perm.* (aligns with
the client-side counterpart in arts/perm/consts.ts which already used
this scoping)
- libs/timers/consts.ts (TIMER_DIAGNOSTIC_EVENTS) — 3 values → timr.*
The rule was already documented in arts/perm/consts.ts ("scoped with
the artifact prefix `perm.` so that aggregated diagnostic streams do
not collide"); these six files were the modules that hadn't been
brought into compliance.
Real collisions resolved today: `'listener_threw'` (3 emitters: conn
+ sess + timr), `'session_revoked'` and `'session_expired'` (conn
bridge + sess lifecycle).
Consumers reference the constants by symbol (`CONNECTION_DIAGNOSTIC_EVENTS.AUTH_FAILED`,
not `'auth_failed'`), so this is a transparent rename. svelte-check
1395/0 errors; server 1230 tests; client 19 tests — all green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>