Summary
The zombie-import gate (scripts/check-no-zombie-imports.mjs) has 71 allowlisted callsites that import from dead module namespaces. These are legacy imports that predate the fork gutting work and need to be migrated to live replacements or removed.
Note: The original gate (PR #2247) had a repo-root resolution bug (resolveRepoRoot is designed for scripts/lib/, not scripts/) that caused it to scan zero files — vacuously passing. The H3 reform (ADR 0005) fixed this, revealing the true scope: 71 zombie imports across the codebase.
Allowlist by pattern
| Pattern |
Count |
Example callsites |
agents/pi-embedded |
12 |
abort.ts, agent-runner.ts, session-store.ts |
agents/model-selection |
13 |
agent-runner.ts, config/defaults.ts, model-picker.ts |
acp/runtime |
11 |
acpx.ts, plugin-sdk/index.ts, action-focus.ts |
agents/sandbox |
9 |
security/audit.ts, reply-media-paths.ts |
agents/skills |
6 |
commands-types.ts, session-updates.ts, status-all.ts |
agents/pi-embedded-runner |
5 |
reply-payloads.ts, openresponses-http.ts, tts-core.ts |
acp/control-plane |
3 |
abort.ts, dispatch-from-config.test.ts, sessions.ts |
agents/model-fallback |
3 |
agent-runner.e2e.test.ts, followup-runner.ts |
auto-reply/reply/commands-models |
3 |
model-picker.ts, mattermost.ts |
| Other tombstone-derived |
6 |
Various |
Full list: scripts/data/zombie-import-allowlist.json
Context
Frozen as a declining debt register by the H3 zombie-import gate reform (ADR 0005). The gate prevents adding new entries without a tracking issue. Each entry should be resolved by migrating the import to a live replacement or removing the dead code path. Tracked as tombstone cleanup in #2356.
Acceptance criteria
Summary
The zombie-import gate (
scripts/check-no-zombie-imports.mjs) has 71 allowlisted callsites that import from dead module namespaces. These are legacy imports that predate the fork gutting work and need to be migrated to live replacements or removed.Note: The original gate (PR #2247) had a repo-root resolution bug (
resolveRepoRootis designed forscripts/lib/, notscripts/) that caused it to scan zero files — vacuously passing. The H3 reform (ADR 0005) fixed this, revealing the true scope: 71 zombie imports across the codebase.Allowlist by pattern
agents/pi-embeddedagents/model-selectionacp/runtimeagents/sandboxagents/skillsagents/pi-embedded-runneracp/control-planeagents/model-fallbackauto-reply/reply/commands-modelsFull list:
scripts/data/zombie-import-allowlist.jsonContext
Frozen as a declining debt register by the H3 zombie-import gate reform (ADR 0005). The gate prevents adding new entries without a tracking issue. Each entry should be resolved by migrating the import to a live replacement or removing the dead code path. Tracked as tombstone cleanup in #2356.
Acceptance criteria
scripts/data/zombie-import-allowlist.json.zombie-import-allowlist-baselinedecremented to match