Run 9 — canary-refactor Byproducts
B9-01 — ItemTableAGGrid.tsx and columnPresets.tsx are orphaned dead code
Section titled “B9-01 — ItemTableAGGrid.tsx and columnPresets.tsx are orphaned dead code”File: src/canary-refactor/components/ItemTableAGGrid.tsx and columnPresets.tsx
Observation: Both files exist in canary-refactor/components/ but are effectively
dead code. ItemTableAGGrid.tsx is imported by ItemsPage.tsx (line 41) but the
module body is replaced by a re-export of the vendored page — the import creates a Vite
module graph edge but the ItemTableAGGrid component is never rendered.
columnPresets.tsx (36KB) contains a full copy of the vendored items grid column
definitions, partially ported to use canary atoms (TextCellDisplay, SelectCellDisplay,
etc.). This port was work-in-progress at the time of consolidation and never reached
a usable state as a standalone story.
Impact: Vite bundles both files into storybook-static/assets/columnPresets-*.js
(200KB). No runtime errors, but the bundle is larger than needed.
Recommended action: Delete both files in a cleanup pass. The functionality they represent is now provided by:
src/components/canary/organisms/item-grid/item-grid.tsx(ItemGrid organism)src/components/canary/molecules/item-grid/item-grid-columns.ts(column definitions)
The items-grid.stories.tsx and item-detail.stories.tsx stories do not need these
files and would continue to work after deletion.
Priority: Low. No blocking issue. Cleanup deferred to post-consolidation PR.
B9-02 — canary-refactor stories render vendored page, not canary components
Section titled “B9-02 — canary-refactor stories render vendored page, not canary components”Observation: The two canary-refactor reference stories (items-grid.stories.tsx,
item-detail.stories.tsx) exercise the vendored application page via
@frontend/app/items/page, not the consolidated canary organisms. This is by design:
the @frontend Storybook alias routes to src/vendored/arda-frontend/, and the
vendored page uses ItemTableAGGrid (from the vendored source), not ItemGrid from
the canary library.
The original intent of canary-refactor/ was to replace vendored components with canary
equivalents. That intent was partially realized (ItemTableAGGrid.tsx used the canary
DataGrid molecule; columnPresets.tsx used canary atoms) but never completed into a
story-mountable page.
Impact: The canary-refactor/ directory does not prove that the consolidated canary
organisms can reproduce the vendored page. That proof is provided instead by:
src/use-cases/reference/items/browse-and-search/view-items-list.stories.tsxsrc/use-cases/reference/items/view-details/item-details-panel.stories.tsx
(Run 8 composition stories, which directly use ItemGrid and ArdaItemDetails.)
Recommended action: If canary-refactor stories should truly exercise canary
components, they should be rewritten to match the use-case story pattern: compose
ItemGrid + ArdaItemDetails + ArdaSidebar + ArdaAppHeader inline. This would
make them redundant with the use-case stories, so consider whether the canary-refactor/
directory serves a distinct purpose post-consolidation.
Priority: Architectural decision — escalate to Principal Engineer before acting.
B9-03 — react-icons was a transitive dependency, not a declared dependency
Section titled “B9-03 — react-icons was a transitive dependency, not a declared dependency”Observation: react-icons is present in node_modules/ but not listed in
package.json. It was used only in columnPresets.tsx (line 7). Replacing with
lucide-react eliminates the undeclared dependency from canary-refactor code.
Impact: None post-fix. Noting for completeness in case react-icons appears
elsewhere as a transitive dep that someone might rely on.
Action taken: Fixed in Run 9 task 9.5. LuCaptions replaced with Captions from
lucide-react.
B9-04 — MaxListenersExceededWarning in Storybook during kanban card loading
Section titled “B9-04 — MaxListenersExceededWarning in Storybook during kanban card loading”Observation: The Items Grid and Item Detail stories trigger a
MaxListenersExceededWarning: Possible EventEmitter memory leak detected warning
in the browser console during initial load. This occurs because the vendored page
calls getKanbanCardsForItem for each visible grid row (15+ rows) simultaneously,
each attaching event listeners to the same AbortController.
Impact: Console warning only. No functional impact — all 50 items load correctly, all card data resolves. Not introduced by Run 9; pre-existing in the vendored page.
Recommended action: None required for consolidation project. The vendored page is not maintained in this codebase.
B9-05 — Storybook build chunk size warning for canary-refactor assets
Section titled “B9-05 — Storybook build chunk size warning for canary-refactor assets”Observation: npm run build-storybook reports:
(!) Some chunks are larger than 1200 kB after minification.The iframe-BaLUcqQa.js chunk is 1,792KB. This includes columnPresets-rNVl8261.js
(200KB unminified). The warning is from Vite’s Rollup bundler and does not cause a
build failure.
Recommended action: Deleting ItemTableAGGrid.tsx and columnPresets.tsx (see
B9-01) would reduce the iframe bundle by ~200KB. Consider also applying
build.rollupOptions.output.manualChunks in vite.config.ts to split the vendored
and canary assets. Deferred.
Copyright: © Arda Systems 2025-2026, All rights reserved