diff --git a/packages/imhotep-core/src/context.ts b/packages/imhotep-core/src/context.ts index 4bf1ab8..321f90f 100644 --- a/packages/imhotep-core/src/context.ts +++ b/packages/imhotep-core/src/context.ts @@ -119,12 +119,12 @@ export function getDefaultContext(): ExecutionContext { return _defaultContext } -/** Set the global default context (useful for test setup). */ +/** @deprecated Prefer explicit context injection. Sets the global mutable default context. */ export function setDefaultContext(ctx: ExecutionContext): void { _defaultContext = ctx } -/** Reset the global default context so the next call creates a fresh one. */ +/** Reset the global default context. Call after using setDefaultContext() in tests. */ export function resetDefaultContext(): void { _defaultContext = undefined } diff --git a/packages/imhotep-core/src/pipeline.ts b/packages/imhotep-core/src/pipeline.ts index 166c2f6..3cf8aad 100644 --- a/packages/imhotep-core/src/pipeline.ts +++ b/packages/imhotep-core/src/pipeline.ts @@ -457,10 +457,16 @@ CODE_TO_CLAUSE_KIND[15] = 'size.aspectRatio' // --------------------------------------------------------------------------- let _traceId = 0 + function nextTraceId(): string { return `trace_${++_traceId}` } +/** Reset the trace ID counter (for test isolation). */ +export function resetTraceCounter(): void { + _traceId = 0 +} + function now(): number { return Date.now() } diff --git a/packages/imhotep-dsl/src/config.ts b/packages/imhotep-dsl/src/config.ts index 83449a8..a96c904 100644 --- a/packages/imhotep-dsl/src/config.ts +++ b/packages/imhotep-dsl/src/config.ts @@ -11,12 +11,12 @@ export interface ImhotepConfig { let globalConfig: ImhotepConfig = {} -/** Sets or updates global Imhotep runtime configuration. */ +/** @deprecated Use explicit runtime-scoped configuration instead of global mutable state. */ export function configure(config: ImhotepConfig): void { globalConfig = { ...globalConfig, ...config } } -/** Returns a shallow copy of the current global config. */ +/** @deprecated Use explicit runtime-scoped configuration. Returns a shallow copy of the global config. */ export function getConfig(): ImhotepConfig { return { ...globalConfig } } @@ -31,12 +31,12 @@ export interface ProjectConfig { let projectConfig: ProjectConfig = {} -/** Sets or updates project-level defaults, font corpora, and adapters. */ +/** @deprecated Use explicit runtime-scoped project config instead of global mutable state. */ export function project(config: ProjectConfig): void { projectConfig = { ...projectConfig, ...config } } -/** Returns a shallow copy of the current project config. */ +/** @deprecated Returns a shallow copy of the global project config. */ export function getProjectConfig(): ProjectConfig { return { ...projectConfig } } diff --git a/packages/imhotep-playwright/src/extraction.ts b/packages/imhotep-playwright/src/extraction.ts index 09ea5a0..533ca9d 100644 --- a/packages/imhotep-playwright/src/extraction.ts +++ b/packages/imhotep-playwright/src/extraction.ts @@ -96,6 +96,11 @@ export function resetExtractionPathStats(): void { const pageCacheNamespace = new WeakMap() let pageCacheNamespaceCounter = 0 +/** Reset the page cache namespace counter (for test isolation). */ +export function resetPageCacheNamespaceCounter(): void { + pageCacheNamespaceCounter = 0 +} + function getPageCacheNamespace(page: Page): string { const existing = pageCacheNamespace.get(page) if (existing) return existing