fix: break plugin registry type import cycle#93738
Conversation
e3fe91f to
b59dd5e
Compare
|
Codex review: needs maintainer review before merge. Reviewed June 16, 2026, 2:43 PM ET / 18:43 UTC. Summary PR surface: Source +3, Tests +1. Total +4 across 4 files. Reproducibility: yes. Source inspection shows the stricter madge guard collects static import/export declarations, while the PR replaces the problematic type-only static edges with import type queries; I did not rerun checks because this review is read-only. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Security Review detailsBest possible solution: Land the narrow type-cycle fix after maintainer handling if the exact head keeps the import-cycle guards, formatting, lint, and focused tooling tests green. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows the stricter madge guard collects static import/export declarations, while the PR replaces the problematic type-only static edges with import type queries; I did not rerun checks because this review is read-only. Is this the best way to solve the issue? Yes. The import-query approach is the narrowest maintainable fix because it preserves the existing plugin registry/public type contract and avoids weakening the architecture guard. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against b9e193ce22ae. Label changesLabel justifications:
Evidence reviewedPR surface: Source +3, Tests +1. Total +4 across 4 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
b59dd5e to
0637f18
Compare
|
Maintainer verification complete. I rebased the contributor branch onto current Verified:
Ready to squash merge. |
Summary
Validation
node --import tsx scripts/check-import-cycles.tsnode --import tsx scripts/check-madge-import-cycles.tsnode scripts/check-deprecated-api-usage.mjsnode scripts/check-deprecated-jsdoc.mjsnode scripts/generate-kysely-types.mjs --verifynode scripts/check-kysely-guardrails.mjsnode scripts/check-database-first-legacy-stores.mjsnode node_modules/vitest/vitest.mjs run --config test/vitest/vitest.tooling.config.ts src/scripts/test-projects.test.ts -t "routes top-level test helpers to importing repo tests" --reporter=dotnode_modules/oxfmt/bin/oxfmt --check --threads=1 src/plugins/types.ts src/plugins/registry-types.ts src/plugins/runtime-state.ts src/scripts/test-projects.test.tsnode_modules/oxlint/bin/oxlint --tsconfig config/tsconfig/oxlint.core.json src/plugins/types.ts src/plugins/registry-types.ts src/plugins/runtime-state.ts src/scripts/test-projects.test.tsgit diff --checkReal behavior proof
Madge import cycle check: 0 cycle(s).1 passed | 81 skipped.