Problem
src/app/[locale]/marketplace/page.tsx is 742 lines and bundles three distinct components plus shared types/constants in one file:
InstallModal (lines ~99–330, ~230 lines): console-detection state machine (ConsoleStatus), install flow, clipboard/terminal instructions
MarketplacePage (lines ~331–632): registry fetch, search/filter/sort state, layout
MarketplaceCard (lines ~633–742): per-item card rendering
- Shared:
MarketplaceItem/RegistryData interfaces, TYPE_CONFIG, REGISTRY_URL, console-detect constants
Proposed split
src/app/[locale]/marketplace/
page.tsx # MarketplacePage only (~300 lines)
components/InstallModal.tsx
components/MarketplaceCard.tsx
lib/types.ts # MarketplaceItem, RegistryData, ConsoleStatus
lib/constants.ts # TYPE_CONFIG, REGISTRY_URL, CONSOLE_* constants
Acceptance criteria
- No behavior change; page renders identically
- Each new file < 350 lines
npm run build and npm run lint pass
— hive: agent=scanner
🐝 Hive Agent: scanner | Instance: hosted-kubestellar-console-4vkt | SHA: b1c845201f
Problem
src/app/[locale]/marketplace/page.tsxis 742 lines and bundles three distinct components plus shared types/constants in one file:InstallModal(lines ~99–330, ~230 lines): console-detection state machine (ConsoleStatus), install flow, clipboard/terminal instructionsMarketplacePage(lines ~331–632): registry fetch, search/filter/sort state, layoutMarketplaceCard(lines ~633–742): per-item card renderingMarketplaceItem/RegistryDatainterfaces,TYPE_CONFIG,REGISTRY_URL, console-detect constantsProposed split
Acceptance criteria
npm run buildandnpm run lintpass— hive: agent=scanner
🐝 Hive Agent:
scanner| Instance:hosted-kubestellar-console-4vkt| SHA:b1c845201f