Repository navigation
[release/0.26] Harden watcher consumption and adopt bounded Tilt watch delivery - #307
Merged
Merged
Conversation
Mitch Denny (mitchdenny)
approved these changes
Oct 19, 2026
David Negstad (danegsta)
enabled auto-merge (squash)
October 19, 2026 22:59
This was referenced Oct 23, 2026
This was referenced Oct 24, 2026
kyletraum
pushed a commit
to kyletraum/fiducial-portfolio-ops
that referenced
this pull request
Oct 25, 2026
Updated [Aspire.Hosting.Docker](https://github.com/microsoft/aspire) from 13.6.1 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.Docker's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* ## 13.6.3 ## What's New in Aspire 13.6.3 Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations. ### 🐛 Fixes - 🖥️ **Resource operations could stall when a watch stopped being read** — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. ([#21002](microsoft/aspire#21002), backport of [#20972](microsoft/aspire#20972), @danegsta) - 🔄 **Slow watchers could block other resource updates or watcher shutdown** — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. ([#21215](microsoft/aspire#21215), @danegsta; includes [microsoft/dcp#307](microsoft/dcp#307)) --- *Full Changelog: [v13.6.2...v13.6.3](microsoft/aspire@v13.6.2...v13.6.3)* *Full commit: [38294b1b31552dae42a516cffa0cbc737ec08976](microsoft/aspire@38294b1b31552dae42a516cffa0cbc737ec08976)* ## 13.6.2 *Full commit: [af07e33f8d1ef733645138b3f8e36067d073148d](microsoft/aspire@af07e33f8d1ef733645138b3f8e36067d073148d)* ## What's Changed * [release/13.6] Bump version to 13.6.2 by @danegsta with @Copilot in microsoft/aspire#20877 * [release/13.6] Pin MessagePack to 2.5.307 for security fixes by @eerhardt in microsoft/aspire#21156 **Full Changelog**: microsoft/aspire@v13.6.1...v13.6.2 Commits viewable in [compare view](microsoft/aspire@v13.6.1...v13.6.4). </details> Updated [Aspire.Hosting.JavaScript](https://github.com/microsoft/aspire) from 13.6.1 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.JavaScript's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* ## 13.6.3 ## What's New in Aspire 13.6.3 Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations. ### 🐛 Fixes - 🖥️ **Resource operations could stall when a watch stopped being read** — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. ([#21002](microsoft/aspire#21002), backport of [#20972](microsoft/aspire#20972), @danegsta) - 🔄 **Slow watchers could block other resource updates or watcher shutdown** — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. ([#21215](microsoft/aspire#21215), @danegsta; includes [microsoft/dcp#307](microsoft/dcp#307)) --- *Full Changelog: [v13.6.2...v13.6.3](microsoft/aspire@v13.6.2...v13.6.3)* *Full commit: [38294b1b31552dae42a516cffa0cbc737ec08976](microsoft/aspire@38294b1b31552dae42a516cffa0cbc737ec08976)* ## 13.6.2 *Full commit: [af07e33f8d1ef733645138b3f8e36067d073148d](microsoft/aspire@af07e33f8d1ef733645138b3f8e36067d073148d)* ## What's Changed * [release/13.6] Bump version to 13.6.2 by @danegsta with @Copilot in microsoft/aspire#20877 * [release/13.6] Pin MessagePack to 2.5.307 for security fixes by @eerhardt in microsoft/aspire#21156 **Full Changelog**: microsoft/aspire@v13.6.1...v13.6.2 Commits viewable in [compare view](microsoft/aspire@v13.6.1...v13.6.4). </details> Updated [Aspire.Hosting.PostgreSQL](https://github.com/microsoft/aspire) from 13.6.1 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.PostgreSQL's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* ## 13.6.3 ## What's New in Aspire 13.6.3 Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations. ### 🐛 Fixes - 🖥️ **Resource operations could stall when a watch stopped being read** — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. ([#21002](microsoft/aspire#21002), backport of [#20972](microsoft/aspire#20972), @danegsta) - 🔄 **Slow watchers could block other resource updates or watcher shutdown** — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. ([#21215](microsoft/aspire#21215), @danegsta; includes [microsoft/dcp#307](microsoft/dcp#307)) --- *Full Changelog: [v13.6.2...v13.6.3](microsoft/aspire@v13.6.2...v13.6.3)* *Full commit: [38294b1b31552dae42a516cffa0cbc737ec08976](microsoft/aspire@38294b1b31552dae42a516cffa0cbc737ec08976)* ## 13.6.2 *Full commit: [af07e33f8d1ef733645138b3f8e36067d073148d](microsoft/aspire@af07e33f8d1ef733645138b3f8e36067d073148d)* ## What's Changed * [release/13.6] Bump version to 13.6.2 by @danegsta with @Copilot in microsoft/aspire#20877 * [release/13.6] Pin MessagePack to 2.5.307 for security fixes by @eerhardt in microsoft/aspire#21156 **Full Changelog**: microsoft/aspire@v13.6.1...v13.6.2 Commits viewable in [compare view](microsoft/aspire@v13.6.1...v13.6.4). </details> Updated [Aspire.Hosting.Testing](https://github.com/microsoft/aspire) from 13.6.1 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.Testing's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* ## 13.6.3 ## What's New in Aspire 13.6.3 Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations. ### 🐛 Fixes - 🖥️ **Resource operations could stall when a watch stopped being read** — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. ([#21002](microsoft/aspire#21002), backport of [#20972](microsoft/aspire#20972), @danegsta) - 🔄 **Slow watchers could block other resource updates or watcher shutdown** — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. ([#21215](microsoft/aspire#21215), @danegsta; includes [microsoft/dcp#307](microsoft/dcp#307)) --- *Full Changelog: [v13.6.2...v13.6.3](microsoft/aspire@v13.6.2...v13.6.3)* *Full commit: [38294b1b31552dae42a516cffa0cbc737ec08976](microsoft/aspire@38294b1b31552dae42a516cffa0cbc737ec08976)* ## 13.6.2 *Full commit: [af07e33f8d1ef733645138b3f8e36067d073148d](microsoft/aspire@af07e33f8d1ef733645138b3f8e36067d073148d)* ## What's Changed * [release/13.6] Bump version to 13.6.2 by @danegsta with @Copilot in microsoft/aspire#20877 * [release/13.6] Pin MessagePack to 2.5.307 for security fixes by @eerhardt in microsoft/aspire#21156 **Full Changelog**: microsoft/aspire@v13.6.1...v13.6.2 Commits viewable in [compare view](microsoft/aspire@v13.6.1...v13.6.4). </details> Updated [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL](https://github.com/microsoft/aspire) from 13.6.1 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* ## 13.6.3 ## What's New in Aspire 13.6.3 Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations. ### 🐛 Fixes - 🖥️ **Resource operations could stall when a watch stopped being read** — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. ([#21002](microsoft/aspire#21002), backport of [#20972](microsoft/aspire#20972), @danegsta) - 🔄 **Slow watchers could block other resource updates or watcher shutdown** — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. ([#21215](microsoft/aspire#21215), @danegsta; includes [microsoft/dcp#307](microsoft/dcp#307)) --- *Full Changelog: [v13.6.2...v13.6.3](microsoft/aspire@v13.6.2...v13.6.3)* *Full commit: [38294b1b31552dae42a516cffa0cbc737ec08976](microsoft/aspire@38294b1b31552dae42a516cffa0cbc737ec08976)* ## 13.6.2 *Full commit: [af07e33f8d1ef733645138b3f8e36067d073148d](microsoft/aspire@af07e33f8d1ef733645138b3f8e36067d073148d)* ## What's Changed * [release/13.6] Bump version to 13.6.2 by @danegsta with @Copilot in microsoft/aspire#20877 * [release/13.6] Pin MessagePack to 2.5.307 for security fixes by @eerhardt in microsoft/aspire#21156 **Full Changelog**: microsoft/aspire@v13.6.1...v13.6.2 Commits viewable in [compare view](microsoft/aspire@v13.6.1...v13.6.4). </details>
This was referenced Oct 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Backport #292 to
release/0.26to prevent unread watches from stalling API storage publication and unrelated watcher shutdown.Keep the V2 Namespace lifecycle watch draining during snapshot requests and shutdown, initialize LogStorage's disposal signal, and avoid allocating per-resource watchers when parent-watch setup fails. Upgrade tilt-apiserver from v0.19.1 to v0.19.2 for bounded, asynchronous watcher delivery, with matching checksums and dependency notice updates.
Backport scope
Cherry-pick the final merged change from
06562f36aa9361e4f58db10626f9f9aac5cdb8b2relative to its first parent, rather than mergingmainor replaying the source branch's intermediate commits. The patch applied cleanly: all five changed Go files match the merged source PR exactly, while the release branch's separate dependency entries and notices are preserved. No unrelated release/0.27 feature work is included.Include the source regression tests and remove the test that depends on the superseded synchronous watch-publication stall. Aspire scaffolding fixes are already present on the target branch through #303 and are not part of this diff.
Related to #286; this backport does not claim the original Aspire CI scenario has been reproduced or verified.
Validation
make test-prereqsCGO_ENABLED=1 go test -race -count 1 -parallel 32 -timeout 180s -overlay=.toolbin/go-runtime-overlay/overlay.json ./api/v1 ./internal/apiserver)make test(full unit/integration suite)make generate(no generated content changes)make lintgo mod verifyAll checks passed on macOS. Aspire E2E validation is left to CI.