6 flow validators tested all integration milestone assertions against the live dashboard and API. 5 assertions passed (E2E validation cycle, fix cycle, loop state visuals, validate button, responsive). 7 failed due to 3 systemic issues: (1) assertions panel renders empty despite correct API data, (2) run history TypeError crash (.map on undefined), (3) missing UI components (rollup badge, retry budget, lineage link). Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
4.3 KiB
User Testing
Testing surface, required testing skills/tools, and resource cost classification.
Validation Surface
| Surface | Description | Tool |
|---|---|---|
| Dashboard UI | Mission manager with assertions panel, loop states, validation controls | agent-browser |
| REST API | Assertion CRUD, validation trigger, loop state, runs, recovery | curl |
| CLI | Mission commands | Manual verification |
Validation Concurrency
Machine specs: 28 CPU cores, 256 GB RAM
agent-browser (lightweight app):
- Dashboard is a lightweight web app (~200 MB with dev server)
- Each agent-browser instance: ~300 MB RAM
- Dev server: ~200 MB
- Usable headroom: 256 GB * 0.7 = ~179 GB (very generous)
- Max concurrent validators: 5 (standard max)
Resource Cost Notes
- Dashboard dev server (
fn dashboard) needs to be running for browser tests - API tests via curl are very lightweight — no concurrency limit needed
- Tests should use a fresh
.fusion/fusion.dbto avoid state pollution
Test Data Context
Mission: M-MNVT98HS-I8OG ("Integration Test Mission") Milestone: MS-MNVT9VEC-70GM ("Validation Test Milestone") Slices: SL-MNVTAC2B-49SK (Slice 1), SL-MNVTAC91-98T3 (Slice 2)
Assertions:
- CA-MNVTGDE4-YEGX: "Feature links correctly" (pending)
- CA-MNVTGDHD-8ZAJ: "Validation passes on success" (pending)
- CA-MNVTGDRD-QNBH: "Fix feature created on failure" (pending)
Features with loop states:
| ID | Title | Loop State | Status | Notes |
|---|---|---|---|---|
| F-MNVTCGT6-Z6PM | Assertion Linking Test | idle | defined | First feature, no links |
| F-MNVTDFNW-NXSW | Assertion Linking Feature | idle | triaged | Linked to CA-...YEGX, CA-...8ZAJ |
| F-MNVTDFQ1-ED3P | Implementing State Feature | implementing | in-progress | No assertions |
| F-MNVTDG3I-YZCR | Validating State Feature | validating | in-progress | No assertions |
| F-MNVTDGC0-J3W3 | Needs Fix Feature | needs_fix | in-progress | Linked to CA-...QNBH, 1 failed run |
| F-MNVTDGJ7-N7QC | Passed Validation Feature | passed | done | Linked to CA-...YEGX, CA-...8ZAJ, 1 passed run |
| F-MNVTDGLC-G6TD | Blocked Feature | blocked | in-progress | No assertions, budget exhausted |
| F-MNVTDGXO-EU7E | Fix Feature from Lineage | passed | done | generatedFrom F-...J3W3, has lineage |
| F-MNVTDH2E-YYZD | Run History Feature | passed | done | 3 runs (2 failed, 1 passed) |
Dashboard URL: http://localhost:4040 Navigation: Click "Missions" in sidebar → find "Integration Test Mission" → expand
Flow Validator Guidance: Dashboard UI
Isolation: All browser validators share the same dashboard and test data. No mutations needed — validators observe existing state. Concurrent execution is safe.
Navigation pattern:
- Go to http://localhost:4040
- Click "Missions" tab in sidebar navigation
- Find "Integration Test Mission" and click to expand
- The mission detail shows milestones, slices, features, and assertions
Key selectors and patterns:
- Mission list items:
.mission-itemor similar - Milestone expand/collapse: click milestone header
- Feature cards: look for feature titles and loop state indicators
- Assertions panel: within milestone detail, look for assertions section
- Validation rollup: milestone header area
Constraints:
- Do NOT create/delete any data through the browser — only observe
- Do NOT modify the test mission data
- Each validator should take screenshots as evidence
- Use
--sessionflag for all agent-browser calls to avoid session conflicts
Flow Validator Guidance: REST API
Isolation: API tests can run freely alongside browser tests. No shared browser session.
Base URL: http://localhost:4040
Key endpoints:
GET /api/missions— list all missionsGET /api/missions/:id— mission detail with milestones/slices/featuresGET /api/missions/milestones/:id/assertions— assertions for milestoneGET /api/missions/features/:id/assertions— linked assertions for featureGET /api/missions/features/:id/validation-loop— loop state snapshotGET /api/missions/features/:id/validation-runs— validator run historyGET /api/missions/milestones/:id/validation— milestone rollupGET /api/missions/validation-runs/:id— single run detail
Constraints:
- Read-only testing preferred
- If creating test data, clean up afterward