Skip to content

Fix/daemon failure toast#3017

Merged
codebanditssss merged 2 commits into
mainfrom
fix/daemon-failure-toast
Jul 23, 2026
Merged

Fix/daemon failure toast#3017
codebanditssss merged 2 commits into
mainfrom
fix/daemon-failure-toast

Conversation

@Annieeeee11

Copy link
Copy Markdown
Collaborator

Summary

  • Relocate DaemonFailureBanner out of <main> so it overlays the shell instead of consuming layout height.
  • Restyle it as a fixed top-right panel using import-modal surface/border/text tokens (rounded panel + shadow).
  • Keep show/copy details behavior; details expand below the toast body.

Test plan

  • Force a daemon failure (e.g. bad daemon binary / exit) and confirm the toast appears top-right without shifting the board/import layout.
  • Confirm title, message, status code chip, Show/Hide details, and Copy details still work.
  • Confirm the toast stays visible over sidebar + main content and doesn’t block critical chrome unduly.
  • Spot-check light/dark if import-modal tokens differ by theme.

Before

image

After

image image

Move the banner out of the main column into a fixed top-right panel so it
no longer pushes board/import content, and restyle it with the import-modal tokens.
Replace hardcoded toast width and details max-height with design tokens
so the floating banner stays on the size scale.
@Annieeeee11 Annieeeee11 self-assigned this Jul 23, 2026

@codebanditssss codebanditssss left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

correct and clean. moving the banner out of <main> to a fixed-position sibling makes it overlay instead of consuming layout height, which is the shift-the-board bug this fixes. the content restructure is logically equivalent, details still expand on toggle and role="alert" + buttons + code chip are preserved, and the existing DaemonFailureBanner.test.tsx (not in the diff) asserts on behavior rather than layout classes so it stays green and still covers the component.

verified a few things:

  • --space-6 is defined (24px), so the new @utility w-daemon-failure-toast calc(100vw - var(--space-6)) clamp is valid, and it mirrors the existing w-dialog-* pattern.
  • new tokens follow convention; the details max-h token (10rem) equals the old max-h-40.
  • z-overlay is the standard overlay layer.

nits (non-blocking):

  • reusing import-modal tokens (--color-bg-import-modal, --color-text-import-title, etc.) for a daemon toast couples it to the import modal's theme. visually consistent, but semantically it borrows another component's tokens.
  • wrap-break-word is new here; the rest of the codebase uses break-words (both valid v4, same effect) so minor inconsistency.
  • top-right placement could overlap the topbar controls (bell / Kill / Orchestrator). your own test plan flags this, worth a glance at the after-screenshots, though those controls are effectively dead while the daemon is down.
  • pointer-events-auto is redundant with no pointer-events-none parent, harmless.

approving.

@codebanditssss
codebanditssss merged commit 1a8b16c into main Jul 23, 2026
4 checks passed
@Annieeeee11
Annieeeee11 deleted the fix/daemon-failure-toast branch July 23, 2026 19:09
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