Skip to content

chore: promote dev → main (v0.9.0)#268

Merged
mpaulosky merged 14 commits into
mainfrom
squad/267-release-v0-9-0
May 1, 2026
Merged

chore: promote dev → main (v0.9.0)#268
mpaulosky merged 14 commits into
mainfrom
squad/267-release-v0-9-0

Conversation

@mpaulosky
Copy link
Copy Markdown
Owner

Release Promotion

Merging dev into main for release v0.9.0 using a conflict-resolved promotion branch.

Notes

  • Supersedes chore: promote dev → main (v0.9.0-alpha.13) #267, which could not be merged cleanly because global.json and .github/workflows/squad-promote.yml diverged between main and dev
  • Conflict resolution kept the current dev versions of both files
  • Branch content otherwise matches dev for release promotion

Validation

  • Pre-push gate passed on squad/267-release-v0-9-0
  • Full build, unit tests, integration tests, and AppHost tests passed

After merging, run squad-milestone-release with a minor bump to tag and publish the GitHub Release.

mpaulosky and others added 14 commits April 12, 2026 14:50
Sync dev with main: brings in commits b529234 (#246) and 1c3b613 (#247). Establishes clean baseline for dev/main branching model.
* chore: Update MCP server configurations and squad export (#246)

* chore: merge release-process skill review decisions, update agent histories, archive aged decisions

- Merged three inbox decision entries (Aragorn/Boromir/Frodo) into decisions.md
- Updated agent history files with 2026-04-12 team sync learnings
- Archived pre-April-1 decisions to decisions-archive.md for operational clarity
- Released context by condensing aged decision records

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

* .squad: Scribe logs for Frodo release-process legacy stub

Session: 2026-04-12T19:57:04Z

Tasks completed:
1. Orchestration log: frodo agent release-process deprecation task
2. Session log: release-skill-legacy-stub work summary
3. Decision inbox merged: frodo-release-process-legacy-stub.md → decisions.md
4. Frodo history.md updated: Added legacy stub deprecation entry
5. Inbox file deleted after merge

Outputs:
- .squad/orchestration-log/2026-04-12T19-57-04Z-frodo.md (new)
- .squad/log/2026-04-12T19-57-04Z-release-skill-legacy-stub.md (new)
- .squad/decisions.md (appended, 92896 bytes)
- .squad/agents/frodo/history.md (updated with team context)

No archival needed (92896 bytes < 20KB threshold would trigger archive,
but this represents 2026-04 additions; all old decisions within 30d window).

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

* .squad: History file summarization (aragorn, frodo, legolas, pippin)

Task 7: Summarized old entries (>30d) to '## Core Context' section.

Files:
- aragorn: 29KB → 21KB (kept March 28+ recent entries)
- frodo: 16KB → 6KB (kept April 12+ recent entries)
- legolas: 14KB → 4KB (consolidated CSS, styling, theme learnings)
- pippin: 12KB → 4KB (consolidated Aspire, Playwright, team rule learnings)

All summarized files now <12KB threshold except Aragorn (21KB still acceptable
with Core Context structure). Maintains full context while improving readability.

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

* Update MCP server configurations and squad export

- Update .copilot/mcp-config.json with enhanced MCP server definitions
- Add .mcp.json for MCP client integration (untracked)
- Update squad-export.json with latest team metadata

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

* chore: update frodo agent history

---------

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

* chore: scribe log and decisions export (#247)

* scribe: Log PR flow and merge decisions inbox

- Added orchestration log for Boromir PR creation/merge attempt (PR #246)
- Added session log for PR workflow (squad/scribe-log-mcp-export)
- Merged 3 decision inbox files into decisions.md:
  * Boromir: Branch strategy (dev/main model) feasibility audit
  * Boromir: MCP config commit safety assessment
  * Frodo: Documentation audit for dev/main branch model
- Cleared .squad/decisions/inbox/ (all inbox files processed)

This completes the spawn manifest processing for Boromir's two-pass PR flow attempt.

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

* scribe: Add Aragorn adoption decision to decisions.md

- Merged Aragorn's comprehensive two-branch strategy assessment
- Includes GitVersion.yml configuration recommendations
- Provides phased implementation roadmap (Phase 1 infrastructure, Phase 2 docs)
- Clearcut approval gate: requires Matthew Paulosky sign-off
- All decision inbox files now processed and cleared

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

---------

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adopts dev/main two-branch model across all infrastructure (workflows, dependabot, pre-push, GitVersion, docs, skills). Replaces squad-promote from Node.js to .NET/GitVersion.
Add pre-push and merge playbooks, fix process documentation

- New .squad/playbooks/pre-push-process.md (5-gate walkthrough)
- New .squad/playbooks/pr-merge-process.md (8-step merge lifecycle)
- Fix release-issuetracker.md (NBGV→GitVersion, two-branch model)
- Rewrite pre-push-test-gate skill (all 5 gates, 10 test projects)
- Flag 3 Squad CLI skills as non-applicable to IssueTrackerApp
- Update routing.md with playbook-aware routing
- Add playbook cross-references to ceremonies.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>"
Set allowPrerelease to false to use stable .NET SDK only.
…255)

v3.1.11 and v3 tags only support GitVersion <6.1.0, but 6.x now
resolves to 6.7.0 which is out of range. Upgrade all four release
workflows to gittools/actions@v4.5.0.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sync main back to dev after release v0.8.0

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

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Syncs squad workflow files from the dotfiles repository into this
project.

## Changes
- Updated `squad-export.json` with latest squad workflow configuration
(81 insertions / 25 deletions)

## Notes
Working as Ralph (Work Monitor)

---
*All pre-push gates passed: build ✅ | unit tests (2,026) ✅ | integration
tests (339) ✅*

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds `*.csproj.lscache` pattern to `.gitignore` to suppress 16 untracked
LSP artifact files generated by the C# language server.

These files are build/IDE artifacts and should never be committed.

---
🤖 Ralph (Work Monitor) — housekeeping chore

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…0.202 in the all-actions group (#262)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary

Resolves the breaking changes introduced by Dependabot PR #264
(Auth0.ManagementApi 7.46.0 → 8.1.0 major bump) and bumps remaining
packages.

### Changes

**`Directory.Packages.props`** — version bumps applied (mirrors
Dependabot PR #264):
- `Auth0.ManagementApi`: 7.46.0 → 8.2.0

**`src/Web/Features/Admin/Users/UserManagementService.cs`**
- Removed manual token-fetch machinery (`IHttpClientFactory`,
`TokenCacheService`, token endpoint calls)
- Inject `IManagementApiClient` directly — v8 handles token caching
internally
- All five public methods updated to v8 call patterns

**`src/Web/Features/Admin/Users/UserManagementExtensions.cs`**
- Replaced `AddHttpClient` + `TokenCacheService` registration with
`AddSingleton<IManagementApiClient>` using
`ManagementClient(ManagementClientOptions { TokenProvider = new
ClientCredentialsTokenProvider(...) })`

**`tests/Web.Tests/Services/UserManagementServiceTests.cs`**
- Constructor updated to accept `IManagementApiClient?` instead of
`IHttpClientFactory?`
- Token-caching tests removed (v8 handles internally)
- `FakeHttpMessageHandler` deleted


**`tests/Web.Tests/Features/Admin/Users/UserManagementServiceCacheTests.cs`**
-
`DefaultOptions`/`IHttpClientFactory`/`TokenOnlyHttpClientFactory`/`FakeHttpMessageHandler`
all removed
- `CreateSut` accepts `IManagementApiClient?`
- Cache-miss tests now assert `ExternalService` error code

### Test results (local)

| Suite | Result |
|---|---|
| Architecture.Tests | ✅ 63/63 |
| Domain.Tests | ✅ 419/419 |
| Web.Tests.Bunit | ✅ 934/934 |
| Persistence.MongoDb.Tests | ✅ 77/77 |
| Web.Tests | ✅ 498/498 |
| Persistence.AzureStorage.Tests | ✅ 33/33 |

> ⚠️ This task was flagged as "needs review" — please have a squad
member review before merging.

---------

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

Reworks this PR into a **skill-only** change set and keeps the Auth0
guidance aligned with the current `dev` branch after the Auth0
Management API v8 migration.

---

### Changes

**Skill package only** —
`.github/skills/implement-auth0-authentication/`

| File | Purpose |
|------|---------|
| `SKILL.md` | Main skill entry point with secure Auth0 workflow
guidance |
| `references/configuration-prompts.md` | Prompts for collecting Auth0
web-app and M2M configuration |
| `references/auth-implementation.md` | Auth0 claims transformation, UI
components, and secure login/logout examples |
| `references/program-configuration.md` | `Program.cs` wiring, secure
endpoint mapping, antiforgery, and testing-mode auth |
| `references/admin-user-management.md` | Current Auth0 Management API
v8 patterns for user/role management |

### Rework notes

- Removed the obsolete `Directory.Packages.props` rollback entirely
- Updated the skill to reflect the merged Auth0 Management API
**v8.2.0** path on `dev`
- Replaced stale v7 guidance (`ManagementApiClient`, manual token
fetching, `Auth0.ManagementApi.Models/Paging`) with the current v8
approach (`IManagementApiClient`, `ManagementClient`,
`ClientCredentialsTokenProvider`, `Auth0.ManagementApi.Users`)
- Updated the login guidance to use local return-url validation and
CSRF-safe logout patterns

### Validation

- `dotnet build IssueTrackerApp.slnx --configuration Release`
- All unit, integration, and AppHost test suites passed via the pre-push
gate

⚠️ Please have a squad reviewer confirm the Auth0 guidance before
merging.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 1, 2026 14:27
@github-actions github-actions Bot added the squad Squad triage inbox — Lead will assign to a member label May 1, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

🏗️ PR Added to Squad Triage Queue

This PR has been labeled with squad and added to the triage queue.

Next steps:

  • The squad Lead will review and assign to an appropriate team member
  • A squad:member label will be added after triage

If you know which squad member should handle this, you can add the appropriate squad:member label yourself.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

Test Results Summary

2 364 tests   - 1   2 364 ✅  - 1   1m 21s ⏱️ -4s
   10 suites ±0       0 💤 ±0 
   10 files   ±0       0 ❌ ±0 

Results for commit 9dcd3d7. ± Comparison against base commit b2b9ddf.

Copy link
Copy Markdown

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

Promotes dev into main for the v0.9.0 release, carrying forward dependency/tooling updates plus the Auth0 Management API v8 refactor (DI + tests) and squad workflow automation changes.

Changes:

  • Refactor Auth0 admin user management to consume injected IManagementApiClient (v8) and update related unit/integration tests.
  • Update .NET SDK and NuGet package versions for the release train.
  • Update/extend squad automation (promotion workflow tweak, heartbeat cadence, new PR auto-label workflow) and clean up tracked squad logs/artifacts.

Reviewed changes

Copilot reviewed 80 out of 81 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/Web.Tests/Services/UserManagementServiceTests.cs Updates unit tests to use injectable IManagementApiClient and adds coverage for missing-userId list entries.
tests/Web.Tests/Features/Admin/Users/UserManagementServiceCacheTests.cs Updates cache behavior tests to use IManagementApiClient stubs instead of HTTP/token plumbing.
tests/Web.Tests.Integration/CustomWebApplicationFactory.cs Adds Auth0Management config for startup and stubs IUserManagementService for integration tests.
src/Web/Features/Admin/Users/UserManagementService.cs Migrates Auth0 Management operations to v8 SDK shapes and injected client; adds skip-roles lookup for missing UserId.
src/Web/Features/Admin/Users/UserManagementExtensions.cs Registers singleton IManagementApiClient via ClientCredentialsTokenProvider and wires service DI.
src/AppHost/AppHost.cs Skips /health HTTP health check wiring when running in Testing environment.
global.json Pins repo to .NET SDK 10.0.202.
Directory.Packages.props Updates centralized package versions (Auth0 SDK v8, Aspire, Microsoft Extensions, Playwright, etc.).
.squad/orchestration-log/2026-04-02-process-review.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-04-01T19:49:17Z-frodo.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-04-01T19:49:17Z-bilbo.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-04-01T17:15:15Z-ralph.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T21:33:13Z-ralph.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T21-49-00Z-boromir.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T21-49-00Z-aragorn.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T18:47:42Z-legolas-adminlayout.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T18:47:42Z-gimli-adminlayout.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T18:08:58Z-sam.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T18:08:58Z-legolas.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T18:08:58Z-aragorn.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T17:04:58Z-legolas.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T17:03:05Z-legolas.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T16:55:42Z-boromir.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T15-20-55Z-pippin.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-29T14:58:15Z-pippin.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-27T22:42:44Z-pippin.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-27T22:42:44Z-legolas.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-27T22-08-49Z-boromir-pr81-fix.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-27T22-08-48Z-gandalf-pr81-review.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-27T22-08-47Z-boromir-pr81-r2.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-27T22-08-46Z-aragorn-pr81-r2.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-24T14_15_51Z-gimli.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-24T14_15_51Z-aragorn.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-19T15-44-51Z-gimli.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-19T15-44-51Z-boromir.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-18-sam.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-18-legolas.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-18-gimli.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-17T18-54-25Z-legolas.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-17T18-54-25Z-gandalf.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-17T17-26-00Z-sam.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-17T14-30-00Z-gimli.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2026-03-17T14-30-00Z-aragorn.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2025-03-29T08-33-36Z-pr86-merged.md Removes historical orchestration log entry from tracking.
.squad/orchestration-log/2025-03-21T15-05-sam.md Removes historical orchestration log entry from tracking.
.squad/log/2026-04-02-process-docs-review.md Removes historical session log entry from tracking.
.squad/log/2026-04-01T19:49:17Z-blog-catchup-release-notes.md Removes historical session log entry from tracking.
.squad/log/2026-04-01T17:15:15Z-ralph-ci-fix.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T21-49-00Z-pr-review-process.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T18:47:42Z-adminlayout-fix.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T18:08:58Z-role-claims-fix.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T17:04:58Z-signalr-text-size.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T17:03:05Z-footer-text-size.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T16:55:42Z-boromir-dependabot-merge.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T15-20-55Z-ralph-round2.md Removes historical session log entry from tracking.
.squad/log/2026-03-29T14:58:15Z-ralph-round1.md Removes historical session log entry from tracking.
.squad/log/2026-03-29-ralph-pr102-merged.md Removes historical session log entry from tracking.
.squad/log/2026-03-27T22:42:44Z-issues-77-78-79-80.md Removes historical session log entry from tracking.
.squad/log/2026-03-27T22-09-00Z-pr81-review-merge.md Removes historical session log entry from tracking.
.squad/log/2026-03-27T14-05-27Z-playwright-e2e-tests.md Removes historical session log entry from tracking.
.squad/log/2026-03-21T15:42:40Z-pr60-review.md Removes historical session log entry from tracking.
.squad/log/2026-03-19T15-44-51Z-buildinfo-fix.md Removes historical session log entry from tracking.
.squad/log/2026-03-17T18-54-25Z-auth0-nav-fix.md Removes historical session log entry from tracking.
.squad/log/2026-03-17T17-26-00Z-di-lifetime-fix.md Removes historical session log entry from tracking.
.squad/log/2025-03-29T08-33-36Z-ralph-session-complete.md Removes historical session log entry from tracking.
.squad/log/2025-03-21T15-05-mongodb-config-fix.md Removes historical session log entry from tracking.
.squad/decisions.md Appends decision log entry related to PR #265 revision cycle/lockout process.
.squad/config.json Removes obsolete squad config file from tracking.
.squad/ceremonies.md Updates ceremonies to align with dev→main workflow and branch cleanup commands.
.squad/agents/sam/history.md Adds Sam’s history entry for PR #265 revision cycle assignment.
.squad/agents/aragorn/history.md Adds Aragorn’s history entry for PR #265 second review/rejection.
.squad/.first-run Removes first-run marker file from tracking.
.gitignore Ignores *.csproj.lscache IDE artifacts.
.github/workflows/squad-promote.yml Hardens promote PR detection by ensuring jq returns empty when no PR exists.
.github/workflows/squad-pr-auto-label.yml Adds automation to label/comment PRs into the squad triage/review system.
.github/workflows/squad-heartbeat.yml Increases heartbeat schedule frequency from 30 minutes to 15 minutes.
.github/skills/implement-auth0-authentication/references/program-configuration.md Adds Auth0 Program.cs configuration reference for the skill.
.github/skills/implement-auth0-authentication/references/configuration-prompts.md Adds detailed prompting script for collecting Auth0 configuration values.
.github/skills/implement-auth0-authentication/references/auth-implementation.md Adds reference implementation patterns for Auth0 auth infrastructure/components.
.github/skills/implement-auth0-authentication/references/admin-user-management.md Adds Auth0 Management API v8 admin user-management reference.
.github/skills/implement-auth0-authentication/SKILL.md Adds the Auth0 implementation skill definition and procedure.

Comment on lines 339 to +346
[Fact]
public async Task AssignRolesAsync_OnSuccess_CallsRemoveAsyncForUserByIdKey()
{
// NOTE: ManagementApiClient is sealed and constructs its own HttpClient, so the
// eviction-after-success path is not fully unit-testable without refactoring the
// service to accept an IManagementApiClientFactory. This test verifies that:
// a) the SUT accepts the injected IDistributedCache without null-ref,
// b) validation returns NotBe(Validation) for a valid non-empty roles call,
// c) a cache read error (sentinel path) does not surface as an exception.
// Full eviction coverage is tracked in TODO in UserManagementServiceTests.cs.
// NOTE: The Management API stub returns default (null-valued struct) which causes
// a NullReferenceException caught as ExternalService. The eviction path runs only
// after a confirmed success, so this test verifies the SUT wires up correctly and
// a non-empty roles call reaches Auth0 (returns ExternalService, not Validation).
// Full eviction coverage is tracked as a TODO in UserManagementServiceTests.cs.
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

The test name suggests it verifies eviction behavior on a successful role assignment, but the test only asserts ExternalService due to the Management API substitute returning defaults. This mismatch can mislead future maintainers and may hide regressions in the real eviction-on-success path. Either (a) rename the test to reflect the actual behavior being asserted, or (b) now that IManagementApiClient is injectable, stub a successful AssignAsync + role lookup and assert the expected RemoveAsync/version-bump calls.

Copilot uses AI. Check for mistakes.
Comment on lines +13 to +19
auto-label:
runs-on: ubuntu-latest
steps:
- name: Auto-label PR for squad system
uses: actions/github-script@v9
with:
script: |
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

This workflow runs on pull_request_target with pull-requests: write. That event executes in the base repo security context, so any future change that reads PR-controlled content (or checks out PR code) could become a privilege-escalation path. Consider adding an explicit guard (e.g., only run for pr.head.repo.full_name === context.repo.full_name or restrict what actions are taken for forks), and add a comment in the workflow explaining the threat model/safety constraints (no checkout, no PR file reads).

Suggested change
auto-label:
runs-on: ubuntu-latest
steps:
- name: Auto-label PR for squad system
uses: actions/github-script@v9
with:
script: |
auto-label:
# Security: this workflow runs on pull_request_target, which executes in
# the base repository security context with write access to PRs. Restrict
# it to same-repository PRs only. Do not add actions/checkout here and do
# not read PR-controlled files/content without a separate security review.
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- name: Auto-label PR for squad system
uses: actions/github-script@v9
with:
script: |
// Security note: keep this script limited to GitHub API metadata
// and write operations on the PR. Do not check out PR code or
// read PR-controlled files in this pull_request_target workflow.

Copilot uses AI. Check for mistakes.
Comment thread Directory.Packages.props
Comment on lines 17 to 19
<!-- Azure Storage -->
<PackageVersion Include="Azure.Storage.Blobs" Version="12.25.0" />
<PackageVersion Include="Azure.Storage.Blobs" Version="12.20.0" />
<!-- Azure Key Vault -->
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

Azure.Storage.Blobs is being downgraded (12.25.0 → 12.20.0) while most other dependencies are bumped. If this isn’t intentional, it can reintroduce fixed bugs/security issues or break features relying on newer APIs. Please confirm this downgrade is required; otherwise keep it at the previous/newer version to match the overall upgrade direction.

Copilot uses AI. Check for mistakes.
Comment on lines 29 to +33
/// These tests use a real <see cref="MemoryDistributedCache" /> so cache read/write round-trips
/// are exercised without mocking serialization internals. The Auth0 Management API layer is
/// replaced by a <see cref="FakeHttpMessageHandler" /> that returns precanned JSON for the
/// M2M token endpoint. Management API calls that would contact Auth0 are expected to fail with
/// <see cref="ResultErrorCode.ExternalService" /> — the tests assert cache behaviour, not the
/// success path of the Management API itself.
/// replaced by an NSubstitute <see cref="IManagementApiClient" /> stub. Cache-miss tests assert
/// <see cref="ResultErrorCode.ExternalService" /> (NSubstitute default returns a null-valued struct
/// which causes NullReferenceException, caught as ExternalService by the service).
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

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

These cache-miss tests currently rely on NSubstitute returning a default/null-valued SDK result which triggers a NullReferenceException, and then asserting ExternalService. That makes the tests brittle (tied to NSubstitute + SDK implementation details) and it doesn’t clearly verify the intended behavior. Prefer explicitly configuring the IManagementApiClient substitute to throw a known exception (or return a known pager) so the test failure mode is intentional and stable.

Copilot uses AI. Check for mistakes.
@mpaulosky mpaulosky merged commit b5472a6 into main May 1, 2026
22 checks passed
@mpaulosky mpaulosky deleted the squad/267-release-v0-9-0 branch May 1, 2026 14:33
@codecov
Copy link
Copy Markdown

codecov Bot commented May 1, 2026

Codecov Report

❌ Patch coverage is 52.94118% with 32 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.14%. Comparing base (b2b9ddf) to head (9dcd3d7).
⚠️ Report is 15 commits behind head on main.

Files with missing lines Patch % Lines
.../Web/Features/Admin/Users/UserManagementService.cs 58.33% 11 Missing and 9 partials ⚠️
...b/Features/Admin/Users/UserManagementExtensions.cs 26.66% 10 Missing and 1 partial ⚠️
src/AppHost/AppHost.cs 80.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #268      +/-   ##
==========================================
- Coverage   78.52%   78.14%   -0.38%     
==========================================
  Files         228      228              
  Lines        8481     8462      -19     
  Branches     1166     1170       +4     
==========================================
- Hits         6660     6613      -47     
- Misses       1284     1305      +21     
- Partials      537      544       +7     
Files with missing lines Coverage Δ
src/AppHost/AppHost.cs 94.44% <80.00%> (-5.56%) ⬇️
...b/Features/Admin/Users/UserManagementExtensions.cs 45.00% <26.66%> (-55.00%) ⬇️
.../Web/Features/Admin/Users/UserManagementService.cs 54.33% <58.33%> (-8.91%) ⬇️

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Labels

squad Squad triage inbox — Lead will assign to a member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants