Repository navigation
docs(approvals): mark the Approvals module's relocation to MeshWeaver.Plugins (task #72) — double-ship, tests moved with the module - #1698
Conversation
….Plugins (task #72) — double-ship, platform copy is master until the flip; tests moved with the module Task #72 of the modularization program (copies the pattern task #63 / MeshWeaver.SocialMedia#31 established, extended by the maintainer directive that the module's tests relocate too): - src/MeshWeaver.Approvals/README.md — the relocation state: mirror rule (byte-identical .cs EXCEPT the platform-only GraphLegacySurface.cs), the exact flip blockers (in-mesh callers by construction in the SocialMedia + UWDeepfield partitions; the Memex.Portal.Shared ships-the-bits reference; program-plan task #74), and what stays platform-level regardless (Approval record + satellite mapping in Mesh.Contract, the ApprovalsEnabled marker in Graph, the legacy surface + its compile test). - test/MeshWeaver.Graph.Test/ApprovalModuleTest.cs — DELETED: relocated to the satellite's src/MeshWeaver.Approvals.Test (MeshWeaver.Plugins#499), where the module CI executes it against a pinned platform ref. ApprovalAndNotificationTest stays (the Approval record is platform-level); ApprovalsLegacySurfaceCompileTest stays (platform compat contract). - MeshWeaver.Graph.Test.csproj — the now-unused Approvals ProjectReference removed; MeshWeaver.Approvals.csproj — the now-dead InternalsVisibleTo MeshWeaver.Graph.Test removed (the satellite csproj grants IVT to MeshWeaver.Approvals.Test instead). NOT the source delete — the double-ship marker that keeps the two copies from diverging. What's New: skipped — docs + test-relocation marker, no user-visible change (the module keeps shipping identically in the image's app closure), same rationale as #1688. Verification: satellite sources byte-identical to this repo's copies (cmp over all 5 .cs); dotnet build src/MeshWeaver.Approvals and test/MeshWeaver.Graph.Test -c Release -warnaserror → 0 warnings, 0 errors; remaining ApprovalAndNotification tests 34/34 green (fresh .trx). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Marks the Approvals module relocation to Systemorph/MeshWeaver.Plugins by documenting the double-ship state in the platform repo and removing the now-relocated module tests and related build wiring from MeshWeaver.Graph.Test.
Changes:
- Removed the Approvals module test (
ApprovalModuleTest) from the platform repo and dropped the Graph.Test → ApprovalsProjectReference. - Updated
src/MeshWeaver.Approvals/README.mdto record the relocation state, mirroring rules, and flip blockers. - Removed the
InternalsVisibleTo MeshWeaver.Graph.Testgrant fromMeshWeaver.Approvals.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| test/MeshWeaver.Graph.Test/MeshWeaver.Graph.Test.csproj | Drops the MeshWeaver.Approvals project reference now that module tests moved to the satellite repo. |
| test/MeshWeaver.Graph.Test/ApprovalModuleTest.cs | Deletes the module-level tests from the platform test suite (intended relocation). |
| src/MeshWeaver.Approvals/README.md | Documents relocation/double-ship rules and flip blockers for a future delete/flip PR. |
| src/MeshWeaver.Approvals/MeshWeaver.Approvals.csproj | Removes IVT to the deleted test assembly to keep the module’s surface clean. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Test Results (shard 5)1 371 tests 1 370 ✅ 4m 59s ⏱️ Results for commit b22539a. |
Test Results (shard 0)920 tests 919 ✅ 10m 59s ⏱️ Results for commit b22539a. |
Test Results (shard 4)1 607 tests 1 601 ✅ 7m 34s ⏱️ Results for commit b22539a. |
Test Results (shard 3) 11 files 11 suites 7m 8s ⏱️ Results for commit b22539a. |
Test Results (shard 1)2 164 tests 2 061 ✅ 7m 30s ⏱️ Results for commit b22539a. |
Test Results (shard 2)2 450 tests 2 446 ✅ 7m 40s ⏱️ Results for commit b22539a. |
Test Results 65 files 65 suites 45m 53s ⏱️ Results for commit b22539a. |
Task #72 (modularization program): the Approvals module relocated to Systemorph/MeshWeaver.Plugins (PR #499) — the Approvals package becomes a MIXED package (node content + compiled module), with the satellite's CI building the module Release
-warnaserroragainst a pinned platform ref (a0a0288d5= v3.0.0-rc3), executing the relocated tests, and packing the bundle via the reusablemodule-packlane (#1664 Slice B / #1673), bundle closure + manifest asserted in CI. This copies the pattern task #63 / MeshWeaver.SocialMedia#31 established for Social, extended per the maintainer directive: the approval tests move to plugins as well.This platform PR is deliberately NOT the source delete — it is the double-ship marker that keeps the two copies from diverging:
src/MeshWeaver.Approvals/README.md— records the relocation state, the "platform copy is the MASTER until the flip; mirror.csverbatim — EXCEPTGraphLegacySurface.cs, which is platform-only" rule, and the exact flip blockers a future delete-PR must resolve:SocialMedia/{Post,PostsHub,Profile}.jsonconfiguration lambdas call.AddApprovals()(MeshWeaver.SocialMedia repo), andUWDeepfield/TreatySubmission/Source/…+UWDeepfield/UWDeepfieldHome/Source/UwHomeShims.csuseApprovalExtensions.ApprovalPartition/ApprovalNodeType.NodeTypeviausing MeshWeaver.Graph(MeshWeaver.Reinsurance repo). NodeType compilation sees only TRUSTED_PLATFORM_ASSEMBLIES (the fix(approvals): restore the legacy MeshWeaver.Graph surface — the ci.3961 bake regression #1683/fix(approvals): the legacy surface is COMPLETE — ci.3971 still regressed on the uncovered classes #1685AddApprovalsbreakage class — which WAS this module); a freshcontent/ samples/*/Data+ node-JSON + live-mesh sweep is mandatory before any symbol is deleted (repo-side sweep done for this PR: content/ and samples/ hold no callers — the callers are in the two satellite repos above and in production databases);Memex.Portal.Sharedships-the-bits ProjectReference (this module rides the app closure — no@(MeshModule)entry inmemex/MeshModulesPublish.targets);It also records what stays platform-level REGARDLESS of the flip: the
Approvalrecord +_Approval→annotationssatellite mapping (MeshWeaver.Mesh.Contract), theApprovalsEnabledmarker /HasApprovals()guard (MeshWeaver.Graph), andGraphLegacySurface.cs+ApprovalsLegacySurfaceCompileTestuntil the in-mesh callers migrate.test/MeshWeaver.Graph.Test/ApprovalModuleTest.csis DELETED here — it now lives in the satellite assrc/MeshWeaver.Approvals.Test(5/5 green there against the pinned ref).ApprovalAndNotificationTeststays (it pins the platform-levelApproval/Notificationdata models);ApprovalsLegacySurfaceCompileTeststays (it pins the PLATFORM's compat surface — a platform contract, not module behavior). The now-unusedProjectReference(Graph.Test → Approvals) andInternalsVisibleTo MeshWeaver.Graph.Testare removed; the satellite csproj grants IVT toMeshWeaver.Approvals.Testinstead.InternalsVisibleTofrom Graph (the Approvals→Graph internals coupling is gone; nothing to hack around).What's New: skipped — docs + test-relocation marker, no user-visible change (pure relocation; the module keeps shipping identically in the image's app closure), same rationale as #1688.
Verification: satellite sources byte-identical to this repo's copies (
cmpover all 5 mirrored.cs);dotnet build src/MeshWeaver.Approvals -c Release -warnaserroranddotnet build test/MeshWeaver.Graph.Test -c Release -warnaserror→ 0 warnings, 0 errors; remainingApprovalAndNotificationtests 34/34 green (fresh.trx).Merge order: after MeshWeaver.Plugins#499 (satellite first — done when both are merged).
🤖 Generated with Claude Code