feat(log-viewer): redesign the header's problems and notifications surfaces - #889
Merged
lcottercertinia merged 3 commits intoJul 30, 2026
Merged
Conversation
…ntrols Unify three near-duplicate notification/problem models into one LogIssue, replace two hand-rolled absolute-positioned panels with a single native-popover shell, and fold help and report-an-issue into a ••• meta menu that also holds whatever the header collapses into it as it narrows. - log problems: worst-severity glyph + count badge, monochrome like every other header glyph; severity colour stays in the panel rows and the timeline - notifications: bell + corner badge, opening a positive empty state - measured progressive-collapse ladder (meta, bell, Inspector, problems) replacing the single 420px breakpoint - fix Report an issue rendering as a blue underlined link beside plain menu rows
Each card now carries a 3px rail in the colour the timeline draws for the same issue, a summary and message that each clamp to two lines, and a stack trace that keeps its line breaks in the editor font. Clicking the message expands it; clicking the card runs its action. Activation is injected rather than built in: LogIssue carries an opaque IssueAction supplied by whoever produced the issue, so the list no longer knows about the call tree and any surface can reuse it. An unsupported log event reports itself through a prefilled GitHub bug report; an invalid log line stays static, since its text can carry customer data.
…tching-boot # Conflicts: # jest.config.js
lcottercertinia
approved these changes
Jul 30, 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.
Redesigns the two header controls that looked like siblings but aren't the same kind of thing: Log problems (facts about the user's transaction) on the left, Notifications (facts about our parser) behind the bell on the right.
Header bar
title/aria-label. Monochrome chrome, coloured content — colour lives in the panel rows and the timeline.popovershell (AnchoredPopover), replacing two hand-rolled absolutely-positioned panels. Light-dismiss andEscapecome for free. They open at zero with a positive empty state.•••menu.•••, which never collapses. Stage is a pure function of width, reusing the existingcomputeVisibleCount.LogIssue.Issue cards
MARKER_COLORSso the canvas and the DOM can't drift.LogIssuecarries an opaqueIssueActionsupplied by whoever produced the issue, so the list no longer imports fromfeatures/call-treeand any surface can reuse it.Unsupported log event namecard opens a prefilled GitHub bug report (title/labels matching the bug template). AnInvalid log linecard stays static — its text can echo customer data. TheopenUrlwebview message is guarded tohttps:URIs.Testing
tsc -b, eslint and prettier clean; 89 suites / 1241 tests pass; production build OK. Verified in a dev host againstsample-appin light and dark themes: clean log,FATAL ERRORlog, a >20MB truncated log and an unsupported-event log; the collapse ladder walked wide to narrow; a second log load carries nothing over.