Skip to content

Review, validate, and merge all open Dependabot dependency-update PRs #1346

Description

@JoshuaRowePhantom

Summary

There are 12 open Dependabot PRs in JoshuaRowePhantom/Phantom.Workspaces spanning NuGet package updates (Avalonia, Dock, Microsoft.Extensions.*, MongoDB.Bson, coverlet, xunit, MCP, JsonSchema/JsonPatch) and GitHub Actions updates (actions/checkout, actions/upload-artifact). This issue tracks reviewing, validating (full build + full test suite green), and merging each PR — or deliberately closing any that must not be taken, with the reason recorded. Impact: dependencies are drifting from upstream; security and compatibility updates are unapplied, and grouped/coordinated updates (Avalonia + Dock) risk conflicting with each other if landed in the wrong order.

Open Dependabot PRs

PR Update Type Notes / Risk
#1339 Dock.Avalonia, Dock.Avalonia.Themes.Fluent 12.0.0.2 -> 12.1.0.2 NuGet Higher risk. Dock is currently deliberately pinned at 12.0.0.2 in features\Directory.Packages.props (see Dock.Avalonia, Dock.Avalonia.Themes.Fluent, Dock.Model.Avalonia, Dock.Model.Mvvm, Dock.Serializer.SystemTextJson). A 12.0.0.2 -> 12.1.0.2 upgrade was previously evaluated in the context of reference-cycle serialization fixes. Must stay mutually compatible with the Avalonia versions landed by #1336 / #1227. Note this PR only bumps two of the five Dock.* pins — the other three would need to move in lockstep.
#1337 microsoft group (10 updates) NuGet Broad blast radius. Bumps: Microsoft.AspNetCore.TestHost 10.0.8→10.0.11, Microsoft.DevTunnels.Contracts/Management 1.3.50→1.3.51, Microsoft.Extensions.AI.Abstractions/AI.OpenAI 10.5.2→10.9.0, Microsoft.Extensions.Logging/Logging.Abstractions/Logging.Console 10.0.7→10.0.11, Microsoft.Extensions.TimeProvider.Testing 10.7.0→10.9.0, and Microsoft.NET.Test.Sdk 17.14.1→18.9.0 (major bump for the test SDK). Touches Extensions.AI (used broadly across LLM/agent code) and the test host.
#1336 avalonia group (8 updates) 12.1.0 -> 12.1.1 NuGet Coordinated Avalonia patch bump across Avalonia, Avalonia.Desktop, Avalonia.Fonts.Inter, Avalonia.Headless, Avalonia.Headless.XUnit, Avalonia.Markup.Xaml.Loader, Avalonia.Themes.Fluent, and Avalonia.Controls.WebView 12.0.1→12.1.0. Must be reconciled with #1227 (overlapping subset) and validated against the Dock version chosen in #1339.
#1230 JsonSchema.Net 9.2.1 -> 9.4.0 NuGet Low risk. Straightforward minor bump.
#1227 Avalonia and 5 others NuGet Overlaps with #1336 — bumps Avalonia.Headless / Avalonia.Headless.XUnit 12.1.0 -> 12.1.1 (subset of #1336). Whichever lands second must be rebased/closed as redundant.
#1117 MongoDB.Bson 3.4.0 -> 3.10.0 NuGet Minor-version jump. Note MongoDB.Driver is pinned at 3.4.0 alongside MongoDB.Bson in Directory.Packages.props — bumping only MongoDB.Bson may drift the two out of sync; verify the driver still supports the newer Bson or bump both together.
#1115 JsonPatch.Net 5.0.2 -> 5.0.3 NuGet Low risk. Patch bump.
#29 xunit.runner.visualstudio 3.1.4 -> 3.1.5 NuGet Low risk. Patch bump.
#19 ModelContextProtocol, ModelContextProtocol.AspNetCore NuGet Higher risk. MCP libraries — potential API-surface changes; verify pinned ModelContextProtocol / ModelContextProtocol.AspNetCore 1.3.0 targets still compile and tests pass.
#14 coverlet.collector 6.0.4 -> 10.0.1 NuGet Higher risk — major-version jump (6.x -> 10.x) affecting the test/coverage pipeline. Verify coverage output still works locally and in CI.
#2 actions/upload-artifact v4 -> v7 GitHub Actions Higher risk — major bump. upload-artifact v4+ changed artifact behavior (no more artifact mutation, one artifact per name per run). Verify all .github\workflows\*.yml still upload/collect artifacts correctly.
#1 actions/checkout v4 -> v7 GitHub Actions Higher risk — major bump. Confirm submodule / fetch-depth / token behavior is unchanged for ci.yml, ci-full.yml, publish-validation.yml, and release.yml.

Affected Files

File Reason
features\Directory.Packages.props Central NuGet version pins for the main solution; nearly all NuGet bumps land here (Avalonia*, Dock., Microsoft.Extensions., MongoDB., ModelContextProtocol, JsonSchema.Net, JsonPatch.Net, xunit.runner.visualstudio, coverlet.collector).
Any additional Directory.Packages.props under submodules (e.g. Phantom.Workspaces-LLM, if bumped independently) Verify no secondary CPM file exists that also pins these packages; if so, keep versions in sync.
Any .csproj under features\ with a direct Version="..." attribute Sanity-check — the repo uses central package management so this should be rare, but confirm no direct pins bypass CPM.
features\.github\workflows\ci.yml, ci-full.yml, publish-validation.yml, release.yml Bumps for actions/checkout@v4 -> v7 (#1) and actions/upload-artifact@v4 -> v7 (#2).

Design / Fix (process)

Ordered plan:

  1. Land low-risk NuGet bumps first, one at a time, each with a full local build + full test run and a green CI:
  2. Land the GitHub Actions bumps Bump actions/checkout from 4 to 7 #1 (actions/checkout v4 -> v7) and Bump actions/upload-artifact from 4 to 7 #2 (actions/upload-artifact v4 -> v7). Confirm every workflow under features\.github\workflows still runs; pay particular attention to artifact upload/download naming under upload-artifact v4+.
  3. Resolve the Avalonia + Dock cluster together (Bump Dock.Avalonia and Dock.Avalonia.Themes.Fluent #1339, Bump the avalonia group with 8 updates #1336, Bump Avalonia and 5 others #1227). Steps:
  4. Land the microsoft group (Bump the microsoft group with 10 updates #1337). Special attention to Microsoft.NET.Test.Sdk 17 -> 18 (major) and Microsoft.Extensions.AI.* 10.5.2 -> 10.9.0 (AI stack).
  5. Land the higher-risk singletons with extra validation:
  6. Post-merge: trigger Dependabot to re-check (or let its next scheduled run happen) and confirm no residual PRs remain unaddressed.
  7. For any PR that cannot be taken, close it with a comment stating the reason (e.g., "Dock pin retained deliberately — see this issue") so future Dependabot runs don't quietly re-open the same bump without context.

Checklist (tick as each PR is merged or deliberately closed):

Expected Tests

This is a dependency-maintenance / process bug, not a code-logic change, so no new tests are authored. The acceptance gate is that the existing full build and full test suite must remain green after each merge.

Verification Scope What It Confirms
Full solution build all projects under features\ No compile breaks from bumped APIs (esp. Microsoft.Extensions.AI 10.5 -> 10.9, MCP, Avalonia 12.1.1, Dock 12.1.0.2).
Full test suite (fast + slow) all test projects No behavioral regressions from dependency updates.
CI workflow run .github\workflows\ci.yml, ci-full.yml, publish-validation.yml, release.yml actions/checkout@v7 + actions/upload-artifact@v7 succeed end-to-end (checkout + artifact upload/download).
Coverage output test + coverage pipeline coverlet.collector 10.x still emits usable coverage results.

Package -> primary existing test coverage mapping:

  • MongoDB.Bson / MongoDB.Driver bumps -> Phantom.Workspaces.Data.MongoDB.Tests (and any Mongo-backed integration tests).
  • Dock.* and Avalonia.* bumps -> dock persistence / tab-switching / layout-serialization tests (the same areas that surfaced the previous reference-cycle serialization work).
  • Microsoft.Extensions.AI.* and ModelContextProtocol.* bumps -> LLM / agent / MCP host + client test projects.
  • Microsoft.NET.Test.Sdk bump -> exercised implicitly by every test project running under the new SDK.
  • xunit.runner.visualstudio / coverlet.collector -> the entire test + coverage pipeline (run-tests skill invocation).

Related issues / PRs

Individual Dependabot PRs tracked by this issue:

If a prior discussion exists about the deliberate Dock.* = 12.0.0.2 pin (evaluated alongside reference-cycle serialization fixes when 12.1.0.2 was considered), link it here as context for the Dock decision in step 3 of the plan.

Metadata

Metadata

Labels

bugSomething isn't workingneeds-slow-testsRequires full test suite including slow Git tests at checkinnext-upverified-locallyImplementation has been verified locally

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions