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
amoussa1229 commented 2026-06-24 22:44:01 +00:00 (Migrated from github.com)

DRAFT — evaluate-first, do not merge yet. This is the dashboard redesign explored on an isolated worktree. It is already deployed to the live R720 box (deploy-before-merge) and is opened as a draft so the new ci-web / ci check runs and the design can be reviewed.

What

A full visual redesign of the read-only agent-team LAN dashboard (agent-team/web), drawing design from vibe-kanban (primary), Magentic-UI, and Langflow.

  • Stack: migrated hand-written theme.css → Tailwind CSS + shadcn/ui (HSL design tokens ported from the old palette; @/ path alias).
  • Board view (new, primary tab): a Kanban board with one column per backend pipeline stages[]; compact status-tinted task cards; search + status/tree filters.
  • Pipeline tab: the existing ReactFlow DAG, restyled (Langflow-style node language).
  • Task drawer: rebuilt on shadcn; includes a read-only human-gate panel ("Answer in Slack #agent-team" — informational only, no submit/approve controls).
  • TopBar: restyled brand + status chips + health dot.

Read-only / safety

  • No backend changes — the diff is entirely under agent-team/web/. Consumes the existing read-only /api/state · /api/topology · /api/task endpoints.
  • XSS-safe markdown preserved (react-markdown, no rehype-raw).
  • Gate panel submits nothing; human gates are still answered in Slack.

CI

  • Adds .github/workflows/ci-web.yaml — a thin caller over the org reusable ci-typescript-frontend.yaml, scoped to agent-team/web/**. Runs build (tsc -b typecheck + vite build) and vitest. Distinct job id ci-web (status ci-web / ci) so it doesn't collide with the Python ci / ci. Prettier/ESLint/Playwright steps toggled off until those tools are wired.

Testing

  • tsc -b clean · 36/36 vitest tests · vite build clean (vendor bundle split via rollup manualChunks, no >500 kB chunk).
  • Local CI dry-run (npm ci + npm run build + npm test) all green.
  • Deployed + verified live on the box: dashboard serves the new split bundle (HTTP 200), /api/state (10 stages) / /api/topology (7 nodes) respond; coordinator + status services healthy (NRestarts 0).

Review gates

  • Fresh-context Opus adversarial review and GPT-4.1 cross_reviewer (via the orchestrator) — both SHIP-WITH-FIXES, no BLOCKs; fixes applied (column flex height, ARIA, token consistency, a11y headings).
  • Not on the mandatory security-review surface (read-only dashboard, no auth/IaC/untrusted-input changes); XSS posture re-confirmed.

Notes / outstanding

  • Branch pushes used git push --no-verify (operator-authorized): the global pre-push scanner blocks on 4 HIGH + 1 MEDIUM findings that are byte-identical to main (.env.example, the *_no_write_token.py PEM test fixtures, user_prompt_submit.py urllib) — none in this frontend-only diff.
  • ci-web / ci is not yet a required status in the main ruleset (org-admin change) — it runs and reports, but doesn't gate merges until added.
  • Follow-up (optional): wire Prettier + ESLint + Playwright and flip those reusable steps on.
> **DRAFT — evaluate-first, do not merge yet.** This is the dashboard redesign explored on an isolated worktree. It is already **deployed to the live R720 box** (deploy-before-merge) and is opened as a draft so the new `ci-web / ci` check runs and the design can be reviewed. ## What A full visual redesign of the **read-only** agent-team LAN dashboard (`agent-team/web`), drawing design from vibe-kanban (primary), Magentic-UI, and Langflow. - **Stack:** migrated hand-written `theme.css` → **Tailwind CSS + shadcn/ui** (HSL design tokens ported from the old palette; `@/` path alias). - **Board view (new, primary tab):** a Kanban board with one column per backend pipeline `stages[]`; compact status-tinted task cards; search + status/tree filters. - **Pipeline tab:** the existing ReactFlow DAG, restyled (Langflow-style node language). - **Task drawer:** rebuilt on shadcn; includes a **read-only** human-gate panel ("Answer in Slack #agent-team" — informational only, no submit/approve controls). - **TopBar:** restyled brand + status chips + health dot. ## Read-only / safety - **No backend changes** — the diff is entirely under `agent-team/web/`. Consumes the existing read-only `/api/state` · `/api/topology` · `/api/task` endpoints. - **XSS-safe markdown preserved** (react-markdown, no `rehype-raw`). - Gate panel submits nothing; human gates are still answered in Slack. ## CI - Adds `.github/workflows/ci-web.yaml` — a thin caller over the org reusable `ci-typescript-frontend.yaml`, scoped to `agent-team/web/**`. Runs `build` (`tsc -b` typecheck + `vite build`) and vitest. Distinct job id `ci-web` (status `ci-web / ci`) so it doesn't collide with the Python `ci / ci`. Prettier/ESLint/Playwright steps toggled off until those tools are wired. ## Testing - `tsc -b` clean · **36/36 vitest tests** · `vite build` clean (vendor bundle split via rollup `manualChunks`, no >500 kB chunk). - Local CI dry-run (`npm ci` + `npm run build` + `npm test`) all green. - **Deployed + verified live on the box:** dashboard serves the new split bundle (HTTP 200), `/api/state` (10 stages) / `/api/topology` (7 nodes) respond; coordinator + status services healthy (NRestarts 0). ## Review gates - Fresh-context Opus adversarial review **and** GPT-4.1 cross_reviewer (via the orchestrator) — both **SHIP-WITH-FIXES, no BLOCKs**; fixes applied (column flex height, ARIA, token consistency, a11y headings). - Not on the mandatory security-review surface (read-only dashboard, no auth/IaC/untrusted-input changes); XSS posture re-confirmed. ## Notes / outstanding - Branch pushes used `git push --no-verify` (operator-authorized): the global pre-push scanner blocks on 4 HIGH + 1 MEDIUM findings that are **byte-identical to main** (`.env.example`, the `*_no_write_token.py` PEM test fixtures, `user_prompt_submit.py` urllib) — none in this frontend-only diff. - `ci-web / ci` is not yet a *required* status in the `main` ruleset (org-admin change) — it runs and reports, but doesn't gate merges until added. - Follow-up (optional): wire Prettier + ESLint + Playwright and flip those reusable steps on.
This repo is archived. You cannot comment on pull requests.
No description provided.