Skip to content

CLI: Review which commands should display update notifications #17374

@JamesNK

Description

@JamesNK

Summary

After #17350 changed update notifications to opt-in, we should review which commands display the notification and establish a clear rule for when it's appropriate.

Current state

Commands that currently opt in to UpdateNotificationsEnabled:

Command Purpose
AddCommand Add integrations to a project
DashboardRunCommand Run the Aspire dashboard
InitCommand Initialize an Aspire project
LsCommand List Aspire projects
NewCommand / TemplateCommand Create a new Aspire project
PipelineCommandBase (Deploy/Destroy/Do/Publish) Deploy or publish
RestoreCommand Restore project dependencies
RunCommand (non-detach) Run an AppHost interactively
SetupCommand Set up the Aspire layout
StartCommand Start an AppHost in the background
StopCommand Stop a running AppHost

Commands that were removed from opt-in during review:

  • DescribeCommand, ExportCommand, LogsCommand, PsCommand, ResourceCommand, WaitCommand

Proposed rule

Update notifications should only be displayed for project-lifecycle commands — commands that create, configure, build, run, or deploy an AppHost. Commands that interact with individual resources within a running AppHost, produce machine-readable output, or are quick utilities should NOT display update notifications.

Rationale:

  • Project-lifecycle commands (new, init, run, start, deploy) are natural moments for users to learn about updates
  • Resource-interaction commands (logs, ps, describe, wait, resource start/stop) are executed frequently during development and the notification becomes noise
  • Machine-readable/streaming commands should never show notifications as they pollute structured output

Action items

  • Confirm the proposed rule matches team intent
  • Evaluate whether LsCommand and StopCommand should still show notifications (they're quick commands)
  • Add the rule to agent instructions so future commands follow the convention

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions