Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,886 changes: 935 additions & 951 deletions Darling/Darling.Tests/packages.lock.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,44 +1,46 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<RootNamespace>PerformanceMonitor.Darling.Analysis</RootNamespace>
<AssemblyName>PerformanceMonitor.Darling.Analysis</AssemblyName>
<Company>Darling Data, LLC</Company>
<Copyright>Copyright © 2026 Darling Data, LLC</Copyright>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<NoWarn>CA1849;CA2007;CA1508;CA1822;CA1805;CA1510;CA1816;CA1861;CA1845;CA2201;CA1848;CA1852;CA1305;CA1860;CA1707;CA1507;CA1806;CA2254</NoWarn>
<WarningsAsErrors>CS4014</WarningsAsErrors>
</PropertyGroup>

<ItemGroup>
<!-- The plan fetcher connects to the MONITORED SQL Server (same client the Service uses);
Npgsql and Logging.Abstractions flow transitively from the Storage/Notifications references. -->
<PackageReference Include="Microsoft.Data.SqlClient" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\PerformanceMonitor.Analysis\PerformanceMonitor.Analysis.csproj" />
<ProjectReference Include="..\..\PerformanceMonitor.Collectors\PerformanceMonitor.Collectors.csproj" />
<!-- AlertContextSerializer: the finding store persists/reads remediation_action_json through the
SAME serializer both apps use, so a Darling finding's action round-trips byte-identically. -->
<ProjectReference Include="..\..\PerformanceMonitor.Notifications\PerformanceMonitor.Notifications.csproj" />
<!-- PlanAdvisoryAggregator: the fact collector's WS4 plan advisories parse collected plan XML
through the same shared ShowPlanParser/PlanAnalyzer both apps use. -->
<ProjectReference Include="..\..\PerformanceMonitor.PlanAnalysis\PerformanceMonitor.PlanAnalysis.csproj" />
<ProjectReference Include="..\PerformanceMonitor.Darling.Storage\PerformanceMonitor.Darling.Storage.csproj" />
</ItemGroup>

<ItemGroup>
<InternalsVisibleTo Include="Darling.Tests" />
<!-- #2317: the worker's self-metrics catch names a timeout as a timeout via PgBaselineProvider's
IsCommandTimeout — one definition of the structural predicate, not a copy that drifts. -->
<InternalsVisibleTo Include="PerformanceMonitor.Darling.Service" />
<!-- The viewer's blocking read path reuses PgBlockingPairRowQuery (the shared source-agnostic
chain reconstructor's Postgres row shaper) directly, mirroring how Lite/Dashboard consume
the shared blocking internals. -->
<InternalsVisibleTo Include="PerformanceMonitor.Darling.Viewer" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<RootNamespace>PerformanceMonitor.Darling.Analysis</RootNamespace>
<AssemblyName>PerformanceMonitor.Darling.Analysis</AssemblyName>
<Company>Darling Data, LLC</Company>
<Copyright>Copyright © 2026 Darling Data, LLC</Copyright>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<NoWarn>CA1849;CA2007;CA1508;CA1822;CA1805;CA1510;CA1816;CA1861;CA1845;CA2201;CA1848;CA1852;CA1305;CA1860;CA1707;CA1507;CA1806;CA2254</NoWarn>
<WarningsAsErrors>CS4014</WarningsAsErrors>
</PropertyGroup>

<ItemGroup>
<!-- The plan fetcher connects to the MONITORED SQL Server (same client the Service uses);
Npgsql and Logging.Abstractions flow transitively from the Storage/Notifications references. -->
<PackageReference Include="Microsoft.Data.SqlClient" />
<PackageReference Include="ModelContextProtocol" />
<PackageReference Include="System.Security.Cryptography.ProtectedData" VersionOverride="10.0.11" />
Comment on lines +20 to +21

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Two references added by dependabot, both worth confirming before merge:

  1. L20 — <PackageReference Include="ModelContextProtocol" /> promotes this project from a transitive MCP consumer to a direct one. The code does use it (PgDrillDownCollector.Plans.cs:103,188 — McpHelpers.Truncate), so it isn't wrong, but it's a semantic change dependabot shouldn't be making on its own during a version bump; nothing in Analysis uses an MCP surface that wouldn't already flow via PerformanceMonitor.Common. Confirm this is intentional or drop it.

  2. L21 — VersionOverride="10.0.11" matches the central pin at Directory.Packages.props:29 exactly, so it's a no-op that just adds a divergence point for the next bump to forget about. If Analysis needs this package as a direct reference, drop the override and let CPM resolve it (<PackageReference Include="System.Security.Cryptography.ProtectedData" />); if not, drop the reference entirely — it flows in transitively from Storage/Notifications today.

Same pattern in PerformanceMonitor.PlanAnalysis/PerformanceMonitor.PlanAnalysis.csproj:25.


Generated by Claude Code

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

VersionOverride="10.0.11" here is redundant — Directory.Packages.props (edited in this same PR) already centrally pins System.Security.Cryptography.ProtectedData to 10.0.11, so the override resolves to the exact same version as the central management would provide anyway.

It also contradicts the policy documented right at the top of Directory.Packages.props:

A project that must diverge pins with VersionOverride at its own reference (only tools/CompactionRepro does, to keep reproducing against its original DuckDB).

Darling/PerformanceMonitor.Darling.Service/PerformanceMonitor.Darling.Service.csproj already references this same package with plain <PackageReference Include="System.Security.Cryptography.ProtectedData" /> (no override) — this project should match that pattern rather than adding a second exception to the "only CompactionRepro overrides" rule.

</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\PerformanceMonitor.Analysis\PerformanceMonitor.Analysis.csproj" />
<ProjectReference Include="..\..\PerformanceMonitor.Collectors\PerformanceMonitor.Collectors.csproj" />
<!-- AlertContextSerializer: the finding store persists/reads remediation_action_json through the
SAME serializer both apps use, so a Darling finding's action round-trips byte-identically. -->
<ProjectReference Include="..\..\PerformanceMonitor.Notifications\PerformanceMonitor.Notifications.csproj" />
<!-- PlanAdvisoryAggregator: the fact collector's WS4 plan advisories parse collected plan XML
through the same shared ShowPlanParser/PlanAnalyzer both apps use. -->
<ProjectReference Include="..\..\PerformanceMonitor.PlanAnalysis\PerformanceMonitor.PlanAnalysis.csproj" />
<ProjectReference Include="..\PerformanceMonitor.Darling.Storage\PerformanceMonitor.Darling.Storage.csproj" />
</ItemGroup>

<ItemGroup>
<InternalsVisibleTo Include="Darling.Tests" />
<!-- #2317: the worker's self-metrics catch names a timeout as a timeout via PgBaselineProvider's
IsCommandTimeout — one definition of the structural predicate, not a copy that drifts. -->
<InternalsVisibleTo Include="PerformanceMonitor.Darling.Service" />
<!-- The viewer's blocking read path reuses PgBlockingPairRowQuery (the shared source-agnostic
chain reconstructor's Postgres row shaper) directly, mirroring how Lite/Dashboard consume
the shared blocking internals. -->
<InternalsVisibleTo Include="PerformanceMonitor.Darling.Viewer" />
</ItemGroup>
</Project>
Loading
Loading