Skip to content

UX-1469: fix breadcrumb navigation while topic messages are loading - #2641

Merged
jvorcak merged 1 commit into
masterfrom
UX-1469-fix-breadcrumb-messages-loading-race
Sep 11, 2026
Merged

UX-1469: fix breadcrumb navigation while topic messages are loading#2641
jvorcak merged 1 commit into
masterfrom
UX-1469-fix-breadcrumb-messages-loading-race

Conversation

@jvorcak

@jvorcak jvorcak commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • The current topic's own breadcrumb was a real link to its bare path (no search/hash), so clicking it dropped query params (filters, pagination, active tab). It now renders as non-navigable text, like a standard breadcrumb "current page" crumb.
  • Clicking the parent "Topics" breadcrumb while a message search is still in flight could race a queued nuqs URL update: the update flushes ~50-90ms later using a now-stale relative route match, and TanStack Router silently interpolates the literal string "undefined" into the path, landing on /topics/undefined (404). The topic details route now guards against topicName === 'undefined' and redirects back to /topics.
  • Hardened error-message handling in the topic message search (Tab.Messages/index.tsx) and the default route error boundary (route-error.tsx) so a non-Error rejection never renders the literal text undefined to the user.

Test plan

  • bun run type:check
  • bun run lint
  • bun run test:integration -- components/layout/header
  • bun run test:integration -- route-error
  • bun run test:integration -- topics/\$topicName
  • bun run test:integration -- Tab.Messages

Clicking the current topic's own breadcrumb re-navigated to its bare
path, dropping query params (filters, pagination, active tab); it now
renders as non-navigable text instead. Clicking the "Topics" breadcrumb
while a message search is in flight could race a queued nuqs URL
update and land on /topics/undefined; the topic details route now
redirects that back to /topics. Also hardens error-message handling
in the message search and the default route error boundary so a
non-Error rejection never renders the literal text "undefined".
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Clean — no registry drift, off-token colours, or ad-hoc classes

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

Count
⚠️ Outdated registry components 0
🛠 Locally-modified components 0
❓ Unknown to registry 0
🎨 Off-token palette colours 0
🔢 Ad-hoc utility classes 0

Generated by lookout audit-changes.

@jvorcak
jvorcak requested a review from a team September 9, 2026 13:52

@SpicyPete SpicyPete left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good, Claude is flagging some issues, but they are mostly around the old security page.

Can the older security page be merged soonish to simplify things?

@jvorcak
jvorcak merged commit 43ba5de into master Sep 11, 2026
17 checks passed
@jvorcak
jvorcak deleted the UX-1469-fix-breadcrumb-messages-loading-race branch September 11, 2026 07:45
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.

2 participants