Skip to content

Add command to show dev tunnel URLs - #16842

Merged
Maddy Montaquila (maddymontaquila) merged 16 commits into
mainfrom
maddymontaquila/dev-tunnel-urls
Aug 13, 2026
Merged

Add command to show dev tunnel URLs#16842
Maddy Montaquila (maddymontaquila) merged 16 commits into
mainfrom
maddymontaquila/dev-tunnel-urls

Conversation

@maddymontaquila

@maddymontaquila Maddy Montaquila (maddymontaquila) commented May 6, 2026

Copy link
Copy Markdown
Contributor

Description

Adds discoverable Dev Tunnel URLs to dev tunnel port resources:

  • Publishes the public tunnel, inspect, and local endpoint URLs as highlighted resource properties so they are visible in the dashboard property pane.
  • Adds a highlighted Show tunnel URLs action that opens the same URLs in a Markdown message-box interaction with a Close button.

The action inspects derived resource state and uses IInteractionService directly rather than returning command-result data through the generic text visualizer.

Validation:

  • dotnet test --project tests\Aspire.Hosting.DevTunnels.Tests\Aspire.Hosting.DevTunnels.Tests.csproj --no-launch-profile -- --filter-not-trait "quarantined=true" --filter-not-trait "outerloop=true"
  • dotnet build /t:UpdateXlf src\Aspire.Hosting.DevTunnels\Aspire.Hosting.DevTunnels.csproj

Fixes # (issue)

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No
  • Does the change require an update in our Aspire docs?

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 16842

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 16842"

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a built-in Show tunnel URLs resource command to Dev Tunnel port resources so the dashboard can immediately display the public tunnel URL, inspect URL, and local endpoint URL as a markdown command result.

Changes:

  • Adds a new show-tunnel-urls command to DevTunnelPortResource with enabled/disabled state driven by resource state and tunnel status.
  • Implements markdown command output generation (tunnel/inspect/local URLs) and refactors inspect URL generation into a helper.
  • Adds a unit test and updates localized resource strings (.resx + .xlf + generated designer).

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/Aspire.Hosting.DevTunnels.Tests/DevTunnelResourceBuilderExtensionsTests.cs Adds a test validating the new command’s enabled/disabled state and markdown output.
src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs Registers the new resource command on Dev Tunnel port resources and builds the markdown command result.
src/Aspire.Hosting.DevTunnels/DevTunnelResource.cs Introduces the internal command name constant for the new command.
src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.resx Adds new localized string entries for command UI text and result messages.
src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs Regenerates strongly-typed resource accessors for the new strings.
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.cs.xlf Adds new trans-units for the command strings (cs locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.de.xlf Adds new trans-units for the command strings (de locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.es.xlf Adds new trans-units for the command strings (es locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.fr.xlf Adds new trans-units for the command strings (fr locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.it.xlf Adds new trans-units for the command strings (it locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ja.xlf Adds new trans-units for the command strings (ja locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ko.xlf Adds new trans-units for the command strings (ko locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.pl.xlf Adds new trans-units for the command strings (pl locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.pt-BR.xlf Adds new trans-units for the command strings (pt-BR locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ru.xlf Adds new trans-units for the command strings (ru locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.tr.xlf Adds new trans-units for the command strings (tr locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.zh-Hans.xlf Adds new trans-units for the command strings (zh-Hans locale).
src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.zh-Hant.xlf Adds new trans-units for the command strings (zh-Hant locale).
Files not reviewed (1)
  • src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs: Language not supported

Comment thread src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs Outdated
@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

🎬 CLI E2E Test Recordings — 77 recordings uploaded (commit 140c5ac)

View all recordings
Status Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View Recording
AddPackageWhileAppHostRunningDetached ▶️ View Recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View Recording
AgentInitCommand_DefaultSelection_InstallsSkillOnly ▶️ View Recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View Recording
AspireAddPackageVersionToDirectoryPackagesProps ▶️ View Recording
AspireInitSingleFileAppHostRunsViaDotnetRunAppHost ▶️ View Recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View Recording
Banner_DisplayedOnFirstRun ▶️ View Recording
Banner_DisplayedWithExplicitFlag ▶️ View Recording
Banner_NotDisplayedWithNoLogoFlag ▶️ View Recording
CertificatesClean_RemovesCertificates ▶️ View Recording
CertificatesTrust_WithNoCert_CreatesAndTrustsCertificate ▶️ View Recording
CertificatesTrust_WithUntrustedCert_TrustsCertificate ▶️ View Recording
ConfigSetGet_CreatesNestedJsonFormat ▶️ View Recording
CreateAndRunAspireStarterProject ▶️ View Recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View Recording
CreateAndRunEmptyAppHostProject ▶️ View Recording
CreateAndRunJavaEmptyAppHostProject ▶️ View Recording
CreateAndRunJsReactProject ▶️ View Recording
CreateAndRunPythonReactProject ▶️ View Recording
CreateAndRunTypeScriptEmptyAppHostProject ▶️ View Recording
CreateAndRunTypeScriptStarterProject ▶️ View Recording
CreateJavaAppHostWithViteApp ▶️ View Recording
CreateTypeScriptAppHostWithViteApp_UsesConfiguredToolchain ▶️ View Recording
DashboardRunWithOtelTracesReturnsNoTraces ▶️ View Recording
DeployK8sBasicApiService ▶️ View Recording
DeployK8sWithGarnet ▶️ View Recording
DeployK8sWithMongoDB ▶️ View Recording
DeployK8sWithMySql ▶️ View Recording
DeployK8sWithPostgres ▶️ View Recording
DeployK8sWithRabbitMQ ▶️ View Recording
DeployK8sWithRedis ▶️ View Recording
DeployK8sWithSqlServer ▶️ View Recording
DeployK8sWithValkey ▶️ View Recording
DeployTypeScriptAppToKubernetes ▶️ View Recording
DescribeCommandResolvesReplicaNames ▶️ View Recording
DescribeCommandShowsRunningResources ▶️ View Recording
DetachFormatJsonProducesValidJson ▶️ View Recording
DetachFormatJsonProducesValidJsonWhenRestartingExistingInstance ▶️ View Recording
DoListStepsShowsPipelineSteps ▶️ View Recording
DocsCommand_RendersInteractiveMarkdownFromLocalSource ▶️ View Recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View Recording
DoctorCommand_TypeScriptAppHostReportsMissingConfiguredToolchain ▶️ View Recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View Recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View Recording
GlobalMigration_HandlesCommentsAndTrailingCommas ▶️ View Recording
GlobalMigration_HandlesMalformedLegacyJson ▶️ View Recording
GlobalMigration_PreservesAllValueTypes ▶️ View Recording
GlobalMigration_SkipsWhenNewConfigExists ▶️ View Recording
GlobalSettings_MigratedFromLegacyFormat ▶️ View Recording
InitTypeScriptAppHost_AugmentsExistingViteRepoAtRoot ▶️ View Recording
InteractiveCSharpInitCreatesExpectedFiles ▶️ View Recording
InvalidAppHostPathWithComments_IsHealedOnRun ▶️ View Recording
LatestCliCanStartStableChannelAppHost ▶️ View Recording
LatestCliCanStartStableChannelTypeScriptAppHost ▶️ View Recording
LegacySettingsMigration_AdjustsRelativeAppHostPath ▶️ View Recording
LogsCommandShowsResourceLogs ▶️ View Recording
OtelLogsReturnsStructuredLogsFromStarterAppCore ▶️ View Recording
PsCommandListsRunningAppHost ▶️ View Recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View Recording
PublishWithConfigureEnvFileUpdatesEnvOutput ▶️ View Recording
PublishWithDockerComposeServiceCallbackSucceeds ▶️ View Recording
PublishWithoutOutputPathUsesAppHostDirectoryDefault ▶️ View Recording
RestoreGeneratesSdkFiles ▶️ View Recording
RestoreGeneratesSdkFiles_WithConfiguredToolchain ▶️ View Recording
RestoreRefreshesGeneratedSdkAfterAddingIntegration ▶️ View Recording
RestoreSupportsConfigOnlyHelperPackageAndCrossPackageTypes ▶️ View Recording
RunFromParentDirectory_UsesExistingConfigNearAppHost ▶️ View Recording
SecretCrudOnDotNetAppHost ▶️ View Recording
SecretCrudOnTypeScriptAppHost ▶️ View Recording
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ▶️ View Recording
StartAndWaitForTypeScriptSqlServerAppHostWithNativeAssets ▶️ View Recording
StopAllAppHostsFromAppHostDirectory ▶️ View Recording
StopNonInteractiveSingleAppHost ▶️ View Recording
StopWithNoRunningAppHostExitsSuccessfully ▶️ View Recording
UnAwaitedChainsCompileWithAutoResolvePromises ▶️ View Recording

📹 Recordings uploaded automatically from CI run #25463607200

@DamianEdwards

Copy link
Copy Markdown
Member

Copilot resolve the merge conflicts in this pull request

Co-authored-by: DamianEdwards <249088+DamianEdwards@users.noreply.github.com>

Copilot AI commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Copilot resolve the merge conflicts in this pull request

Addressed in 7c901d2.

@github-actions

This comment has been minimized.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Found one additional build-blocking issue. The existing unresolved thread about the command potentially waiting indefinitely remains applicable.

Comment thread tests/Aspire.Hosting.DevTunnels.Tests/DevTunnelResourceBuilderExtensionsTests.cs Outdated
Avoid waiting for an unallocated target endpoint and update command context tests for the current required API.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 6, 2026 21:11
Build command output from conditional markdown rows and use the current command result overload.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Note

This error may be related to your runner configuration. You can now configure runners for Copilot code review separately from Copilot cloud agent by creating a copilot-code-review.yml file with your setup steps. Read the docs for details.

Normalize inspect URLs and clarify that the command displays URLs that are currently available.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: bbf89d33-83ee-4932-80ec-4c94eda9b9be
Copilot AI review requested due to automatic review settings August 13, 2026 16:33
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review details

Files not reviewed (1)
  • src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs: Generated file
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI review requested due to automatic review settings August 13, 2026 18:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review details

Files not reviewed (1)
  • src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs: Generated file
Suppressed comments (1)

src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs:616

  • This command depends entirely on an interaction, but the default visibility also advertises it to API clients. API command execution is non-interactive, so those clients will discover an enabled show-tunnel-urls command that always fails the IInteractionService.IsAvailable check. Restrict this dashboard action to UI visibility (and update the command metadata assertion accordingly).
                    IsHighlighted = true,
  • Files reviewed: 19/20 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: bbf89d33-83ee-4932-80ec-4c94eda9b9be
Copilot AI review requested due to automatic review settings August 13, 2026 18:19
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review details

Files not reviewed (1)
  • src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs: Generated file
  • Files reviewed: 19/20 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: bbf89d33-83ee-4932-80ec-4c94eda9b9be
Copilot AI review requested due to automatic review settings August 13, 2026 18:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review details

Files not reviewed (1)
  • src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs: Generated file
Suppressed comments (1)

src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs:621

  • The command is marked enabled without checking IInteractionService.IsAvailable, even though execution immediately fails when interactivity is disabled. This leaves a highlighted dashboard action enabled that cannot succeed (for example when interactivity is disabled by configuration). Include service availability in UpdateState, as other interaction-backed commands do in Aspire.Hosting.Browsers/BrowserLogsBuilderExtensions.cs:224-229.
                    UpdateState = context =>
                        context.ResourceSnapshot.State?.Text == KnownResourceStates.Running &&
                        portResource.LastKnownStatus?.PortUri is not null
                        ? ResourceCommandState.Enabled
                        : ResourceCommandState.Disabled
  • Files reviewed: 19/20 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@github-actions

This comment has been minimized.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: bbf89d33-83ee-4932-80ec-4c94eda9b9be
Copilot AI review requested due to automatic review settings August 13, 2026 19:05
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: bbf89d33-83ee-4932-80ec-4c94eda9b9be

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review details

Files not reviewed (1)
  • src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs: Generated file
  • Files reviewed: 19/20 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@github-actions

Copy link
Copy Markdown
Contributor

Tests selector (audit mode)

The full test matrix and all jobs still run in audit mode. The tests and jobs below are what selective CI would run under enforcement.

10 / 100 test projects · 2 jobs, from 20 changed files.

Selected test projects (10 / 100)

Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Tests, Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Browsers.Tests, Aspire.Hosting.DevTunnels.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.Maui.Tests, Aspire.Hosting.Radius.Tests, Aspire.Hosting.RemoteHost.Tests, Aspire.Hosting.Tests

Selected jobs (2)

extension-e2e, typescript-api-compat


How these were chosen — grouped by what changed

⚠️ 8 of the 10 selected test projects come from a single change — tests/Shared/TestInteractionService.cs.

🧪 tests/Shared/TestInteractionService.cs (changed test)
8 via the project graph: Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Tests, Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Browsers.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.Radius.Tests, Aspire.Hosting.RemoteHost.Tests, Aspire.Hosting.Tests

🔧 src/Aspire.Hosting.DevTunnels/DevTunnelResource.cs (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests
1 via the project graph: Aspire.Hosting.Maui.Tests (2 hops)

🔧 src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.resx (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.cs.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.de.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.es.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.fr.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.it.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ja.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ko.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.pl.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.pt-BR.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ru.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.tr.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.zh-Hans.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🔧 src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.zh-Hant.xlf (changed source)
1 directly: Aspire.Hosting.DevTunnels.Tests

🧪 tests/Aspire.Hosting.DevTunnels.Tests/Aspire.Hosting.DevTunnels.Tests.csproj (changed test)
1 directly: Aspire.Hosting.DevTunnels.Tests

🧪 tests/Aspire.Hosting.DevTunnels.Tests/DevTunnelResourceBuilderExtensionsTests.cs (changed test)
1 directly: Aspire.Hosting.DevTunnels.Tests

Job reasons

Job Triggered by
extension-e2e src/Aspire.Hosting.DevTunnels/DevTunnelResource.cs, src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs, src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.Designer.cs, src/Aspire.Hosting.DevTunnels/Resources/MessageStrings.resx, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.cs.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.de.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.es.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.fr.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.it.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ja.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ko.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.pl.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.pt-BR.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.ru.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.tr.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.zh-Hans.xlf, src/Aspire.Hosting.DevTunnels/Resources/xlf/MessageStrings.zh-Hant.xlf
• affected project Aspire.Hosting.DevTunnels
typescript-api-compat affected project Aspire.Hosting.DevTunnels

Selection computed for commit e7f7a39.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@maddymontaquila
Maddy Montaquila (maddymontaquila) merged commit edd7998 into main Aug 13, 2026
723 of 726 checks passed
@maddymontaquila
Maddy Montaquila (maddymontaquila) deleted the maddymontaquila/dev-tunnel-urls branch August 13, 2026 20:12
@github-actions github-actions Bot added this to the 13.6 milestone Aug 13, 2026
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Pull request created: #1492

Generated by PR Documentation Check · auto · 51.5 AIC · ⌖ 6.39 AIC · ⊞ 19.6K

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

📝 Documentation has been drafted in microsoft/aspire.dev#1492 targeting release/13.5.

Added a new Show tunnel URLs section to src/frontend/src/content/docs/integrations/devtools/dev-tunnels.mdx documenting the highlighted TunnelUrl/InspectUrl/LocalEndpointUrl resource properties and the new ShowTunnelUrlsCommand dashboard command that opens a message box with those URLs, including the enablement condition (tunnel running with an allocated public URL).

Note

This draft PR needs human review before merging.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ CI Failure Analysis: Possible Flaky Test(s)

The CI build failed due to test failure(s) that appear unrelated to the PR changes. These may be flaky tests.

Suspected flaky test(s):

  • Aspire.Cli.Tests.Projects.ProcessGuestLauncherTests.LaunchAsync_WithGracefulServices_BlockingSignalerDoesNotConsumeGracefulBudget in job Tests / Cli / Cli (windows-latest)
    • Error: System.TimeoutException : The operation has timed out.
    • Stack Trace (first frames):
      at Aspire.Cli.Tests.Projects.ProcessGuestLauncherTests.LaunchAsync_WithGracefulServices_BlockingSignalerDoesNotConsumeGracefulBudget() in D:\a\aspire\aspire\tests\Aspire.Cli.Tests\Projects\ProcessGuestLauncherTests.cs:line 186
      --- End of stack trace from previous location ---
      
    • Why likely flaky: Test is not related to any file changed by the PR (PR only touches Aspire.Hosting.DevTunnels). This test has timed out intermittently 3 prior times, tracked under cause processguest-blockingsignaler-timeout.
  • Aspire.Templates.Tests.BuildAndRunTemplateTests.BuildAndRunAspireTemplateWithExplicitSdkReference(includeAspireHostingAppHostPackageReference: True) in job Tests / Templates-BuildAndRunTemplateTests / Templates-BuildAndRunTemplateTests (windows-latest)
    • Error: System.InvalidOperationException : App exited before startup could complete with exit code -2147450743. [apphost] Failed to load dotnet-aot.dll HRESULT: 0x8007045A; Failed to load coreclr.dll HRESULT: 0x8007054F; Failed to bind to CoreCLR; Failed to create CoreCLR, HRESULT: 0x80008088
    • Stack Trace (first frames):
      at Aspire.Templates.Tests.AspireProject.StartAppHostAsync(...) in /_/tests/Shared/TemplatesTesting/AspireProject.cs:319
      at Aspire.Templates.Tests.BuildAndRunTemplateTests.BuildAndRunAspireTemplateWithExplicitSdkReference(Boolean includeAspireHostingAppHostPackageReference) in /_/tests/Aspire.Templates.Tests/BuildAndRunTemplateTests.cs:126
      
    • Why likely flaky: Windows runner-level CoreCLR load failure (0xC0000142 family), unrelated to PR changes; matches known recurring infra cause windows-process-init-failure-0xc0000142.

Suggested actions:

  • Re-run the failed CI jobs to confirm if the failure is intermittent
  • If the test continues to fail, consider quarantining it using /quarantine-test <test name> <issue URL>
  • Search existing issues to see if this test is already known to be flaky

You can re-run the failed jobs from the workflow run page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants