UI redesign: Panel layout with focusable command bar - #1
Merged
Conversation
- Replace all screens with consistent PanelLayout framework (header/content/command bar) - Add Tab-focusable command bar with [X] bracket-style hotkey display - Main menu shows Figlet ASCII tiger logo + command bar only (no list) - Flicker-free list navigation using in-place cursor updates - Dim gray borders, blue hotkeys for visual hierarchy - Convert all browsers to CommandBarItem-based command bars - Remove legacy string-hotkey SelectInPanel overload - Fix SQLite test isolation (ClearPool in Dispose) - Update AGENTS.md with full UI conventions documentation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- BuildBrowser: test list, test detail, test builds, job list, helix work items - TestBrowser: test detail and test builds now match BuildBrowser's panel style - Filter menu redesigned with description + current filter in content area - Filter help uses RenderDetailPanel - Add BrowserUI.RenderTestDetailInPanel for shared panel-aware test rendering - Add PanelLayout.BuildCommandBarString for static command bar footers - Dynamic page size calculation ensures command bar always stays visible Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
RenderDetailPanel now captures content lines and paginates them to fit the terminal height. When content exceeds available space, a scroll indicator appears in the footer and Up/Down/PageUp/PageDown keys scroll the view. Key changes: - RenderPanelLine/RenderEmptyLine buffer lines during capture phase - RenderDetailPanelFrame renders a page of content with padding - HandleDetailScroll(key) lets callers add scroll support with one line - All detail views (build, test, helix) now support scrolling This fixes the Helix section being invisible in test detail views when error messages and stack traces push it below the terminal height. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace all Unicode symbols with ASCII equivalents (they rendered as ? in Windows Terminal): arrows, checkmarks, bullets, etc. - Helix work items in build detail now show: X <work item> <job> <exit code> <deadletter> - Fix scroll redraw bug: use Console.Clear() + SetCursorPosition(0,0) instead of AnsiConsole.Clear() which didn't properly reset - Truncate long lines in RenderPanelLineDirect to prevent wrapping that pushes the frame off-screen Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Delete PanelLayout.cs static facade - Create PanelRenderer.cs backed by IAnsiConsole for full testability - Thread PanelRenderer instance through all browser/command classes - Add PanelRenderer parameter to BrowserUI.RenderTestDetailInPanel - Add 26 PanelRenderer unit tests using Spectre.Console.Testing - All rendering, input, cursor, and clear operations go through IAnsiConsole Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Rename section title to 'Failed Helix Work Items' for consistency - Helix drill-down now uses same format as build summary: X <item> <job> exit <code> <deadletter> - Add 3 tests verifying helix display format Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tom border - Spectre's Cursor.SetPosition passes directly to ANSI CUP (1-based), so add +1 to all row calculations for partial redraw - Remove trailing newline from bottom border to prevent terminal scroll when frame fills the screen (which shifts all absolute positions) - Add SpyConsole test helper that records SetPosition calls - Add tests verifying correct row targeting (fail without fix, pass with) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Show full AzDO build URL in 'Last Failed Build' field - Add HelixExitCode to TestDetailInfo, display with color in Helix section - Add [T]runcate toggle to test detail in both BuildBrowser and TestBrowser - Add TruncationEnabled property to PanelRenderer for line wrap control Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- PromptInPanel was positioning '> ' cursor at row -4 (prompt line) instead of row -3 (empty input line), overwriting text like 'fi' in 'Definition' - Replaced System.Console with deterministic row counting + IAnsiConsole Cursor.SetPosition and Markup for character echo (fully testable now) - Converted PromptKindFilter to use SelectInPanel (renders in panel) - Fixed filter menu exit: only Escape returns (not any unhandled key) - Added 8 tests: PromptInPanel cursor position, text capture, PromptKindFilter Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Simple build + test pipeline for pull requests and pushes to main. Uses .NET 10 preview SDK on ubuntu-latest. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Radical redesign of the interactive dashboard UI to a consistent "command and control" panel layout.
Changes
Core UI Framework
IAnsiConsolefor all rendering, input, and layout[X]bracket hotkey format throughoutBuild Browser
[T]runcatetoggle for detail viewsTest Browser
[T]runcatetoggle matching build browserTesting
CI