feat(agent-team): dashboard UI redesign (Board + DAG tabs, Tailwind/shadcn) [read-only] #64

Merged
amoussa1229 merged 9 commits from feat/agent-team-dashboard-redesign into main 2026-06-24 23:05:05 +00:00

9 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
ebb8e1991f ci(agent-team): add web frontend CI via org reusable workflow
Adds .github/workflows/ci-web.yaml, a thin caller over the org
Sea-Haven-Industries/.github ci-typescript-frontend.yaml reusable workflow,
scoped to agent-team/web changes. Runs build (tsc -b + vite build = typecheck)
and vitest on PRs to main. Distinct job id ci-web (status 'ci-web / ci') so it
does not collide with the Python 'ci / ci' context. format:check/lint/test:e2e
steps toggled off until Prettier/ESLint/Playwright are wired.

Verified locally: npm ci + npm run build + npm test (36/36) all green.
2026-06-24 18:42:34 -04:00
e1a1d4bf95 Merge remote-tracking branch 'origin/main' into ui-redesign-on-pr61 2026-06-24 18:29:12 -04:00
6ad164a632 fix(agent-team): don't render build/verify/dispatch as 'inert'
The backend still flags the P3 nodes (build/verify/dispatch) gated:true, but in
the live R720 deployment they are wired and active — so that flag is a stale
'P3 opt-in' hint, not a real 'inactive' signal. Stop deriving the dimmed/'inert'
treatment from stage.gated / meta.gated in both the Board columns and the DAG
nodes; activity is conveyed by live task counts + status colors. Human gates are
unaffected (still keyed off topology kind 'gate').

Typecheck + 36 tests + build all green.
2026-06-24 14:13:36 -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
751a6787f6 fix(agent-team): address UI review (column flex height, ARIA, token consistency)
Fresh-context deep review verdict was SHIP-WITH-FIXES (all hard constraints held:
read-only, inert gate panel, XSS posture, no backend, gate-vs-inert semantics).
Resolved:
- Board columns: replace magic calc(100vh-220px) ScrollArea cap with a proper
  flex chain (h-full/min-h-0) so card lists size to real column height at any
  window size / wrapped toolbar.
- Valid ARIA: stage row is role=list, each column a role=listitem wrapping a
  role=listbox of task-card options (no malformed listbox nesting).
- TopBar health dot uses status-active/status-failed tokens (no hardcoded Tailwind
  palette colors).
- Stale TaskList reference in badge.tsx comment.

Typecheck + 36 tests + build all green.
2026-06-24 13:50:00 -04:00
bf5d259dfd fix(agent-team): board gate vs inert semantics + verify against live data
isGate() now keys off topology node kind 'gate' (clarify) or the 'gate' stage,
not stage.gated — which actually means INERT (disabled P3 nodes build/verify/
dispatch). Inert columns get a dimmed + 'inert' treatment instead of a false
'human gate' lock. Verified against the live R720 dashboard (10 stages) via a
dev-proxy smoke test; typecheck + 36 tests + build all green.
2026-06-24 13:45:22 -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
022befa796 feat(agent-team): Tailwind + shadcn foundation for dashboard redesign
Adds the styling foundation for the UI redesign (vibe-kanban / Magentic-UI /
Langflow references): Tailwind CSS + shadcn/ui primitives, HSL design tokens
(index.css) ported from theme.css, @/ alias, and the App.tsx Board|Pipeline tabs
shell. Extends StateResponse with the backend's existing stages[] for the Board.

theme.css kept transiently until components migrate to Tailwind. No backend
changes. Component fan-out (Board, MapNode, TaskDrawer, TopBar) follows.
2026-06-24 13:35:56 -04:00