Files
Imhotep/packages/imhotep-playwright
John Dvorak e17e4d6c20 fix: remove silent error suppression — cache failures, box index mutation, cleanup catches
geometry-cache.ts: replace 5 empty catch blocks with console.warn
- statSync failure, rmSync failure (x2), readCachedWorld failure,
  readCachedExtractionResult failure were all silently swallowed.
  Now emit context-bearing warnings so stale/corrupt caches are visible.

predicates.ts: replace __boxIndex as any mutation with WeakMap
- getBorderRect used (world as any).__boxIndex to cache a subject-to-
  box-index map on the world object. Replaced with module-level WeakMap
  that auto-collects when the world is GC'd. Eliminates 2 as any casts.

extraction.ts: serialize materializeSemanticSelector + debug cleanup
- 3 Promise.all sites over page.evaluate changed to sequential for..of
  to eliminate DOM modification race conditions.
- 2 .catch(()=>{}) cleanup blocks now use console.debug so failed
  cleanup is traceable when debugging.
- resolveViewport catch now emits console.warn on zero-viewport fallback.

648 SDK + 57 E2E tests pass.
2026-05-22 12:00:20 -07:00
..

imhotep-playwright

Playwright integration layer for Imhotep. Provides page wrapping, CDP-backed geometry extraction, runtime pooling, property-based test runners, renderer adapters, and preset assertion contracts.

Key Exports

Export Description
imhotep(page, opts) Attach Imhotep to a Playwright page
imhotepComponent(id, opts) Property-run entry for rendered components
imhotepStory(url, opts) Property-run entry for Storybook stories
imhotepFixture(path, opts) Property-run entry for fixture files
test, expect, imhotepFixtures Playwright test fixtures
ContextPool, PagePool, Semaphore Pooled runtime for multi-worker testing
touchTarget through modalContainment Reusable assertion presets