mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-11 22:02:16 +00:00
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.
51 lines
1.5 KiB
JSON
51 lines
1.5 KiB
JSON
{
|
|
"$comment": "Runtime import cycles under src/: the back-edge count and the strongly connected components. Maintained by src/__tests__/import-cycle-guard.test.ts.",
|
|
"cycles": 13,
|
|
"components": [
|
|
[
|
|
"components/command-palette/command-palette.tsx",
|
|
"components/command-palette/palette-store.ts",
|
|
"components/layout/global-shortcuts.tsx"
|
|
],
|
|
[
|
|
"lib/analytics/compliance.ts",
|
|
"lib/analytics/compliance/display.ts",
|
|
"lib/analytics/compliance/ledger.ts",
|
|
"lib/analytics/compliance/occurrences.ts",
|
|
"lib/analytics/compliance/windows.ts",
|
|
"lib/medications/scheduling/band-minter.ts",
|
|
"lib/medications/scheduling/cadence.ts",
|
|
"lib/medications/scheduling/compliance.ts",
|
|
"lib/medications/scheduling/schedule-eras.ts"
|
|
],
|
|
[
|
|
"lib/auth/audit.ts",
|
|
"lib/geo.ts",
|
|
"lib/integrations/oauth-kit/connect-target.ts",
|
|
"lib/jobs/offhost-purge.ts",
|
|
"lib/managed-profiles/lifecycle.ts",
|
|
"lib/notifications/channel-state.ts",
|
|
"lib/notifications/delivery-identity.ts",
|
|
"lib/notifications/dispatch-localised.ts",
|
|
"lib/notifications/dispatcher.ts",
|
|
"lib/sharing/grants.ts"
|
|
],
|
|
[
|
|
"lib/cycle/gate.ts",
|
|
"lib/modules/gate.ts"
|
|
],
|
|
[
|
|
"lib/insights/features.ts",
|
|
"lib/insights/signals-of-day.ts"
|
|
],
|
|
[
|
|
"lib/insights/mood-aggregates.ts",
|
|
"lib/insights/mood-patterns.ts"
|
|
],
|
|
[
|
|
"lib/jobs/boss-instance.ts",
|
|
"lib/jobs/boss-ready.ts"
|
|
]
|
|
]
|
|
}
|