Commit graph

5 commits

Author SHA1 Message Date
05c92be874 feat(agent-team): render all dashboard times as Eastern 24h (EDT/EST)
Add src/lib/time.ts formatEastern() — parses both backend timestamp shapes
(the 'YYYY-MM-DD HH:MM:SS UTC' snapshot string and ISO offset transition times),
renders them in America/New_York (DST-aware: EDT/EST) as 24h
'YYYY-MM-DD HH:MM:SS ZZZ'. Wire into TopBar (snapshot clock + tooltip) and the
TaskDrawer timeline (entered_at). Adds time.test.ts (8 cases incl. DST + day
boundary). 44 frontend tests green.
2026-06-24 18:56:56 -04:00
3f4b95579e perf+a11y(agent-team): split vendor bundle + GPT-4.1 review fixes
GPT-4.1 cross-family review verdict: SHIP-WITH-FIXES, no BLOCKs (read-only,
XSS-safe, no-backend, gate-vs-inert all confirmed). Applied:
- a11y: aria-label on the Board/Pipeline Tabs; drawer collapsible section labels
  are now semantic <h3> headings.
- Bundle: function-based rollup manualChunks splits react/flow/markdown/radix/
  vendor so the 614 kB single chunk is gone (largest now ~142 kB react); app
  code drops to ~30 kB. Clears the 500 kB Vite warning. CSS splits too.

(Skipped GPT's .prose-sm finding — incorrect; index.css uses a hand-written .md
block, not Tailwind Typography. Roving-tabindex left out by design for this
read-only view.)

Typecheck + 36 tests + build all green.
2026-06-24 14:04:38 -04:00
9b4bef1f4c feat(agent-team): redesign dashboard UI (Board + DAG tabs, Tailwind/shadcn)
Component fan-out + integration of the vibe-kanban-inspired redesign:
- Board.tsx + TaskCard.tsx: read-only Kanban (one column per backend stage,
  fallback grouping by phase), toolbar (search/status/tree filters + node-filter
  chip), gate columns flagged; filter logic lifted to taskFilters.ts (tested).
- MapNode.tsx + PipelineMap.tsx: DAG nodes restyled to Tailwind (Langflow-style
  state-driven borders, lucide icons, count pill, loop/gate affordances).
- TaskDrawer.tsx: shadcn rebuild + Magentic-style read-only gate panel
  ('Answer in Slack #agent-team', no submit controls).
- TopBar.tsx: restyled brand + status chips + health dot.
- Retire theme.css; port the .md markdown block into index.css on new tokens.
- Remove dead TaskList; add Board/taskFilters tests.

Typecheck clean, 36 tests pass, build clean. Read-only — no backend changes.
2026-06-24 13:43:10 -04:00
34c5f1d75e feat(agent-team): cleaner retry-loop display + human-readable task history
Two dashboard-SPA refinements (frontend only):

1. Retry loops (plan<->review, build<->verify) no longer draw a backward arc over
   the forward edge (the 'circular arrows'). Loop-backs are excluded from the
   default render and from the dagre layout; instead the source node shows a small
   ↺ chip ('can send work back to ...'), and the actual return arc is drawn only
   when a selected task ACTUALLY looped it (computed from its timeline), highlighted
   on that task's path.

2. Q&A / Review Verdicts / Plan render human-readably instead of JSON blobs:
   react-markdown (no rehype-raw -> raw HTML escaped, XSS-safe) renders findings/
   answers/summary; verdicts as cards (badge + round + outcome), Q&A as per-turn
   cards (string + dict shapes), plan as summary + phase/step lists.

16 frontend tests pass (incl. loopback default-off/on-when-looped, markdown bold,
and a no-raw-HTML XSS guard); typecheck + build clean.
2026-06-24 12:42:55 -04:00
677f3d3c71 feat(agent-team): React/Vite status-dashboard SPA
New web/ SPA (React 18 + Vite 5 + TypeScript + React Flow + dagre, all pinned, no
CDN). Dark, three-pane layout: summary top bar, filterable task list, center
auto-laid pipeline map, and a right drawer showing a selected task's history
through each node (timeline with timestamps/duration/cost + Q&A/verdicts/plan).
Map nodes color by live state, loop-backs render dashed, clicking a node filters
the list, selecting a task highlights its path. Polls /api/state every 4s;
topology fetched once. dist/ is gitignored (built on the Mac, rsynced).
2026-06-23 17:15:23 -04:00