Skip to content

frontend: live agent cards, keep the new-run form, explain kinds of work, named nav tabs - #84

Merged
OfficialAbhinavSingh merged 4 commits into
mainfrom
ui-fixes
Nov 6, 2026
Merged

OfficialAbhinavSingh merged 4 commits into
mainfrom
ui-fixes

Conversation

@Divii2205

@Divii2205 Divii2205 commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Four small fixes to the live dashboard, one commit each:

  1. Agents page as cards, and no prior shown as a record. The live Agents page was a six-column table where names, addresses and model ids wrapped mid-word. Each agent is now a card on the same grid as the registry page (3, 2, then 1 across): name, id and model; ENS name and verdict, with the reason when it is not verified; owner and receipt-signing key; and the validated record. The record column used to show the prior ("50% pass, about 0.50 USDC a task … (0 validated)") while the note under it says no figures are shown until an agent has validated outcomes. Only categories with counted_outcomes > 0 are shown now; otherwise "No validated outcomes yet".
  2. The new-run form is kept while visiting other pages. Typing a goal, opening another tab and coming back emptied the form. The goal, repository, branch, budget and kind of work are now kept in this browser tab (sessionStorage), keyed on the signed-in address, and dropped once the plan is drafted or "Clear the form" is pressed. "Start again" still fills the form from the earlier plan instead. A stored draft that is malformed, too long or names an unknown kind is ignored.
  3. Each kind of work says what it means. The chips (Fix failing tests, Fix a bug, Security, Performance, Refactor, Docs) now have a one-line meaning, shown under the chips for the one picked and as a tooltip, plus what picking a kind changes: the tasks the planner drafts (planner.py puts the category in its prompt), which agents are suggested (routing reads agent_posteriors for the plan's category) and which record the result counts toward.
  4. Nav tabs have a name when only their icons show. Below 1100px shell.css hides .tab-label, which left each primary nav tab as a link with no accessible name. Each tab now has aria-label and title.

Type of change

  • paper — correction, derivation, or new section in the research
  • docs — requirements, README, or other prose
  • feat — new functionality
  • fix — bug fix
  • contracts — Solidity
  • chore — dependencies, tooling, CI

What I verified

  • Verified:
    • npm run lint, npm run format:check, npm run build and npm test (526 unit tests) pass on the branch, rebased on 66b80a5.
    • npx playwright test --project=live: 118 passed, 2 skipped (the two that need the WASM verifier built).
    • The two middle commits type-check on their own (tsc -b).
    • New tests: newRunDraft.test.ts (9 cases: restore, per-address keys, cleared when empty or after drafting, private mode, malformed or oversized drafts, unknown kind); e2e for typing, leaving for Agents and coming back, Clear the form, reload, and an empty form after drafting; e2e that the kind hint follows the chip picked and is the group's accessible description; e2e that an agent whose rows all have counted_outcomes: 0 shows no figures.
    • Screenshots below are from the live build against the e2e fakes, at 1440×900; I also checked the cards and the new-run page at 390×844 in light and dark.
  • Not verified:
    • Not checked against the deployed app or real mainnet ENS data, only the e2e fakes.
    • The mock (sample-data) project's two landing-page scroll-story tests time out when the whole suite runs at once on this machine; they pass alone, on this branch and on main. They do not touch these files.
    • Not tested with a screen reader; the nav and hint changes are checked through accessible names and descriptions in Playwright only.

Checklist

  • One concern per PR — this change does one thing (small live-dashboard UI fixes, one commit each)
  • No secrets committed (no private keys, API keys, .env files, mnemonics)
  • Claims in the diff are supported by something a reviewer can check

Evidence

Agents page: before / after (same fake data: coder-a has only prior rows, coder-b has 7 and 3 validated outcomes)

Before:
1-agents-before

After:
1-agents-after

New run: after typing, going to Agents and coming back. Before / after

Before:
3-new-run-before-after-switching-tabs

After:
3-new-run-after-switching-tabs

Breaking changes / follow-ups

None. Test ids record-<id> and ens-<id> are unchanged; the overview e2e now looks for agent cards instead of table rows.

The live Agents page was a six-column table: names, hex addresses and model ids
wrapped mid-word, and the record column showed the prior ("50% pass ...
(0 validated)") while the note under it said no figures are shown until an
agent has validated outcomes.

Each agent is now a card on the registry's grid (3, 2, then 1 across): name,
id and model; ENS name and verdict with the reason when not verified; owner
and receipt-signing key; and only categories with counted outcomes. An agent
with none says "No validated outcomes yet". A test guards that rows with
counted_outcomes 0 never show figures.
Typing a goal, going to another tab and coming back emptied the form. The
goal, repository, branch, budget and kind of work are now kept in this browser
tab (sessionStorage), keyed on the signed-in address so another account never
sees them, and are dropped once the plan is drafted or the form is cleared.
"Start again" still fills the form from the earlier plan instead. A stored
draft that is malformed, too long or names an unknown kind is ignored.
The kind-of-work chips (Fix failing tests, Fix a bug, Security, Performance,
Refactor, Docs) gave no hint of what they meant or what picking one changes.
Each kind now has a one-line meaning, shown under the chips for the one picked
(and as the chip's tooltip), followed by what the kind changes: the tasks the
planner drafts, which agents are suggested (by their record in this category)
and which record the result counts toward. The line is the fieldset's
accessible description.
Below 1100px shell.css hides .tab-label, which left each primary nav tab as a
link with no accessible name. Each tab now carries its label as aria-label
and title.
@github-project-automation github-project-automation Bot moved this to Backlog in Kanban Nov 6, 2026
@OfficialAbhinavSingh
OfficialAbhinavSingh merged commit 4df7c9f into main Nov 6, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Kanban Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants