Skip to content

fix(approvals): the legacy surface is COMPLETE — ci.3971 still regressed on the uncovered classes - #1685

Merged
rbuergi merged 1 commit into
mainfrom
fix/approvals-legacy-surface-complete
Aug 16, 2026
Merged

rbuergi merged 1 commit into
mainfrom
fix/approvals-legacy-surface-complete

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #1683 — the first shim was one class of four

ci.3971 (carrying #1683) still regressed 8 NodeTypes: the CS1061 AddApprovals errors were fixed, but CS0103 ApprovalNodeType / ApprovalExtensions remained. 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()
  • the aggregates reference ApprovalNodeType and ApprovalExtensions by short name

Verified 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 on ApprovalNodeType — pinning exactly what was missing.

Fix

GraphLegacySurface now restores the complete extraction surface as thin delegates, every public member mirrored 1:1:

  • MeshWeaver.Graph: ApprovalExtensions, ApprovalsView, ApprovalLayoutAreas
  • MeshWeaver.Graph.Configuration: ApprovalNodeType

The pin test's node source now exercises all four classes (consts, extensions, view delegates). Full solution Release -warnaserror --no-incremental green; ApprovalModuleTest 5/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

…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>
Copilot AI lite review requested due to automatic review settings August 16, 2026 18:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 their MeshWeaver.Approvals implementations.
  • 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.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

919 tests   918 ✅  10m 35s ⏱️
 10 suites    1 💤
 10 files      0 ❌

Results for commit 811991d.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

1 371 tests   1 370 ✅  5m 7s ⏱️
   11 suites      1 💤
   11 files        0 ❌

Results for commit 811991d.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

1 604 tests   1 598 ✅  7m 13s ⏱️
   11 suites      6 💤
   11 files        0 ❌

Results for commit 811991d.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

   11 files     11 suites   6m 11s ⏱️
2 197 tests 2 006 ✅ 191 💤 0 ❌
2 565 runs  2 374 ✅ 191 💤 0 ❌

Results for commit 811991d.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

2 164 tests   2 061 ✅  7m 32s ⏱️
   11 suites    103 💤
   11 files        0 ❌

Results for commit 811991d.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

2 436 tests   2 432 ✅  7m 53s ⏱️
   11 suites      4 💤
   11 files        0 ❌

Results for commit 811991d.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

    65 files      65 suites   44m 33s ⏱️
10 691 tests 10 385 ✅ 306 💤 0 ❌
11 059 runs  10 753 ✅ 306 💤 0 ❌

Results for commit 811991d.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants