Skip to content

fix(search): format diagnostic panel as a popover to prevent footer overlap - #3634

Merged
GCWing merged 3 commits into
GCWing:mainfrom
Raing5Days:fix/search-everything-diagnostics-ui
Oct 31, 2026
Merged

GCWing merged 3 commits into
GCWing:mainfrom
Raing5Days:fix/search-everything-diagnostics-ui

Conversation

@Raing5Days

@Raing5Days Raing5Days commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Search Everything source diagnostics used to expand inside a fixed-height footer, causing diagnostic text to overlap healthy search results. Show those details in a bounded, scrollable popover above the footer instead. Fixes #3628.

  • Register the diagnostics surface through the shared @openbitfun/ui Portal with its trigger as owner. The overlay coordinator owns stacking, Escape, and outside-pointer dismissal.
  • Use the existing anchored-popover positioning helper to escape ancestor clipping and stay within the viewport.
  • Provide a named dialog and an accessible toggle. Focus enters the diagnostics after positioning; Escape returns focus to the trigger, while outside dismissal preserves the clicked control's focus.
  • Dismiss diagnostics before a group detail page or the search Dialog, and prevent a single outside pointer gesture from closing multiple layers.
  • Preserve source retry, the query, healthy results, and existing host/workspace diagnostic fields. Remove stale diagnostics on a device switch.
  • Reuse canonical semantic color and typography tokens and document the focused verification command.

Validation

  • Focused search, overlay ownership, Dialog, menu, notification, context-menu, icon and startup suites: 20 files / 174 tests passed.
  • pnpm run check:web: passed, including typography, Appearance contracts, all 28 color-audit surfaces, theme visual contracts and TypeScript.
  • pnpm --dir src/web-ui run icons:check: passed.
  • ESLint on the changed production TypeScript component and git diff --check: passed.

The DOM tests use the production search Dialog and overlay coordinator. They cover successive Escape dismissal from the diagnostics and query field, IME Escape, focus return and modal focus ownership, outside clicks, group-detail dismissal, viewport positioning, retry and simulated Peer device changes.

Scope and verification limits

No search-provider, transport, persisted-data or wire-contract changes. Remote checks are simulated Peer identity switches and remote-looking diagnostic fixtures; live SSH workspaces, Remote Control, Peer Device connections and Detached Dispatch were not exercised. Native visual rendering was not verified with browser or computer automation.

AI-assisted implementation and tests with Codex.

Raing5Days and others added 3 commits October 30, 2026 20:41
…verlap

When search source diagnostics are expanded in the footer, the content previously
overflowed and vertically centered over the healthy results due to footer flex sizing
and lack of an elevated background.

Render the diagnostics as an absolute popover panel positioned above the footer summary,
styled with raised background, subtle border and overlay shadow. Add escape and
click-outside handling to close the panel cleanly.

Fixes GCWing#3628
The theme color audit contract rejects `var(--token, fallback)` usages whose
tokens are not registered with a fallback boundary contract. The new diagnostic
popover introduced five such fallbacks, failing `theme:color-audit:test`.

Use the canonical tokens directly. `--openbitfun-type-body-line-height` does
not exist in the design tokens, so pair the copy with
`--openbitfun-type-body-sm-line-height` instead.
@GCWing
GCWing merged commit d2cb99e into GCWing:main Oct 31, 2026
9 checks passed
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.

[Bug]: 搜索一切界面的ui 问题

2 participants