Files
HealthLog/src/__tests__/baselines/reexport-only-modules.json
T
Marc-André Bombeck f64b49cf55 test(guards): freeze runtime import cycles and re-export-only modules
The runtime import graph (static value imports and re-exports, side-effect
imports, dynamic import() with a literal; `import type` erased) is built
with the TypeScript compiler's module resolution under the `@/*` mapping,
over every production module. No new dependency.

- Cycles: 13, counted one per back edge of a sorted depth-first walk (the
  number `madge --circular` reports), in 7 strongly connected components:
  the audit/geo/notifications/managed-profiles cluster (10 modules), the
  compliance facade cluster (9), command palette ↔ store ↔ shortcuts,
  modules ↔ cycle gate, boss-instance ↔ boss-ready, mood aggregates ↔
  patterns, features ↔ signals-of-day. A new component or a component that
  draws in another module fails whatever the count says; a lower count or a
  shrunk component fails until written back. The target is zero.
- Re-export-only modules (every statement an `export … from`): 16 listed;
  a new one fails.

Proof: two planted modules importing each other failed with
"lib/zz-probe/a.ts <-> lib/zz-probe/b.ts", a planted `export * from "./a"`
module failed the re-export ratchet, and a baseline raised to 14 cycles
failed with the write-back message until RATCHET_WRITE=1 restored it.
2026-10-22 04:29:57 +02:00

24 lines
818 B
JSON

{
"$comment": "Modules under src/ whose every statement is an export … from. Maintained by src/__tests__/import-cycle-guard.test.ts.",
"count": 16,
"total": 16,
"entries": {
"components/data-list/index.ts": 1,
"components/insights/derived/index.ts": 1,
"components/insights/workout-detail/index.ts": 1,
"lib/ai/coach/tools/index.ts": 1,
"lib/analytics/compliance.ts": 1,
"lib/cycle/index.ts": 1,
"lib/doctor-report-data.ts": 1,
"lib/fhir/resources/index.ts": 1,
"lib/insights/derived/index.ts": 1,
"lib/links/index.ts": 1,
"lib/logging/index.ts": 1,
"lib/mcp/index.ts": 1,
"lib/openapi/routes/insights/index.ts": 1,
"lib/openapi/routes/medications/index.ts": 1,
"lib/record-settings/index.ts": 1,
"lib/validations/medication/index.ts": 1
}
}