app: board triage — full-width table density with briefing preview rail#31
Merged
Conversation
LifeLex
force-pushed
the
alejandro/agent-fleet
branch
from
July 3, 2026 08:42
c3dd179 to
3ead751
Compare
… and filter collapse Redesign the PRs board (mockup D1) from a ~960px centered card column into a full-width triage surface. - Fluid layout: the board fills the window on all three tabs; the header (tabs + refresh + search + filters + density) is fixed, the body fills the rest and scrolls, and in table density the table + preview rail scroll independently. - Density model `cards | table` (lib/board-density): default table >= 1400px at first render, cards below; a user toggle persists (localStorage `cockpit.board.density`) and always wins. Cards become a responsive multi-column grid (auto-fill minmax(420px, 1fr)). - BoardTable: CSS-grid triage rows (LED | branch+reason | agent's read | signals | action). Row click selects, dblclick/Enter opens, action button acts without selecting; keyboard ↑/↓/Enter/Escape via a listbox with roving aria-activedescendant. Compact number formatting (3.4k) for adds/dels. - BoardPreviewRail (>= 1280px, matchMedia-gated): gate header, agent's read, severity/size/CI chips, top-3 findings, Open review + recap freshness — all from the store Review, no fetch. - StateFilter: zero-count chips (except the active filter and All) collapse into a "More" dropdown; counts kept on visible chips. - Extract shared board pieces so cards/table/rail render identically: StatusLed (+ledColorClass/ledPulses), actionConfigForState (lib/review-action), parsePrDisplay (lib/pr-ref), toneTextClass (card-signal), sizeClassLabel (diff-signals); ReviewCard behavior unchanged. BriefingFindings gains an optional `limit`. Tests: density default/persistence, compact number, filter partition, selection movement, action mapping, pr parsing, BoardTable interaction/keyboard, and BoardPreviewRail render; StateFilter tests updated for the collapse. tsc, vitest (384), and vite build all green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A search/filter change that removes the selected PR from the visible list no longer leaves aria-activedescendant pointing at an unrendered row id.
LifeLex
force-pushed
the
alejandro/board-triage
branch
from
July 3, 2026 08:45
b759c96 to
bcd8dcc
Compare
This was referenced Jul 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
PR 7/7 of the overnight UX program (Track D —
cockpit-docs/OVERNIGHT_UX_PLAN.md, mockup D1, from the screen-real-estate feedback). Stacked on #30.XL +3.4k −613,1C 2Wseverity dots), per-state action button. ~14 PRs per screen instead of 7 cards.Verified
tscclean ·vitest384 (39 files; +23 new across density/selection/filter-collapse/format/table/rail suites) ·vite buildok. Reviewer pass: SHIP; stale-selection aria MINOR fixed. Deferred follow-ups noted in the program report: retire ReviewCard's now-unreachable "compact" branch, swap the hand-rolled filter dropdown for a base-ui menu.🤖 Generated with Claude Code