Scope diagnostic event and method values with their owning module

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>
master
dev 5 months ago
parent bf3891ca91
commit 743db4ccc1

@ -2,21 +2,21 @@ export const LOGGER_CATEGORY = 'conn';
export const LOGGER_SCOPE_SEPARATOR = ':';
export const CONNECTION_DIAGNOSTIC_EVENTS = {
AUTH_FAILED: 'auth_failed',
BROWSER_RECONNECT: 'browser_reconnect',
CONNECT_FAILED: 'connect_failed',
FRAME_DECODE_FAILED: 'frame_decode_failed',
FRAME_ENCODE_FAILED: 'frame_encode_failed',
HEARTBEAT_TIMEOUT: 'heartbeat_timeout',
LISTENER_THREW: 'listener_threw',
REAUTH_FAILED: 'reauth_failed',
RECONNECT_EXHAUSTED: 'reconnect_exhausted',
SEND_FAILED: 'send_failed',
SESSION_CHANGED: 'session_changed',
SESSION_EXPIRED: 'session_expired',
SESSION_REFRESHED: 'session_refreshed',
SESSION_REVOKED: 'session_revoked',
TRANSPORT_ERROR: 'transport_error'
AUTH_FAILED: 'conn.auth_failed',
BROWSER_RECONNECT: 'conn.browser_reconnect',
CONNECT_FAILED: 'conn.connect_failed',
FRAME_DECODE_FAILED: 'conn.frame_decode_failed',
FRAME_ENCODE_FAILED: 'conn.frame_encode_failed',
HEARTBEAT_TIMEOUT: 'conn.heartbeat_timeout',
LISTENER_THREW: 'conn.listener_threw',
REAUTH_FAILED: 'conn.reauth_failed',
RECONNECT_EXHAUSTED: 'conn.reconnect_exhausted',
SEND_FAILED: 'conn.send_failed',
SESSION_CHANGED: 'conn.session_changed',
SESSION_EXPIRED: 'conn.session_expired',
SESSION_REFRESHED: 'conn.session_refreshed',
SESSION_REVOKED: 'conn.session_revoked',
TRANSPORT_ERROR: 'conn.transport_error'
} as const;
export const CONNECTION_STATE_IDLE = 'idle';

@ -39,9 +39,9 @@ export const PERMISSION_SNAPSHOT_GLOBAL_POLICY = 'snapshot.global';
export const PERMISSION_CLIENT_SCOPE_PREFIX = 'scope';
export const PERMISSION_CLIENT_DIAGNOSTIC_EVENTS = {
REMOTE_BATCH_FAILED: 'remote_batch_failed',
REMOTE_CHECK_FAILED: 'remote_check_failed',
REMOTE_WHAT_FAILED: 'remote_what_failed'
REMOTE_BATCH_FAILED: 'perm.client.remote_batch_failed',
REMOTE_CHECK_FAILED: 'perm.client.remote_check_failed',
REMOTE_WHAT_FAILED: 'perm.client.remote_what_failed'
} as const;
// Method labels used by `ensureLive(method)` for error messages. They are

@ -2,21 +2,21 @@
export const LOGGER_CATEGORY = 'sess';
export const SESSION_DIAGNOSTIC_EVENTS = {
ADOPT_SERVER_INVALID: 'adopt_server_invalid',
DISPOSED_ACCESS: 'disposed_access',
LISTENER_THREW: 'listener_threw',
REFRESH_ACTOR_SCHEMA_FAILED: 'refresh_actor_schema_failed',
REFRESH_CREDENTIAL_SCHEMA_FAILED: 'refresh_credential_schema_failed',
REFRESH_DATA_SCHEMA_FAILED: 'refresh_data_schema_failed',
REFRESH_INVARIANT_VIOLATED: 'refresh_invariant_violated',
REFRESH_TRANSIENT_FAILURE: 'refresh_transient_failure',
REFRESH_USER_SCHEMA_FAILED: 'refresh_user_schema_failed',
REVOKE_GLOBAL_HANDLER_FAILED: 'revoke_global_handler_failed',
REVOKE_GLOBAL_NO_HANDLER: 'revoke_global_no_handler',
REVOKE_GLOBAL_SERVER_REJECTED: 'revoke_global_server_rejected',
STORAGE_ADAPTER_NO_ONCHANGE: 'storage_adapter_no_onchange',
STORAGE_PARSE_FAILED: 'storage_parse_failed',
STORAGE_PERSIST_FAILED: 'storage_persist_failed'
ADOPT_SERVER_INVALID: 'sess.adopt_server_invalid',
DISPOSED_ACCESS: 'sess.disposed_access',
LISTENER_THREW: 'sess.listener_threw',
REFRESH_ACTOR_SCHEMA_FAILED: 'sess.refresh_actor_schema_failed',
REFRESH_CREDENTIAL_SCHEMA_FAILED: 'sess.refresh_credential_schema_failed',
REFRESH_DATA_SCHEMA_FAILED: 'sess.refresh_data_schema_failed',
REFRESH_INVARIANT_VIOLATED: 'sess.refresh_invariant_violated',
REFRESH_TRANSIENT_FAILURE: 'sess.refresh_transient_failure',
REFRESH_USER_SCHEMA_FAILED: 'sess.refresh_user_schema_failed',
REVOKE_GLOBAL_HANDLER_FAILED: 'sess.revoke_global_handler_failed',
REVOKE_GLOBAL_NO_HANDLER: 'sess.revoke_global_no_handler',
REVOKE_GLOBAL_SERVER_REJECTED: 'sess.revoke_global_server_rejected',
STORAGE_ADAPTER_NO_ONCHANGE: 'sess.storage_adapter_no_onchange',
STORAGE_PARSE_FAILED: 'sess.storage_parse_failed',
STORAGE_PERSIST_FAILED: 'sess.storage_persist_failed'
} as const;
/** Default `BroadcastChannel` name when not overridden. */

@ -12,9 +12,9 @@
export const LOGGER_CATEGORY = 'timr';
export const TIMER_DIAGNOSTIC_EVENTS = {
LISTENER_THREW: 'listener_threw',
SCHEDULE_AT_PAST: 'schedule_at_past',
TASK_FAILED: 'task_failed'
LISTENER_THREW: 'timr.listener_threw',
SCHEDULE_AT_PAST: 'timr.schedule_at_past',
TASK_FAILED: 'timr.task_failed'
} as const;
// ── Timer status ───────────────────────────────────────────────────────────

@ -1,9 +1,9 @@
export { PERMISSION_LOGGER_CATEGORY as LOGGER_CATEGORY } from '$libs/svrs/perm';
export const PERMISSION_DIAGNOSTIC_EVENTS = {
DECISION: 'decision',
DENIED: 'denied',
INDETERMINATE: 'indeterminate'
DECISION: 'perm.server.decision',
DENIED: 'perm.server.denied',
INDETERMINATE: 'perm.server.indeterminate'
} as const;
export const PERMISSION_LOG_MSG_DECISION = 'authorization decision';
@ -16,13 +16,13 @@ export const PERMISSION_ERROR_MSG_DISPOSED_SUFFIX = '() called on a disposed per
export const PERMISSION_ERROR_NAME_INVALID_BODY = 'PermInvalidBodyError';
export const PERMISSION_ERROR_NAME_DISPOSED = 'PermDisposedError';
export const PERMISSION_METHOD_CHECK = 'check';
export const PERMISSION_METHOD_CAN = 'can';
export const PERMISSION_METHOD_ASSERT = 'assert';
export const PERMISSION_METHOD_EXPLAIN = 'explain';
export const PERMISSION_METHOD_WHAT = 'what';
export const PERMISSION_METHOD_WHO = 'who';
export const PERMISSION_METHOD_FILTER = 'filter';
export const PERMISSION_METHOD_CHECK = 'perm.check';
export const PERMISSION_METHOD_CAN = 'perm.can';
export const PERMISSION_METHOD_ASSERT = 'perm.assert';
export const PERMISSION_METHOD_EXPLAIN = 'perm.explain';
export const PERMISSION_METHOD_WHAT = 'perm.what';
export const PERMISSION_METHOD_WHO = 'perm.who';
export const PERMISSION_METHOD_FILTER = 'perm.filter';
export const PERMISSION_DB_TABLES = {
POLICIES: 'permission_policies',

Loading…
Cancel
Save

Powered by TurnKey Linux.