Crawler-Factory

Sessions/Session-4-FactoryEntityModel.md

Session 4 — Factory Entity Model + Wizard-in-Workspace

Date: 2026-05-03 Duration: ~2 hours Model: Sonnet 4.6


What was accomplished

Shipped

  • UI-001 resolved: CrawlerListView now shows 1 factory container row (algolia_com with "3 crawlers" accent badge + 9,912 URLs total) and 1 manual row (old_crawler). Sub-crawlers are not visible in the main list — only accessible inside the factory workspace.
  • UI-002 resolved: FactoryWizard no longer uses position:fixed;inset:0. It renders inline as the "Setup wizard" page within WorkspaceShell's content area. Outer Algolia chrome (top bar with DATA SOURCES / CRAWLER) stays visible throughout the entire wizard flow.
  • WorkspaceShell factory mode: New mode='factory' prop adds "Setup wizard" as the first nav item in the SETUP section. FactoryWizard is imported and rendered inline as the Setup page. onNavigate prop threads navigation from wizard → overview page.
  • AdminFactory persistent chrome: Outer chrome is always rendered (not only in list mode). wizardOpen state removed. "Add new crawler" opens factory workspace at Setup page. Closing workspace returns to list.
  • Full browser-test: list → add → wizard 4 steps → overview; open existing factory → overview directly; factory row action menu shows Open + Delete only (no run-state controls).

Files changed

File Change
src/components/admin/factory/list-types.ts Added subCrawlerCount?: number to MockCrawler
src/components/admin/factory/CrawlerListView.tsx Factory entity model, 2 rows, onOpenFactory prop, factory row rendering
src/components/admin/factory/FactoryWizard.tsx Removed position:fixed, inline flex, sticky footer, removed onOpenCrawler prop
src/components/admin/factory/WorkspaceShell.tsx Removed position:fixed (now flex:1), factory mode, Setup nav item, onNavigate
src/AdminFactory.tsx Persistent outer chrome, factory flow, height:100vh flex chain

Browser test evidence

Screenshots at docs/dashboard_screenshots/session4-01 through session4-08: 1. List with factory entity model 2. Workspace Setup page (wizard inline, outer chrome visible) 3. Step 2 Review (discovery animation) 4. Step 3 Configure 5. Step 4 Done 6. Overview after wizard completion 7. Factory row action menu (Open + Delete only) 8. Existing factory opens at Overview

TypeScript

tsc --noEmit passes clean.


Issues remaining

  • UI-003: Sub-crawler management view in factory workspace left nav (P1, S5)
  • UI-004: Backend wiring — wizard Step 2 uses mock timers, not real /api/factory/discover SSE stream (P1, S5)

  • Parent status: Status
  • Previous session: Session-3-ReactUIRefactor