Upgrade Spectre.Console to 0.56.0 to fix #17307 OSC8 link wrapping bug#18092
Upgrade Spectre.Console to 0.56.0 to fix #17307 OSC8 link wrapping bug#18092maddymontaquila wants to merge 1 commit into
Conversation
Fixes: #17307 ## Root Cause The 'Logs' and 'Dashboard' links in 'aspire ps' output were not clickable at default terminal window size (80 chars). This is due to Spectre.Console #2124, where OSC8 terminal link markup loses its link attributes when wrapped in grid cells during line-wrapping. ## Solution Upgrade Spectre.Console from 0.55.2 to 0.56.0, which includes the fix from Spectre PR #2135 ("Preserve links in segments", merged 2026-06-05). The 0.56.0 release includes proper OSC8 link preservation across segment manipulation during text wrapping. ## Verification - Unit tests: All 28 PsCommandTests passed - E2E tests: Both PsCommand e2e tests passed (3m 43s) - Upstream fix: Spectre.Console 0.56.0 (published 2026-06-05) includes PR #2135 fix commit Related issues: - spectreconsole/spectre.console#2124 - spectreconsole/spectre.console#2135 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 18092Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 18092" |
There was a problem hiding this comment.
Pull request overview
This PR bumps the Spectre.Console dependency from 0.55.2 to 0.56.0 to resolve issue #17307, where OSC8 terminal hyperlinks in aspire ps output became unclickable when line-wrapping occurred at default terminal width. The fix is entirely upstream (spectreconsole/spectre.console#2135 — "Preserve links in segments"), requiring only a version bump with no Aspire code changes.
Changes:
- Upgraded
Spectre.Consolepackage version from0.55.2to0.56.0in central package management
Show a summary per file
| File | Description |
|---|---|
| Directory.Packages.props | Bumps Spectre.Console version from 0.55.2 to 0.56.0 to pick up the upstream OSC8 link-wrapping fix |
Copilot's findings
- Files reviewed: 1/1 changed files
- Comments generated: 0
|
Re-running the failed jobs in the CI workflow for this pull request because 3 jobs were identified as retry-safe transient failures in the CI run attempt.
Matched test failure patterns (1 test)
|
|
❌ CLI E2E Tests failed — 112 passed, 1 failed, 2 unknown (commit ❌ Failed Tests
View all recordings
📹 Recordings uploaded automatically from CI run #27296658095 |
PR Testing ReportPR Information
CLI Version Verification
Changes AnalyzedFiles Changed
Change Categories
Test Scenarios ExecutedScenario 1: Install and verify PR CLIObjective: Download the dogfood build and confirm the installed binary matches the PR head commit. Evidence:
Observations:
Scenario 2: CLI help/output smoke testObjective: Exercise Spectre.Console-driven help output at a narrow terminal width. Evidence:
Observations:
Scenario 3: Template creation smoke testObjective: Create a fresh Evidence:
Observations:
Summary
Overall Result✅ PR VERIFIED Recommendations
|
|
Follow-up: this fixes clickability, but it still does not address wrapped URLs in narrow table cells. The |
Problem
Resolves #17307: The "Logs" and "Dashboard" links in
aspire psoutput are not clickable at default terminal window size (~80 characters).Symptom: When running
aspire psin a terminal with default width, the OSC8 terminal links lose their clickability after being wrapped to the next line.Root Cause
This is a known issue in Spectre.Console #2124, where OSC8 terminal link markup loses its link attributes when wrapped in grid cells during line-wrapping. The issue manifests when:
PsCommand.DisplayTable()renders Dashboard/Logs links usingMarkupHelpers.SafeLink()(which wraps URLs in[link=URL]text[/]Spectre markup format)Solution
Upgrade Spectre.Console from 0.55.2 to 0.56.0.
The upstream fix was merged in Spectre.Console PR #2135 ("Preserve links in segments") on 2026-06-05. This fix properly preserves OSC8 link attributes across segment manipulation during text wrapping.
Changes
Directory.Packages.propsline 132: BumpedSpectre.Consoleversion from0.55.2to0.56.0Validation
✅ Unit Tests: All 28
PsCommandTestspassed without regression✅ E2E Tests: Both
PsCommandend-to-end tests passed (3m 43s)✅ Upstream Fix: Verified in Spectre.Console 0.56.0 source
Related Issues & References
aspire pswith the terminal window at its default size, the "Logs" and "Dashboard" links are not clickable. #17307Code Impact
The fix is entirely upstream in Spectre.Console. No CLI code changes required. The following code paths benefit from this update:
src/Aspire.Cli/Commands/PsCommand.cs:394-443—DisplayTable()method where Dashboard links are renderedsrc/Aspire.Cli/Utils/MarkupHelpers.cs:18-30—SafeLink()markup generation (now works correctly with 0.56.0)