Web client redesign and UI bug fixes #76

Merged
Breadway merged 1 commit from feature/web-redesign into main 2026-10-01 16:44:14 +08:00
Owner

Implements the approved redesign of apps/web (BB-76) and fixes the 12 UI bugs found while auditing it.

What changes

  • Sidebar with views, cycles (progress rings) and projects (open counts) replaces the header filter row. Filters become removable chips; "+ Filter" searches projects, cycles and epics. The assignee dropdown folds into "Assigned to me".
  • Board: cycle strip (dates, days left, status mix, points done), readable column headers with point totals, cards with status/priority glyphs, project ticks, label dots, PR chips, sync mark and avatar. Doing is yolk yellow, so it no longer matches the selection accent.
  • Issue panel: property grid of menus, relation rows, merged comment + activity timeline (ids shown as names), full-width composer, delete behind an inline confirm. It reads fields from the store.
  • Palette: grouped results with glyphs and highlighted matches, plus quick fields !high #bug @me ^KEY ~3. Tab opens the extra-fields panel. The "+" on a column creates in that status.
  • Backlog grouped by status (Done collapsed by default); Roadmap with epics as rows and cycles as columns, epic actions in a menu; Inbox view in place of the bell dropdown.
  • Info vs error toasts, Undo after a move, a phone layout below 860px (bottom tab bar, swipeable columns), and #KEY deep links from "Copy link".
  • Fonts are self-hosted via @fontsource, so the Tauri app doesn't fetch them from the network.

Bugs fixed

Closes BB-77 (header controls off-screen below ~1150px)
Closes BB-78 (drawer stale after drag / live events)
Closes BB-79 (Ctrl+C opened the palette)
Closes BB-80 (Esc in palette also closed the drawer)
Closes BB-81 (fractional estimate 422): points are a whole-number menu
Closes BB-82 (no resync after SSE reconnect)
Closes BB-83 (stuck on "connecting…"): error screen, backoff retry, Retry button
Closes BB-84 (stale response race in the drawer)
Closes BB-85 (failed saves left the rejected value showing)
Closes BB-86 (confirmations used the red error toast)
Closes BB-87 (invisible column counts)
Closes BB-88 (Ctrl+K moved the board cursor)

Verification

  • svelte-check: 0 errors, 0 warnings. npm run build -w breadboard-web passes.
  • Ran against a local breadboard-server (scratch DB, dev login) with 20 seeded issues and drove it in headless Chromium. Re-ran the original reproductions: the drawer follows a drag and Undo reverts it, Esc in the palette leaves the drawer open, Esc closes a menu before the panel, Ctrl+C doesn't open the palette, Ctrl+K doesn't move the board cursor, and nothing overflows the page at 1000px. Creating with !high #bug ~3 @me ^BB set every field. No console errors.
  • BB-82, BB-83 and BB-84 are fixed by code change but weren't triggered end to end (they need a dropped stream, a down server, or out-of-order responses).

Notes for review

  • Default token values shift slightly warmer; bread-theme overrides still apply since new tokens are derived from the base six with color-mix.
  • In the Vite dev proxy the live dot reads "offline" for the first ~15s, until the server's first keep-alive. Behind Caddy, headers flush at once. Pre-existing, not changed here.
  • The server's SSE handler drops Lagged errors silently (http.rs events), so a slow client can miss events without reconnecting. Out of scope for this PR; worth its own issue.
Implements the approved redesign of `apps/web` (BB-76) and fixes the 12 UI bugs found while auditing it. ## What changes - **Sidebar** with views, cycles (progress rings) and projects (open counts) replaces the header filter row. Filters become removable chips; "+ Filter" searches projects, cycles and epics. The assignee dropdown folds into "Assigned to me". - **Board**: cycle strip (dates, days left, status mix, points done), readable column headers with point totals, cards with status/priority glyphs, project ticks, label dots, PR chips, sync mark and avatar. Doing is yolk yellow, so it no longer matches the selection accent. - **Issue panel**: property grid of menus, relation rows, merged comment + activity timeline (ids shown as names), full-width composer, delete behind an inline confirm. It reads fields from the store. - **Palette**: grouped results with glyphs and highlighted matches, plus quick fields `!high #bug @me ^KEY ~3`. Tab opens the extra-fields panel. The "+" on a column creates in that status. - **Backlog** grouped by status (Done collapsed by default); **Roadmap** with epics as rows and cycles as columns, epic actions in a menu; **Inbox** view in place of the bell dropdown. - Info vs error toasts, Undo after a move, a phone layout below 860px (bottom tab bar, swipeable columns), and `#KEY` deep links from "Copy link". - Fonts are self-hosted via @fontsource, so the Tauri app doesn't fetch them from the network. ## Bugs fixed Closes BB-77 (header controls off-screen below ~1150px) Closes BB-78 (drawer stale after drag / live events) Closes BB-79 (Ctrl+C opened the palette) Closes BB-80 (Esc in palette also closed the drawer) Closes BB-81 (fractional estimate 422): points are a whole-number menu Closes BB-82 (no resync after SSE reconnect) Closes BB-83 (stuck on "connecting…"): error screen, backoff retry, Retry button Closes BB-84 (stale response race in the drawer) Closes BB-85 (failed saves left the rejected value showing) Closes BB-86 (confirmations used the red error toast) Closes BB-87 (invisible column counts) Closes BB-88 (Ctrl+K moved the board cursor) ## Verification - `svelte-check`: 0 errors, 0 warnings. `npm run build -w breadboard-web` passes. - Ran against a local `breadboard-server` (scratch DB, dev login) with 20 seeded issues and drove it in headless Chromium. Re-ran the original reproductions: the drawer follows a drag and Undo reverts it, Esc in the palette leaves the drawer open, Esc closes a menu before the panel, Ctrl+C doesn't open the palette, Ctrl+K doesn't move the board cursor, and nothing overflows the page at 1000px. Creating with `!high #bug ~3 @me ^BB` set every field. No console errors. - BB-82, BB-83 and BB-84 are fixed by code change but weren't triggered end to end (they need a dropped stream, a down server, or out-of-order responses). ## Notes for review - Default token values shift slightly warmer; bread-theme overrides still apply since new tokens are derived from the base six with `color-mix`. - In the Vite dev proxy the live dot reads "offline" for the first ~15s, until the server's first keep-alive. Behind Caddy, headers flush at once. Pre-existing, not changed here. - The server's SSE handler drops `Lagged` errors silently (`http.rs` events), so a slow client can miss events without reconnecting. Out of scope for this PR; worth its own issue.
Web client redesign and UI bug fixes
Some checks failed
check / check (push) Failing after 3s
c98668a62c
New layout: a sidebar with views, cycles (progress rings) and projects
(open counts) replaces the header filter row, so nothing is pushed
off-screen on narrow windows. Filters become removable chips, and the
assignee dropdown folds into "Assigned to me".

Board: a cycle strip with dates, days left, status mix and points done;
readable column headers with point totals; cards with status and
priority glyphs, project ticks, label dots, PR chips and avatars. Doing
gets its own colour so it no longer matches the selection accent.

Issue panel: a property grid of menus, relation rows, a merged comment
and activity timeline, a full-width composer, and delete behind a
confirm. Fields are read from the store, so board drags and live events
show immediately and refused saves revert on their own.

Also: palette with grouped results and quick fields (!high #bug @me
^KEY ~3), backlog grouped by status, a roadmap with cycles as columns,
an Inbox view in place of the bell dropdown, info vs error toasts with
Undo for moves, a phone layout below 860px, an error screen with retry
when the server is unreachable, resync after an SSE reconnect, #KEY deep
links, and self-hosted fonts so the desktop app needs no network for
them.

Fixes BB-77 BB-78 BB-79 BB-80 BB-81 BB-82 BB-83 BB-84 BB-85 BB-86
BB-87 BB-88. Part of BB-76.
Author
Owner

PR #76 implements this redesign and closes BB-77 through BB-88. The existing PR has local Svelte, build, seeded-server, and headless Chromium evidence recorded on BB-76. This card is synchronized to REVIEW for the current implementation handoff.

PR #76 implements this redesign and closes BB-77 through BB-88. The existing PR has local Svelte, build, seeded-server, and headless Chromium evidence recorded on BB-76. This card is synchronized to REVIEW for the current implementation handoff.
Breadway deleted branch feature/web-redesign 2026-10-01 16:44:14 +08:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/breadboard!76
No description provided.