Skip to content

Add opt-in AppHost Server v2 to the CLI bundle - #20897

Draft
David Fowler (davidfowl) wants to merge 59 commits into
mainfrom
davidfowl/lean-native-runtime-feasibility
Draft

David Fowler (davidfowl) wants to merge 59 commits into
mainfrom
davidfowl/lean-native-runtime-feasibility

Conversation

@davidfowl

@davidfowl David Fowler (davidfowl) commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Introduce AppHost Server v2 as an opt-in component of the Aspire product bundle. It separates AppHost authoring from application execution: the guest describes the application through ATS, while a long-lived server owns the resource graph, workloads, and lifecycle.

Existing AppHosts continue to use the managed server by default. This is a bounded first product slice, not a replacement for the full managed Hosting surface. Related to #20873.

Architecture

flowchart TB
    CLI["Aspire CLI<br/>standard run / codegen / process supervision"]
    Guest["TypeScript guest AppHost<br/>generated ATS SDK"]
    Codegen["Bundled managed codegen helper<br/>offline ATS contracts + shared TypeScript generator"]
    TS["TypeScript integration host<br/>Redis / PostgreSQL / Dev Tunnels ports<br/>service clients + callbacks + controllers"]
    CS["Future C# integration host<br/>generated core projection<br/>managed integration dependencies"]

    subgraph Native["AppHost Server v2: opt-in product component"]
        RPC["Authenticated ATS dispatch<br/>handles + capability routing"]
        Model["BCL-only Native.Core kernel<br/>declarations / execution ownership / revisions<br/>observations / commands / confirmation"]
        DCPClient["BCL HTTPS + source-generated JSON<br/>DCP execution and cleanup"]
        DashboardAdapter["Native resource-service gRPC<br/>observations / logs / commands / confirmation"]
        Backchannels["Existing baseline.v2 and auxiliary RPC<br/>discovery / describe / logs / wait / stop"]
        RPC --> Model --> DCPClient
        Model --> DashboardAdapter
        Model --> Backchannels
    end

    DCP["DCP process"]
    Dashboard["Dashboard frontend<br/>DCP-owned lifecycle"]
    Workloads["Redis + PostgreSQL containers<br/>Nuxt executable + tunnel fixture"]

    CLI -->|"supervise"| Native
    CLI -->|"launch"| Guest
    CLI <-->|"generateCode / getRuntimeSpec"| RPC
    CLI -->|"prepare provider SDK"| Codegen
    Codegen -->|"prepared SDK overlay"| RPC
    Guest <-->|"ATS calls + typed handles"| RPC
    RPC <-->|"exported calls + projected core calls + callbacks"| TS
    CS -.->|"planned ATS projection; not live CLR objects"| RPC
    DCPClient -->|"authenticated API"| DCP
    DCP -->|"own execution"| Workloads
    DCP -->|"launch and stop"| Dashboard
    Dashboard <-->|"existing resource-service protocol"| DashboardAdapter
    CLI <-->|"existing CLI contracts"| Backchannels

    classDef native fill:#DFF6DD,stroke:#107C10,color:#000;
    classDef external fill:#CFE4FA,stroke:#0078D4,color:#000;
    classDef planned fill:#FFF4CE,stroke:#F7630C,color:#000,stroke-dasharray:5 5;
    class RPC,Model,DCPClient,DashboardAdapter,Backchannels native;
    class CLI,Guest,Codegen,TS,DCP,Workloads,Dashboard external;
    class CS planned;
Loading

Opting in

Enable v2 in the AppHost's aspire.config.json:

{
  "features": {
    "appHostServerV2": true
  }
}

The flag is project-scoped, including inherited project configuration, and cannot be enabled globally. Selection follows the target AppHost's configuration rather than the directory where the CLI was invoked. The first supported boundary is TypeScript/Node.js on Windows and Unix, core resources, and qualified protocol-v2 npm providers.

The normal bundle includes the server and its matching ATS metadata. An opted-in project reports an explicit error if that payload is missing; it does not silently fall back. Disabling the flag restores managed-server selection, regenerates the managed SDK, and removes v2-only generated files.

A small core, with integrations outside it

The server is built around Aspire.Hosting.Native.Core, a BCL-only model and execution kernel. Resource kinds are identifiers, not integration-specific CLR subclasses. The kernel owns declarations, dependency ordering, configuration, graph-scoped annotations, execution authority, and immutable snapshots.

Integration code lives in separate provider processes. Providers contribute offline ATS contracts, portable authoring modules, and activation coordinates. Service-client libraries and integration tooling stay outside the kernel; resource-scoped lifecycle callbacks connect providers to execution without giving them arbitrary ownership of the model.

The server reuses DCP for containers and executables, the existing Dashboard frontend, and the CLI's backchannel contracts. The full server includes ASP.NET Core and gRPC for the Dashboard resource-service adapter; the BCL-only boundary is the kernel, not the entire executable.

ATS without runtime scanning

NativeAOT is an implementation detail, not a separate feature or experiment. Build-time generation produces static ATS dispatch, contract metadata, and an embedded core TypeScript SDK. The execution core does not load a scanner or code generator.

Provider SDK preparation uses the bundled aspire-managed apphost-codegen-v2 worker and the existing ATS TypeScript generator. This keeps generation consistent with the managed path while allowing provider contracts to be combined outside the execution core.

Guest RPC uses authenticated Unix-domain sockets on Unix and current-user-only named pipes on Windows. Existing CLI and auxiliary backchannels remain unchanged. Opt-in setup is isolated from the default CLI path, and one bundle lease covers preparation, execution, DCP, and Dashboard.

References and reload-friendly lifetimes

Reference expressions are immutable, server-owned values that retain resource dependencies and secret classification until resolution. The core does not depend on JSON: immutable wire parsing and mutable reply construction belong to the server boundary.

AppHost authoring and workload execution have separate lifetimes. A workspace can stage a new graph, retain compatible execution identities and workloads, and retire removed resources. Old authoring handles and callbacks lose authority when their revision is retired. This provides the foundation for guest reexecution without restarting the whole application, but automatic CLI file watching and revision handoff are not implemented.

The Dashboard adapter exposes resource snapshots, logs, commands, and the supported confirmation flow. DCP continues to own the Dashboard process and workload cleanup.

Resource footprint

Representative local macOS arm64 measurements, using the median of three runs per mode:

Scenario Server RSS Other process RSS
Contract-only, empty graph 32.31 MiB None
Contract-only, 100 declared resources 37.89 MiB None
DCP + resource service, empty graph 44.14 MiB 155.69 MiB
DCP + resource service, workloads ready 46.45 MiB 551.56 MiB

The measured server executable is 17.51 MiB. Direct server readiness was 32.14 ms in contract-only mode and 4.90 s with DCP and the resource service.

Contract-only mode uses the same full server binary with DCP/resource-service startup disabled, not a separately linked minimal-core executable. Other process RSS covers DCP and workload/helper processes, excluding the server. The scenario has no integration host or Dashboard frontend; Docker VM/container memory and the driving Node process are excluded. RSS can double-count shared pages, and timing starts at direct server launch, not aspire run. These are recorded benchmark measurements, not a fresh measurement of the current PR head.

Current boundaries

Managed integration assemblies, other guest runtimes, publishing, and server debugging are explicitly unsupported in this first slice. Broader integration acquisition, complete provider reconciliation, and full Dashboard protocol parity remain follow-up work. Dev Tunnels currently uses a local forwarding fixture, not the live service.

The design and remaining model work are described in the App Model v2 specification. This PR remains draft.

Security considerations

The new boundary includes authenticated local RPC, generation-scoped handles and callbacks, workload execution, generated credentials, and authenticated DCP access. Listener permissions, authority revocation, process containment, secret-safe diagnostics, certificate validation, and cleanup ownership require security review. No formal threat model or security review has been completed.

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

Add an isolated Native AOT resource core, unchanged managed Redis execution, a TypeScript Nuxt integration process, and a real workload/deployment-context harness. Record the ownership, orchestration, publishing, containment, and measurement limitations without changing production behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Exercise managed facades, real C# reference and lifecycle helpers, cross-owner startup, endpoint rebinding, owner invalidation, manifest publishing, and native-only activation. Document the proven boundaries and implementation scope.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Exercise native containers, database children, executable readiness, deferred values, restart persistence, and owner-scoped cleanup. Preserve a mixed path through the unchanged managed Redis integration and document the production gaps.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Add run-only custom endpoints with owner/generation fencing, deferred URL consumers, command cancellation, DCP log observation, and owner invalidation. Exercise real DCP and HTTP forwarding with an explicit local CLI fixture; record live relay validation as blocked by expired authentication.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Generate the real ATS guest SDK and static AOT dispatch from a minimal primitive contract. Replatform bounded Redis, PostgreSQL and Dev Tunnels integrations, exercise actual DCP workloads, and demonstrate guest graph replacement with persistent native server and integration host processes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Integrate direct AOT-safe DCP bootstrap and execution-document cleanup, embed the offline ATS SDK, and reuse CLI process and session lifetimes through an explicit headless override. Add real CLI workload and failure scenarios, focused regression coverage, and runnable samples.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
@github-actions

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 -- 20897

Or

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

@aspire-repo-bot
aspire-repo-bot Bot requested a balanced review from Copilot October 10, 2026 16:40
@github-actions github-actions Bot added the area-integrations Issues pertaining to Aspire Integrations packages label Oct 10, 2026
@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.

🟡 Changes recommended

The override leaks into unsupported CLI operations, alters managed shutdown behavior, retains a DCP startup race, and leaves the principal PoC outside CI coverage.

4 open findings
What changed in this PR

This draft PoC explores a NativeAOT AppHost server with ATS-owned resource state while integrations execute in external processes.

Changes:

  • Adds native ATS dispatch, resource modeling, DCP orchestration, and lifecycle management.
  • Ports Redis, PostgreSQL, Nuxt, and development-tunnel scenarios to projected ATS APIs.
  • Adds an opt-in CLI server override, tests, authoring documentation, and compatibility harnesses.
File Description
docs/​specs/​appmodelv2.md Documents the proposed ATS-native authoring model.
playground/​NativeHosting/​.gitignore Excludes generated PoC artifacts.
playground/​NativeHosting/​README.md Describes architecture, usage, and limitations.
playground/​NativeHosting/​RpcPeer.cs Implements integration-host RPC transport.
playground/​NativeHosting/​apphost.mts Provides the original compatibility sample.
playground/​NativeHosting/​ats-apphost.mts Composes the ATS-native sample application.
playground/​NativeHosting/​ats-e2e.mts Exercises the standalone ATS scenario.
playground/​NativeHosting/​ats-guest.mts Implements guest-side ATS interaction.
playground/​NativeHosting/​ats-integration-host.mts Hosts external TypeScript integrations.
playground/​NativeHosting/​ats-ports.mts Ports integration behavior to ATS primitives.
playground/​NativeHosting/​cli-e2e.mts Exercises the native server through the CLI.
playground/​NativeHosting/​devtunnel-fixture.mts Provides local tunnel forwarding.
playground/​NativeHosting/​devtunnel-integration.mts Implements the tunnel integration.
playground/​NativeHosting/​devtunnel-output.mts Parses tunnel process output.
playground/​NativeHosting/​integration-ports.mts Defines compatibility integration ports.
playground/​NativeHosting/​managed-consumer.mts Exercises managed-resource consumption.
playground/​NativeHosting/​native-ports.mts Defines native resource projections.
playground/​NativeHosting/​native-tunnels.mts Defines native tunnel behavior.
playground/​NativeHosting/​nuxt-integration.mts Implements the Nuxt integration port.
playground/​NativeHosting/​tunnel-consumer.mts Exercises tunnel consumption.
playground/​NativeHosting/​Ats/​IntegrationContracts.cs Defines integration RPC contracts.
playground/​NativeHosting/​Ats/​NativeApi.cs Defines projected native capabilities.
playground/​NativeHosting/​Ats/​NativeHosting.Ats.csproj Configures the ATS contract project.
playground/​NativeHosting/​AtsCodegen/​CompatibleCodegen.cs Generates the bounded compatibility SDK.
playground/​NativeHosting/​AtsCodegen/​NativeHosting.AtsCodegen.csproj Configures the code-generation helper.
playground/​NativeHosting/​AtsCodegen/​Program.cs Runs ATS scanning and generation.
playground/​NativeHosting/​AtsServer/​AtsSession.cs Manages authenticated ATS sessions and handles.
playground/​NativeHosting/​AtsServer/​CompatibleContract.json Describes the bounded compatibility contract.
playground/​NativeHosting/​AtsServer/​CompatibleDispatch.cs Dispatches compatibility capabilities.
playground/​NativeHosting/​AtsServer/​NativeCliBootstrap.cs Bootstraps CLI-native server interaction.
playground/​NativeHosting/​AtsServer/​NativeDispatch.g.cs Contains generated native dispatch code.
playground/​NativeHosting/​AtsServer/​NativeHosting.AtsServer.csproj Configures NativeAOT server publishing.
playground/​NativeHosting/​AtsServer/​Program.cs Starts the native ATS server.
playground/​NativeHosting/​Core/​NativeCustomResources.cs Implements controller-owned custom resources.
playground/​NativeHosting/​Core/​NativeDcp.cs Executes workloads through the DCP API.
playground/​NativeHosting/​Core/​NativeHosting.Core.csproj Configures the native core project.
playground/​NativeHosting/​Core/​NativeModel.cs Implements the native resource graph.
playground/​NativeHosting/​Core/​Program.cs Runs the standalone native core.
playground/​NativeHosting/​ManagedAdapter/​ManagedEdges.cs Bridges managed integration behavior.
playground/​NativeHosting/​ManagedAdapter/​NativeHosting.ManagedAdapter.csproj Configures the managed adapter.
playground/​NativeHosting/​ManagedAdapter/​Program.cs Starts the managed adapter process.
playground/​NativeHosting/​CliAppHost/​apphost.mts Defines the CLI compatibility AppHost.
playground/​NativeHosting/​CliAppHost/​aspire.config.json Configures the CLI sample.
playground/​NativeHosting/​CliAppHost/​failing-apphost.mts Exercises AppHost failure handling.
playground/​NativeHosting/​CompatibleAppHost/​apphost.mts Defines the bounded-contract AppHost.
playground/​NativeHosting/​CompatibleAppHost/​failing-apphost.mts Exercises compatibility-path failures.
playground/​NativeHosting/​web/​Dockerfile Builds the Nuxt workload container.
playground/​NativeHosting/​web/​nuxt.config.ts Configures the Nuxt workload.
playground/​NativeHosting/​web/​server/​api/​bridge.get.ts Exercises tunnel forwarding.
playground/​NativeHosting/​web/​server/​api/​health.get.ts Exposes workload health.
playground/​NativeHosting/​web/​server/​api/​redis.get.ts Exercises Redis references.
src/​Aspire.Cli/​Aspire.Cli.csproj Includes shared kubeconfig parsing.
src/​Aspire.Cli/​Backchannel/​NativeAppHostCliBackchannel.cs Adapts native control-plane RPCs to the CLI.
src/​Aspire.Cli/​Commands/​RunCommand.cs Adds native shutdown and state handling.
src/​Aspire.Cli/​Projects/​AppHostServerProject.cs Selects the opt-in native server.
src/​Aspire.Cli/​Projects/​GuestAppHostProject.cs Integrates native launch and backchannel behavior.
src/​Aspire.Cli/​Projects/​NativeAppHostServerProject.cs Launches and prepares the native server.
src/​Aspire.Cli/​Utils/​EnvironmentChecker/​DcpKubeconfig.cs Uses shared kubeconfig parsing.
src/​Shared/​DcpKubeconfigData.cs Parses DCP connection material.
tests/​Aspire.Cli.Tests/​Backchannel/​NativeAppHostCliBackchannelTests.cs Tests native readiness and control forwarding.
tests/​Aspire.Cli.Tests/​Projects/​NativeAppHostServerProjectTests.cs Tests native launch and package restrictions.
tests/​Aspire.Cli.Tests/​TestServices/​FakeAppHostServerSession.cs Supports configurable fake RPC invocation.
tests/​Aspire.Cli.Tests/​Utils/​DcpKubeconfigDataTests.cs Tests kubeconfig scalar parsing.

🧠 Review effort: Balanced

Comment thread src/Aspire.Cli/Projects/AppHostServerProject.cs Outdated
Comment thread playground/NativeHosting/Core/NativeDcp.cs Outdated
Comment thread src/Aspire.Cli/Commands/RunCommand.cs Outdated
Comment thread playground/NativeHosting/AtsServer/NativeHosting.AtsServer.csproj Outdated
Exercise typed portable data through generated APIs, configure Redis persistence, and document AOT costs and graph lifetime.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
@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.

🟡 Changes recommended

Integration-host authentication, concurrent graph mutation, cleanup reliability, and bounded-output issues remain unresolved.

7 open findings
Previously missed (2)

In code that hasn't changed since last review

Medium severity Continue graph cleanup after individual failures

playground/​NativeHosting/​ats-ports.mts:346

Graph cleanup is fail-fast: one rejected monitor task or one failed tunnel deletion aborts releaseGraph, so later session-owned tunnels are never deleted. This is especially likely after a monitor transport failure. Settle monitor tasks and attempt every owned-tunnel deletion before reporting aggregate cleanup failure.

Medium severity Preserve stderr stream and log it as errors

src/​Aspire.Cli/​Backchannel/​NativeAppHostCliBackchannel.cs:91

This discards the captured stream and marks stderr as Information. Native server and DCP failures are intentionally written to stderr, so CLI diagnostic files and extension forwarding will present failures as ordinary output. Preserve stream and map StdErr to LogLevel.Error.

🧠 Review effort: Balanced

Comment thread playground/NativeHosting/Ats/NativeApi.cs Outdated
Comment thread playground/NativeHosting/AtsServer/NativeCliBootstrap.cs Outdated
Comment thread playground/NativeHosting/integration-ports.mts Outdated
@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.

@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.

@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.

Consolidate the native runtime into one AOT server project with generated ATS dispatch, DCP execution, and a Dashboard protocol adapter. Add server-owned workspaces, staged model revisions, stable resource executions, integration configuration acknowledgements, and ordered workload replacement. Cover actual guest reexecution, retained workloads and data, dependent endpoint rebinding, and cleanup with real CLI and Dashboard E2E fixtures.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
@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.

Comment thread src/Aspire.Hosting.Native.Server/Rpc/NativeRpcConnection.cs
@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.

@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.

Implement the existing CLI backchannel on the native server, use source-generated wire DTOs and validated runtime policies, and launch the authenticated Dashboard through DCP. Fix playground composition, connection-material startup retries, integration registration, output bounds, and CI-owned coverage.

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

Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
@aspire-repo-bot
aspire-repo-bot Bot requested a balanced review from Copilot October 11, 2026 03:56
@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.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
@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.

🔵 Needs a closer look

The unresolved log-tail loss needs correction, and the new execution/security boundary requires human review.

0 open findings

2 resolved since last review

🧠 Review effort: Balanced

@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.

@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.

@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.

Comment thread src/Aspire.Hosting.Native.Server/Program.cs
Assert the classified execution-prerequisite error and its milestone chain for rejected staged revisions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5232bd9d-6550-4411-a521-cd6be239f67e
@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.

🔵 Needs a closer look

The global-setting validation bypass remains unresolved, and the security-sensitive runtime changes require human review.

0 open findings

🧠 Review effort: Balanced

@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.

@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.

Model compute environments and parameter inputs natively, expose fluent TypeScript Compose customization, and execute native-authoritative pipeline DAGs for publishing, deployment and startup. Cover real CLI deployment, custom targets, concurrent steps, failure propagation, environment isolation and retained data.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7a6644bf-9352-4988-b790-7b2c407f50c0
@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.

🟡 Changes recommended

Configuration validation, backchannel cancellation handling, and ATS contract packaging have unresolved blocking issues.

3 open issues

Review effort: Balanced

Comment thread src/Aspire.Hosting.Native.Server/Rpc/NativeBackchannelProtocol.cs
Comment thread tools/CreateLayout/Program.cs
Comment thread src/Aspire.Cli/Commands/ConfigCommand.cs Outdated
@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.

@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.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7a6644bf-9352-4988-b790-7b2c407f50c0
@github-actions

This comment has been minimized.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7a6644bf-9352-4988-b790-7b2c407f50c0
@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.

🔵 Needs a closer look

Broad execution, RPC, and lifecycle changes require human approval; security review remains outstanding.

No open issues 🎉

3 resolved since last review

Review effort: Balanced

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7a6644bf-9352-4988-b790-7b2c407f50c0
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

Selects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'Aspire.slnx' selects ALL


Selection computed for commit c277c18.

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.

🔵 Needs a closer look

Broad runtime, authenticated RPC, and lifecycle changes require final human review, including security review.

No open issues 🎉

Review effort: Balanced

@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.

This branch has not been deployed

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

Labels

area-integrations Issues pertaining to Aspire Integrations packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants