Skip to content

Comments

Add project-defined startup forms and commands using aspire interaction service#8

Merged
oising merged 16 commits intomainfrom
aspirify
Feb 20, 2026
Merged

Add project-defined startup forms and commands using aspire interaction service#8
oising merged 16 commits intomainfrom
aspirify

Conversation

@oising
Copy link
Owner

@oising oising commented Feb 5, 2026

Changes:

  • Added project-defined commands via JSON manifest with schema validation
  • Implemented startup forms that block project execution until user provides configuration
  • Updated package dependencies from Aspire 9.x/ASP.NET 9.x to 13.x/10.x versions
  • Refactored DI registration to avoid anti-pattern of calling BuildServiceProvider during registration

@oising oising self-assigned this Feb 5, 2026
@oising oising added the enhancement New feature or request label Feb 5, 2026
@oising oising marked this pull request as ready for review February 5, 2026 22:42
Copilot AI review requested due to automatic review settings February 5, 2026 22:42
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds significant new functionality to the Aspire Project Commander library, enabling projects to define their own commands and startup forms through JSON manifests. The changes introduce a declarative approach where projects can specify interactive configuration requirements via a projectcommander.json file, complementing the existing code-based command registration.

Changes:

  • Added project-defined commands via JSON manifest with schema validation
  • Implemented startup forms that block project execution until user provides configuration
  • Updated package dependencies from Aspire 9.x/ASP.NET 9.x to 13.x/10.x versions
  • Refactored DI registration to avoid anti-pattern of calling BuildServiceProvider during registration

Reviewed changes

Copilot reviewed 27 out of 28 changed files in this pull request and generated 20 comments.

Show a summary per file
File Description
schemas/projectcommander-v1.schema.json JSON schema defining manifest structure for commands and startup forms
Src/Nivot.Aspire.Hosting.ProjectCommander/StartupFormAnnotation.cs Resource annotation tracking startup form state and completion
Src/Nivot.Aspire.Hosting.ProjectCommander/ProjectCommandManifest.cs Model types for deserializing manifest JSON
Src/Nivot.Aspire.Hosting.ProjectCommander/ManifestReader.cs Manifest parsing and conversion to Aspire InteractionInput types
Src/Nivot.Aspire.Hosting.ProjectCommander/ResourceBuilderProjectCommanderExtensions.cs Added WithProjectManifest method and startup form command registration
Src/Nivot.Aspire.Hosting.ProjectCommander/ProjectCommanderHub.cs Hub methods for startup form lifecycle management
Src/Nivot.Aspire.ProjectCommander/IAspireProjectCommanderClient.cs Extended interface with startup form support and command arguments
Src/Nivot.Aspire.ProjectCommander/AspireProjectCommanderClientWorker.cs Implemented startup form handling and blocking until completion
Src/Nivot.Aspire.ProjectCommander/ServiceCollectionAspireProjectCommanderExtensions.cs Refactored DI registration to avoid BuildServiceProvider anti-pattern
Sample/DataGenerator/projectcommander.json Example manifest demonstrating startup forms and parameterized commands
Sample/DataGenerator/Program.cs Updated to use startup form data and handle command arguments
README.md Comprehensive documentation of new manifest and startup form features
CHANGELOG.md Detailed changelog documenting breaking changes and new features
Multiple .csproj files Package version updates across the solution

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

Copilot AI commented Feb 9, 2026

@oising I've opened a new pull request, #9, to work on those changes. Once the pull request is ready, I'll request review from you.

* Initial plan

* Fix: Return Success=false for cancelled operations

Co-authored-by: oising <1844001+oising@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: oising <1844001+oising@users.noreply.github.com>
Copy link
Contributor

Copilot AI commented Feb 11, 2026

@oising I've opened a new pull request, #10, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 7 commits February 11, 2026 12:43
…10)

* Initial plan

* Add xUnit 2 test project with startup form tests and extract logic into services

Co-authored-by: oising <1844001+oising@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: oising <1844001+oising@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 39 out of 40 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

oising and others added 2 commits February 20, 2026 17:13
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI commented Feb 20, 2026

@oising I've opened a new pull request, #11, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Contributor

Copilot AI commented Feb 20, 2026

@oising I've opened a new pull request, #12, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 2 commits February 20, 2026 17:20
… tuple (#11)

* Initial plan

* Fix CHANGELOG to accurately document WithProjectManifest return type

Co-authored-by: oising <1844001+oising@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: oising <1844001+oising@users.noreply.github.com>
* Initial plan

* Fix thread-safe access to StartupFormService fields using volatile

Co-authored-by: oising <1844001+oising@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: oising <1844001+oising@users.noreply.github.com>
Co-authored-by: Oisin Grehan <oising@gmail.com>
@oising oising merged commit cb000ed into main Feb 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants