Skip to content

feat: new topic messages page behind enableNewTopicMessagesPage flag - #2588

Draft
jvorcak wants to merge 6 commits into
masterfrom
UX-new-message-detail-page
Draft

feat: new topic messages page behind enableNewTopicMessagesPage flag#2588
jvorcak wants to merge 6 commits into
masterfrom
UX-new-message-detail-page

Conversation

@jvorcak

@jvorcak jvorcak commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Redesigned messages UX (from the Console Messages UX prototype):

  • Read scope popover (newest/oldest/offset/timestamp) with live tail in the menu, continuous pagination for newest/oldest only, and an illustrated "how reading starts" doc sheet
  • Filter bar with typed tokens (partition:1, offset>5, key:abc), autocomplete with value suggestions and ghost completion, keyboard chip editing (ArrowLeft unwraps a badge into editable text, Enter recommits in place), and JS predicate filters with live preview
  • Field filters, partition, quick search and selected message persist in the URL; JS filters stay in sessionStorage
  • Message detail as docked resizable panel or expanded sheet, with persisted view state (mode, widths, section expansion) and a metadata table, headers grid and troubleshoot reports
  • View settings sidebar: row density, drag-reorderable columns with per-column config (timestamp format, deserializers, preview fields)
  • Quick info stats rebuilt on the registry Stat component

Fixes surfaced while building it:

  • assignDeep now replaces arrays wholesale; the index-wise merge mutated shared elements through the uiSettings sync and corrupted reordered arrays (duplicate/lost message columns after drag'n'drop); getMessageColumns heals already-corrupted persisted entries
  • SidebarInset gets min-w-0 so wide content (messages table) scrolls inside its container instead of widening the page past the viewport

jvorcak added 4 commits July 31, 2026 13:24
Redesigned messages UX (from the Console Messages UX prototype):

- Read scope popover (newest/oldest/offset/timestamp) with live tail in
  the menu, continuous pagination for newest/oldest only, and an
  illustrated "how reading starts" doc sheet
- Filter bar with typed tokens (partition:1, offset>5, key:abc),
  autocomplete with value suggestions and ghost completion, keyboard
  chip editing (ArrowLeft unwraps a badge into editable text, Enter
  recommits in place), and JS predicate filters with live preview
- Field filters, partition, quick search and selected message persist
  in the URL; JS filters stay in sessionStorage
- Message detail as docked resizable panel or expanded sheet, with
  persisted view state (mode, widths, section expansion) and a
  metadata table, headers grid and troubleshoot reports
- View settings sidebar: row density, drag-reorderable columns with
  per-column config (timestamp format, deserializers, preview fields)
- Quick info stats rebuilt on the registry Stat component

Fixes surfaced while building it:

- assignDeep now replaces arrays wholesale; the index-wise merge
  mutated shared elements through the uiSettings sync and corrupted
  reordered arrays (duplicate/lost message columns after drag'n'drop);
  getMessageColumns heals already-corrupted persisted entries
- SidebarInset gets min-w-0 so wide content (messages table) scrolls
  inside its container instead of widening the page past the viewport
Standalone dev no longer seeds initialFlags from constants.ts defaults
overlaid with debug-dialog overrides; back to only E2E globals.
Replace arbitrary pixel font sizes (text-[10px], text-[11px], text-[12.5px],
text-[13px]) with the semantic text-caption/text-body-sm/text-label
utilities from the redpanda-ui typography scale.
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

🚨 Registry drift detected

App: frontend · Scope: diff vs origin/master · Files: 47

Count
⚠️ Outdated registry components 3
🛠 Locally-modified components 1
❓ Unknown to registry 0
🎨 Off-token palette colours 6
🔢 Ad-hoc utility classes 10
Components needing attention
Status Component Uses Detail
⚠️ outdated combobox installed 2.4.0 → latest 2.4.1
⚠️ outdated data-table installed 2.4.0 → latest 2.4.1
⚠️ outdated tabs installed 2.4.0 → latest 2.4.1
🛠 locally-modified theme no tagged release matches installed bytes

Refresh command:

bunx shadcn@latest add @redpanda/combobox @redpanda/data-table @redpanda/tabs --overwrite
🎨 Off-token colours (palette literals)

Use semantic tokens (primary, muted-foreground, border, …) instead of raw palette names.

Class Uses Files
green-600 8 4
green-100 5 4
green-400 2 1
green-700 2 1
green-200 1 1
green-900 1 1
🔢 Ad-hoc utility classes (arbitrary values)

These bypass the design tokens. Prefer a named scale entry or add a new token.

Class Category Uses Files
text-[10px] 🔢 text-size 7 4
text-[13px] 🔢 text-size 7 3
text-[10.5px] 🔢 text-size 6 3
text-[11px] 🔢 text-size 6 4
rounded-[2px] 🔢 radius 3 1
text-[12.5px] 🔢 text-size 2 2
rounded-[3px] 🔢 radius 1 1
text-[13.5px] 🔢 text-size 1 1
text-[15px] 🔢 text-size 1 1
text-[9px] 🔢 text-size 1 1

Generated by lookout audit-changes.

jvorcak added 2 commits August 4, 2026 09:40
StatGroup now uses CSS subgrid so stat values align on a shared
baseline across a row even when labels wrap.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant