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:
CrawlerListViewnow shows 1 factory container row (algolia_comwith "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:
FactoryWizardno longer usesposition:fixed;inset:0. It renders inline as the "Setup wizard" page withinWorkspaceShell'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.FactoryWizardis imported and rendered inline as the Setup page.onNavigateprop threads navigation from wizard → overview page. - AdminFactory persistent chrome: Outer chrome is always rendered (not only in list mode).
wizardOpenstate 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/discoverSSE stream (P1, S5)
Links
- Parent status: Status
- Previous session: Session-3-ReactUIRefactor