Repository navigation
Remove dashboard terminal navigation entry points - #20528
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e3a279f5-bf3d-4d19-8eb9-2ffec231cce2
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20528Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20528" |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The focused UI removal is consistent across implementation, documentation, and regression coverage.
Review effort: Balanced
Findings: None
What changed in this PR
Removes the desktop terminal header button while preserving keyboard and mobile terminal access.
Changes:
- Removes the desktop header button and unused localizer injection.
- Updates terminal documentation.
- Adds regression coverage for desktop shortcut behavior and mobile access.
| File | Description |
|---|---|
MainLayout.razor |
Removes the desktop terminal button. |
MainLayout.razor.cs |
Removes the unused terminal localizer. |
TerminalDock.razor.cs |
Updates toggle API documentation. |
MainLayoutTerminalTests.cs |
Updates and extends terminal access tests. |
with-terminal.md |
Documents desktop and mobile access. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
James Newton-King (JamesNK)
left a comment
There was a problem hiding this comment.
1 requested change
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e3a279f5-bf3d-4d19-8eb9-2ffec231cce2
Tests selector13 / 99 PR test projects · 2 PR jobs, from 6 changed files. Selected PR test projects (13 / 99)
Selected PR jobs (2)
How these were chosen — grouped by what changed
🔧 📦 affected project 🧪 🧪 Job reasons
Selection computed for commit |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
/backport to release/13.6 |
|
Started backporting to |
|
Mitch Denny (@mitchdenny) an error occurred while backporting to |
|
Pull request created: #1784
|
|
📝 Documentation has been drafted in microsoft/aspire.dev#1784 targeting Signal Note This draft PR needs human review before merging. |
) Backport of #20528 to release/13.6 /cc @mitchdenny ## Customer Impact Intentionally removes the Terminals button from the desktop dashboard header and the Terminal entry from the mobile navigation menu to reduce navigation clutter. The backtick (`) shortcut remains available to open, collapse, and reopen the terminal dock on both layouts. Removing touch-only manual opening is a deliberate team decision; automatic terminal opening remains unchanged. ## Testing On this `release/13.6` backport, all **126** focused `MainLayoutTests`, `TerminalDockTests`, and `MobileNavMenuTests` passed on `net11.0` (0 failed, 0 skipped), including shortcut open/collapse/reopen on both layouts, absence of navigation entry points, resource-service gating, and live/historical run selection. Quarantined and outerloop tests were excluded. ```bash dotnet test --project tests/Aspire.Dashboard.Components.Tests/Aspire.Dashboard.Components.Tests.csproj --no-launch-profile -- --filter-class '*.MainLayoutTests' --filter-class '*.TerminalDockTests' --filter-class '*.MobileNavMenuTests' --filter-not-trait 'quarantined=true' --filter-not-trait 'outerloop=true' ``` The source PR separately passed 128 focused tests on `main` and was manually verified in Chromium with the live CustomResources dashboard: no terminal button in the desktop header, and the backtick shortcut opens and closes the dock. That browser verification was performed on the source change, not repeated on the release branch. ### Screenshots / Recordings Source PR Chromium verification (not a new release-branch capture):  ## Risk Low. Localized navigation removal with no changes to terminal lifetime, keyboard shortcut behavior, or automatic opening. The accepted limitation is that touch-only users no longer have a navigation control for manually opening the dock. The exact squash commit `da280d0b8fd86aa9b4a8ca4abd76488d53805d88` applied cleanly without conflict resolution or patch changes. ## Regression? No — intentional UX change, not a regression fix. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: cefa6302-c433-4ef8-86bc-69c5e6bbedce
Documents changes from microsoft/aspire#20528 Author: ``@mitchdenny`` Targeting `release/13.6` — the latest release branch on `microsoft/aspire.dev` — because `release/14.0` (from the source PR milestone `14.0`) does not exist there (`target_resolution`: `latest_release_fallback`). **Why:** The source PR removed the dashboard's top-right Terminals button and the mobile Terminal menu entry. The backtick shortcut is now the only manual way to open the terminal dock. Triggered signal: `pr_body_has_user_facing_section`. **Changes:** Updated the existing page `src/frontend/src/content/docs/dashboard/explore.mdx` (Interactive terminals section) to describe the backtick shortcut, the absence of header or mobile menu entries, and F6 focus behavior. > Generated by [PR Documentation Check](https://github.com/microsoft/aspire/actions/runs/36478835539) for #20528 · copilot · auto · 29.5 AIC · ⌖ 13.9 AIC · ⊞ 20.2K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Faspire.dev+%22gh-aw-workflow-id%3A+pr-docs-check%22&type=pullrequests) <!-- gh-aw-agentic-workflow: PR Documentation Check, engine: copilot, model: auto, id: 36478835539, workflow_id: pr-docs-check, run: https://github.com/microsoft/aspire/actions/runs/36478835539 --> <!-- gh-aw-workflow-id: pr-docs-check --> <!-- gh-aw-workflow-call-id: microsoft/aspire/pr-docs-check --> --------- Co-authored-by: aspire-repo-bot[bot] <268009190+aspire-repo-bot[bot]@users.noreply.github.com> Co-authored-by: Maddy Montaquila <maddyleger1@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Dashboard outerloop tests timed out waiting for a terminal header button removed by #20528. The empty-dock and focus-preservation scenarios still treated that button as available. Open the empty dock from an AppHost activation snapshot and move focus to the settings button after collapse. This preserves the layout and focus assertions without restoring removed navigation UI. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Dashboard Playwright tests initialize the shared layout, which now subscribes to terminal updates even in scenarios that do not configure terminals. The mock threw during that initialization, and terminal-dock tests still targeted the header button removed by #20528. Return a completed empty terminal stream from the shared mock. Open the empty dock through AppHost activation and use the settings button as the surviving focus target after collapse. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
## Description
The scheduled outerloop run exposed two independent setup and
test-contract regressions:
```text
error: release version 21 not supported
System.TimeoutException: Timeout 30000ms exceeded.
- waiting for GetByRole(AriaRole.Button, new() { Name = "Toggle terminal (`)", Exact = true })
```
The CLI Maven reactor tests are outerloop-only, but `Aspire.Cli.Tests`
did not advertise its Java requirement, so specialized jobs could run
with an older JDK. Dashboard shared-layout initialization also
subscribes to terminal updates in Playwright tests that do not configure
terminals, where the mock previously threw. Separately, two
terminal-dock scenarios still targeted the navigation button
intentionally removed by #20528.
Mark `Aspire.Cli.Tests` as requiring Java only when
`RunOuterloopTests=true`, return a completed empty terminal stream from
the shared Dashboard mock, and update the terminal-dock scenarios to use
the supported AppHost activation path and a surviving settings-button
focus target.
Validation:
- `CiWorkflowTests`: 7 passed.
- Dashboard accessibility matrix: 13 passed.
- CLI outerloop jobs: all 14 tests passed on macOS, Ubuntu, and Windows.
- `TerminalDockTests`: all 7 outerloop cases passed locally on macOS
arm64.
## Checklist
- Is this feature complete?
- [x] Yes. Ready to ship.
- [ ] No. Follow-up changes expected.
- Are you including unit tests for the changes and scenario tests if
relevant?
- [x] Yes
- [ ] No
- Did you add public API?
- [ ] Yes
- [x] No
- Does the change make any security assumptions or guarantees?
- [ ] Yes
- [x] No
---------
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Description
Reduce dashboard navigation clutter by removing the top-right Terminals button and the mobile Terminal menu entry. The backtick shortcut remains the manual entry point for opening the dock on both layouts. Terminal lifecycle and automatic opening behavior are unchanged.
Removes unused navigation callbacks, component references, and localizers; updates terminal access documentation and layout regression coverage.
User-facing usage
On desktop and mobile layouts, press the backtick (`) key to open, collapse, or reopen the terminal dock. Shortcut suppression while typing in a terminal or text input is unchanged; press F6 to move focus to terminal footer controls first. Neither the desktop header nor the mobile navigation menu contains a terminal entry point.
Validation
Passed all 128 focused
MainLayoutTests,TerminalDockTests, andMobileNavMenuTests, including shortcut open/collapse/reopen on both layouts, absence of the navigation entry points, resource-service gating, and live/historical run selection.Also launched the branch-built dashboard with the CustomResources playground AppHost and verified in Chromium that the desktop header has no terminal control and the backtick shortcut opens and closes the live terminal dock.
Screenshots / Recordings
Desktop Resources page with a live AppHost, showing the top-right header cluster without the terminal icon:
Fixes # (issue)
Checklist
<remarks />and<code />elements on your triple slash comments?