Problem
Panel definitions are split across two homes, making ownership unclear and encouraging features to depend directly on shell internals.
- Files panels live in
features/files/ and import shell APIs from components/layout/content-panel/
- Peer panels (
terminal, diff, browser) live under components/layout/content-panel/panels/
- Registration happens in the composition root (
routes/__root.tsx)
Severity
P3
Suggested fix
Pick one convention:
- Move
filesPanel / filePanel under components/layout/content-panel/panels/ and keep only view logic in features/files/, or
- Move all panel definitions into their owning features and keep
components/layout/content-panel/ as host infrastructure only.
Features should not need to reach into shell panel wiring beyond what the composition root imports.
Problem
Panel definitions are split across two homes, making ownership unclear and encouraging features to depend directly on shell internals.
features/files/and import shell APIs fromcomponents/layout/content-panel/terminal,diff,browser) live undercomponents/layout/content-panel/panels/routes/__root.tsx)Severity
P3
Suggested fix
Pick one convention:
filesPanel/filePanelundercomponents/layout/content-panel/panels/and keep only view logic infeatures/files/, orcomponents/layout/content-panel/as host infrastructure only.Features should not need to reach into shell panel wiring beyond what the composition root imports.