Repository navigation
fix(approvals): the legacy surface is COMPLETE — ci.3971 still regressed on the uncovered classes - #1685
Conversation
…lasses, not one ci.3971 (carrying the first shim) still regressed: the extraction deleted FOUR public classes from the Graph namespaces, and in-mesh callers use all of them — SocialMedia/Post's configuration lambda (C# in the NodeType's JSON field, invisible to every .cs-shaped search) calls AddApprovals, and the aggregates reference ApprovalNodeType and ApprovalExtensions by short name (CS0103 at lines 6159/9040). A container probe on the ci.3971 image confirmed the first shim resolves AddApprovals/ApprovalPartition and that ApprovalNodeType was the missing piece. GraphLegacySurface now restores the complete extraction surface as thin delegates: ApprovalExtensions + ApprovalsView + ApprovalLayoutAreas (namespace MeshWeaver.Graph) and ApprovalNodeType (namespace MeshWeaver.Graph.Configuration) — every public member mirrored 1:1. The pin test's node source now exercises all four classes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Completes the legacy MeshWeaver.Graph approvals API surface (removed by the approvals extraction) by reintroducing the remaining missing public types as thin delegates inside MeshWeaver.Approvals, ensuring in-mesh NodeType sources compiled against the old namespaces keep compiling.
Changes:
- Restore the remaining legacy Graph-surface classes (
ApprovalsView,ApprovalLayoutAreas,ApprovalNodeType) as 1:1 delegates to theirMeshWeaver.Approvalsimplementations. - Expand the compile-pin test NodeType source to exercise all restored legacy members (constants, extension methods, and view delegates).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
src/MeshWeaver.Approvals/GraphLegacySurface.cs |
Adds the missing legacy MeshWeaver.Graph / MeshWeaver.Graph.Configuration public classes as delegate shims to the module implementations. |
test/MeshWeaver.Hosting.Monolith.Test/ApprovalsLegacySurfaceCompileTest.cs |
Strengthens the legacy-surface compilation pin to cover all four legacy classes and their key members. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Test Results (shard 0)919 tests 918 ✅ 10m 35s ⏱️ Results for commit 811991d. |
Test Results (shard 5)1 371 tests 1 370 ✅ 5m 7s ⏱️ Results for commit 811991d. |
Test Results (shard 4)1 604 tests 1 598 ✅ 7m 13s ⏱️ Results for commit 811991d. |
Test Results (shard 3) 11 files 11 suites 6m 11s ⏱️ Results for commit 811991d. |
Test Results (shard 1)2 164 tests 2 061 ✅ 7m 32s ⏱️ Results for commit 811991d. |
Test Results (shard 2)2 436 tests 2 432 ✅ 7m 53s ⏱️ Results for commit 811991d. |
Test Results 65 files 65 suites 44m 33s ⏱️ Results for commit 811991d. |
Follow-up to #1683 — the first shim was one class of four
ci.3971(carrying #1683) still regressed 8 NodeTypes: the CS1061AddApprovalserrors were fixed, but CS0103ApprovalNodeType/ApprovalExtensionsremained. The #1654 extraction deleted four public classes from the Graph namespaces, and in-mesh callers use all of them:SocialMedia/Post's configuration lambda — C# stored in the NodeType's JSON field, invisible to every.cs-shaped search (the exact AGENTS.md warning) — calls.AddApprovals()ApprovalNodeTypeandApprovalExtensionsby short nameVerified empirically before writing code: a scratch NodeType compiled on the ci.3971 image itself (memex.localhost) resolved
ApprovalExtensions.ApprovalPartition+AddApprovals(first shim works) and failed only onApprovalNodeType— pinning exactly what was missing.Fix
GraphLegacySurfacenow restores the complete extraction surface as thin delegates, every public member mirrored 1:1:MeshWeaver.Graph:ApprovalExtensions,ApprovalsView,ApprovalLayoutAreasMeshWeaver.Graph.Configuration:ApprovalNodeTypeThe pin test's node source now exercises all four classes (consts, extensions, view delegates). Full solution Release
-warnaserror--no-incrementalgreen;ApprovalModuleTest5/5; pin 1/1.Note per maintainer: the Approvals tests relocate to the Plugins repo with the module in a follow-up (tracked) — this PR only closes the prod regression.
No What's New entry — #1683's entry covers the user-facing fix; this completes it.
🤖 Generated with Claude Code