SYD · Test Harness

Test Harness

Playwright-based end-to-end testing suite for SYD capabilities.

Test Harness

Playwright · Chromium · agentic-os/tests/
checking…

End-to-end test coverage for Track 1 (full sidebar, port 3001) and Track 2 (SYD Observatory, port 2727). Tests live in agentic-os/tests/ and run with a single Playwright command.

Live Server Status
T1 :3001 …T2 :2727 …
Architecture
agentic-os/ ├── playwright.config.ts ← 5 projects (track1, track2, api-t2, api-t1, cutover) └── tests/ ├── track1.spec.ts ← Track 1: full sidebar · original AI Boardroom ├── track2.spec.ts ← Track 2: Observatory design · all green ✓ ├── api.spec.ts ← /api/vitals schema + caching · all green ✓ └── cutover.spec.ts ← Cross-track regression · sidebar diff · CSS tokens
Two-Track Model
Track 1port 3001
Full sidebar. Original Agentic OS from AI Boardroom. All agents plus creative tools (Video, Music, Games, Thumbnails, Kanban, Notebook, Memory).
npm run dev:full
Track 2port 2727
SYD Observatory sidebar. 5 agents (ICA, Claude, Copilot, Hermes, OpenClaw). SELF surfaces. SYD Capabilities. LaunchAgent keeps this running 24/7.
npm run dev:syd
Test Suites
Track 1 — Full Sidebar
tests/track1.spec.ts

Verifies every original AI Boardroom route still loads. Tests sidebar nav labels, agent panels, creative tools. Must pass regardless of Track 2 changes.

Sidebar brand + nav labelsRoute smoke testsKey page content (Claude, Hermes, Memory, Notebook)No Next.js error overlays
npm run dev:full # starts port 3001
npx playwright test --project=track1
Track 2 — SYD Observatory
tests/track2.spec.ts

Verifies the Observatory 2.0 design. Root / is bare (no sidebar). /mission-control has TopBar + VITALS + agent portals + SELF row. All SYD routes return 200.

Root / bare layoutObservatory TopBarMission Control: VITALS, 5 portals, SELFSYD Sidebar: All Agents, SELF, SYD Capabilities11 SYD route smoke tests
npx playwright test --project=track2
API Contract
tests/api.spec.ts

Verifies /api/vitals returns the correct JSON schema. Tests content-type, timestamp freshness, per-agent shape, caching header, and /api/run POST.

/api/vitals → HTTP 200 + JSONBody: ts, claude, hermes, openclaw, gemini, antigravityX-Vitals-Cache headerPOST /api/run → not 500
npx playwright test --project=api-t2
Cutover — Cross-Track Regression
tests/cutover.spec.ts

Confirms Track 1 still serves original routes, Track 2 applies Observatory overrides, shared routes work on both tracks, sidebar content differs correctly.

T1 original routes still < 400T2 root ≠ T1 rootShared routes on both tracksSidebar content diff per track--obs-* CSS props on T2
npm run dev:full # also needs port 3001
npx playwright test --project=cutover
Stub Pages (nav links, no content yet)
/allAll AgentsUnified agent view
/epicsEpicsLong-horizon work items
/backlogBacklogSYD-Backlog.md integration
/summariesSummariesDaily summaries from vault
/memoryKnowledge GraphVaultGraph3D — needs SYD wiring
Run Everything
T2 only (LaunchAgent keeps it up)
npx playwright test --project=track2 --project=api-t2
All 4 suites (requires both ports)
npm run dev:full & npx playwright test
HTML report
npx playwright show-report playwright-report
Backlog
Fix TS error in api/run/route.ts (kimi missing from AgentName)
Add visual regression tests (screenshot diff per MC section)
Wire cutover suite into LaunchAgent nightly CI
Phase 9: add estimated-time-saved to close-a-task