fix(unified-session): resolve circular dependency with TimeMs

The import of TimeMs from Defaults/index.ts caused a circular
dependency error in ESM:
"ReferenceError: Cannot access 'TimeMs' before initialization"

Solution: Define TimeMs constants locally in unified-session.ts
instead of importing from Defaults. This avoids the ESM module
initialization order issue.
This commit is contained in:
Claude
2026-01-24 20:42:32 +00:00
parent 6f9fd27321
commit 7cb1df6d95
2 changed files with 25 additions and 6 deletions
+16 -5
View File
@@ -27,11 +27,22 @@ import {
// Time Constants (Enterprise-grade) // Time Constants (Enterprise-grade)
// ============================================ // ============================================
// Import TimeMs from Defaults (single source of truth) /**
import { TimeMs } from '../Defaults/index.js' * Time constants in milliseconds for unified session calculations.
* Defined locally to avoid circular dependency issues with Defaults/index.ts
// Re-export for convenience (but not as main export to avoid conflicts) */
export { TimeMs } const TimeMs = {
/** One second in milliseconds */
Second: 1_000,
/** One minute in milliseconds */
Minute: 60_000,
/** One hour in milliseconds */
Hour: 3_600_000,
/** One day in milliseconds */
Day: 86_400_000,
/** One week in milliseconds */
Week: 604_800_000,
} as const
/** /**
* Offset for session ID calculation (3 days in ms). * Offset for session ID calculation (3 days in ms).
+9 -1
View File
@@ -14,7 +14,15 @@ import {
shouldEnableUnifiedSession, shouldEnableUnifiedSession,
type UnifiedSessionOptions type UnifiedSessionOptions
} from '../../Utils/unified-session.js' } from '../../Utils/unified-session.js'
import { TimeMs } from '../../Defaults/index.js'
// TimeMs constants for testing (matching unified-session.ts)
const TimeMs = {
Second: 1_000,
Minute: 60_000,
Hour: 3_600_000,
Day: 86_400_000,
Week: 604_800_000,
} as const
// Mock the prometheus metrics to avoid side effects // Mock the prometheus metrics to avoid side effects
jest.mock('../../Utils/prometheus-metrics.js', () => ({ jest.mock('../../Utils/prometheus-metrics.js', () => ({