refactor: runtime isolation — deprecate global singletons, add counter resets
config.ts: @deprecated on configure/getConfig/project/getProjectConfig. Current code has zero production callers — dead code path. Functions remain for backward compatibility but signal migration to scoped config. context.ts: @deprecated on setDefaultContext. Documents that consumers should call resetDefaultContext() after use in tests to prevent context-seed leakage. pipeline.ts: Export resetTraceCounter() for test isolation of _traceId counter variable. extraction.ts: Export resetPageCacheNamespaceCounter() for test isolation of pageCacheNamespaceCounter. Combined with prior fix (defaultPredicatesRegistered→sentinel check + compatibilityWarningEmitted→warnedUis WeakSet), 5 of 7 correctness- affecting global mutable state items are now tied down. Remaining: globalPredicateRegistry/globalClauseRegistry (already @deprecated with explicit injection path via LogicEngineOptions/EvalOptions). 605 SDK + 57 E2E = 662 tests pass.
This commit is contained in:
@@ -96,6 +96,11 @@ export function resetExtractionPathStats(): void {
|
||||
const pageCacheNamespace = new WeakMap<Page, string>()
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user