Repository navigation
Conversation
MeshWeaver.AI.Test (+ its FakeCli helper) and MeshWeaver.Threading.Test now live in MeshWeaver.Plugins src/ beside the engine (plugins#763) — the pack lane runs them there, and the six provider-pack test projects already reference the moved copy. Core deletes its copies: projects, slnx rows, and the shard weights (189+42+1s off the pool; the split-rule ideal drops 2758/6→2526/6). MeshWeaver.AI.Orleans.TestBase deliberately STAYS for now — core's Hosting.Orleans.Test still builds on it until its AI-flavored suites make the same trip. flake-repro's dispatch example re-targets a resident suite. The NoStaticCollectionsTest allowlist keeps its MeshWeaver.AI.Test entries: the guard file is linked into the moved suite via MeshWeaverRoot and still covers it there. PluginCatalog's InternalsVisibleTo likewise stays — IVT binds the assembly NAME, which now builds in plugins. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tz1i2fFcJhvR1Eje8yFH5F
There was a problem hiding this comment.
Pull request overview
Removes the core-repo copies of the MeshWeaver.AI.Test and MeshWeaver.Threading.Test suites (and the MeshWeaver.AI.Test.FakeCli helper) after they were relocated to MeshWeaver.Plugins, and updates CI sharding metadata / repro workflow commentary accordingly.
Changes:
- Deleted
test/MeshWeaver.AI.Test/**,test/MeshWeaver.Threading.Test/**, andtest/MeshWeaver.AI.Test.FakeCli/**from this repo. - Removed the deleted test projects from
MeshWeaver.slnxand from the shard-weight table in.github/scripts/shard-assign.sh. - Updated the example repro target in
.github/workflows/flake-repro.ymlcomments to point at a resident suite/test.
Reviewed changes
Copilot reviewed 98 out of 250 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/MeshWeaver.Threading.Test/xunit.runner.json | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/ThreadCreatableFromHomeTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/StreamingRecursionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/MeshWeaver.Threading.Test.csproj | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/JsonPatchThreadMessagesTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/FanOutSpliceNegotiationTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/ContentUploadWedgeTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/ContentUploadTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.Threading.Test/appsettings.json | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/xunit.runner.json | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/UseWithoutSeeResolverTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/TruncateToContextBudgetTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadViewModelJsonElementTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadSelfAccessCreationTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadSelectionPersistenceTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadMessageToolTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadIconGeneratorTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadHubSelfReadTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadComposerRoutingTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ThreadAddressResolutionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/TestData/TestDoc/ParentDoc.md | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/TestData/TestDoc/ChildDoc.md | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/SkillAutocompleteTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ResolveRedirectOnDeniedTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/RenderAreaAccessDeniedTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ProviderKeyProtectorTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ProviderKeyNoPlaintextTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ProviderKeyEncryptionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ProviderCredentialSeedWiringTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ProviderCredentialSeedDecisionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ProgressGate.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/PluginResilienceTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/PatchApplicableFieldsTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/PackageSourceRegistrationTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ModelProviderSelectionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ModelProviderIconsTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/MeshWeaver.AI.Test.csproj | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/MeshOperationsMergePatchTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/McpAccessDeniedSurfacingTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/KernelScriptReferencesSharingTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/HiddenToolAttributeTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/DocumentNodeGetTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/DeleteErrorLineTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ContentIndexingOffToolTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ContentImagePathParsingTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/ConcurrencyStressCollection.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/CatalogSourceNodes.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/CatalogProviderLabelTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/CachePriceResolutionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AutoModelRouterTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/appsettings.json | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AITestBase.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AiSettingsTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AiMenuContributionsTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AiContentSyncBackTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AiContentSourcesTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AiContentSectionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentSkillSyncServiceTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentsApplicationModuleTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentRosterLiveCreateTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentPickerUtilityFilterTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentPickerQueryTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentPartitionSyncGateTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentParserContributionTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentNamespacePolicyTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test/AgentContextPromptTest.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test.FakeCli/Program.cs | Removed (suite relocated to MeshWeaver.Plugins). |
| test/MeshWeaver.AI.Test.FakeCli/MeshWeaver.AI.Test.FakeCli.csproj | Removed (suite relocated to MeshWeaver.Plugins). |
| MeshWeaver.slnx | Removed deleted test projects from the solution. |
| .github/workflows/flake-repro.yml | Updated the comment example to reference a resident test project/test. |
| .github/scripts/shard-assign.sh | Removed weights for deleted projects and updated balancing commentary. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The byte-order example is the ORIGINAL defect's pair — the then-resident MeshWeaver.AI.Test vs MeshWeaver.Acme.Test — now marked as historical (the suite moved to MeshWeaver.Plugins, #2276) instead of swapped for a name this script never enumerates. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tz1i2fFcJhvR1Eje8yFH5F
Test Results (shard 2)929 tests 929 ✅ 4m 45s ⏱️ Results for commit 9c3af33. ♻️ This comment has been updated with latest results. |
Test Results (shard 4) 10 files 10 suites 5m 48s ⏱️ Results for commit 9c3af33. ♻️ This comment has been updated with latest results. |
Test Results (shard 0)889 tests 889 ✅ 5m 39s ⏱️ Results for commit 9c3af33. ♻️ This comment has been updated with latest results. |
Test Results (shard 3)522 tests 517 ✅ 15m 32s ⏱️ For more details on these failures, see this check. Results for commit 9c3af33. ♻️ This comment has been updated with latest results. |
Test Results (shard 5)1 624 tests 1 623 ✅ 7m 1s ⏱️ Results for commit 9c3af33. ♻️ This comment has been updated with latest results. |
Test Results (shard 1)985 tests 985 ✅ 7m 0s ⏱️ Results for commit 9c3af33. ♻️ This comment has been updated with latest results. |
Test Results 42 files 42 suites 45m 47s ⏱️ For more details on these failures, see this check. Results for commit 9c3af33. ♻️ This comment has been updated with latest results. |
|
The shard-3 red is not yours, and I can show it rather than assert it — but it is not a flake to re-run past either, so I filed it as #2551.
The decisive number is in the green column: on So: your diff is exonerated, and Nothing needed from you on #2551 — merge this on green once the required check clears. |
|
🚨 Do not merge yet — the plugins copy is now STALE, and merging would silently lose three files' worth of work. MeshWeaver.Plugins#763 copied the suites at ~19:27Z. Since then, core
The merge surfaces it as a Order that keeps the work: port the three files' current core content into (This PR is separately red on the FutuRe render flake, Systemorph/MeshWeaver.Plugins#1141 — which #2556 now suggests is a NodeType-registration ordering defect rather than a test race.) |
|
🚨 This PR is Since this branch's merge-base (
None of the three exists on the destination branch — I checked So the deletion half and the arrival half are currently out of step by three files, and the conflict git is showing you is exactly that gap. Take "delete" and you lose:
What has to happen, in order
Separately: the shard-3 red on this PR is not yoursSee the comment above and #2551 — |
The modify/delete conflict is core main updating a file this branch removes (4e1a05e, "22 Task bridges gone…"). Taking the deletion is only safe because MeshWeaver.Plugins#778 carried that exact delta into the plugins copy first — two files that never existed there plus this one's update. Re-verified at THIS merge, not at the earlier one, because the check is only worth what it measured: a full directory diff of core main's test/MeshWeaver.AI.Test against plugins main's src/MeshWeaver.AI.Test now differs in four files, all deliberate — three are `test/`→`src/` path strings (0 non-path diff lines each) and MeshPluginTest carries #763's RunTests conditional-by-contract adaptation. No content drift remains. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tz1i2fFcJhvR1Eje8yFH5F
|
Unblocked and updated. MeshWeaver.Plugins#778 merged (22:43Z), carrying the delta that had landed on core main after the copy: two files that never existed in the plugins copy ( Staleness re-checked at THIS merge, not trusted from the earlier one — a check is only worth what it measured, and main moved several times in between. Full directory diff of core main's
No content drift remains. Also on this branch: revert-check clean ( The remaining question is the FutuRe render flake (#2533). This run is the first on a main carrying #2549 (the ALC drain is now a subscription rather than a spin that unloaded anyway) — a plausible cure, though #2556 since suggests the deeper cause is NodeType-registration ordering in the importer, which this branch does not touch either way. |
🚨 Correction: this branch DOES change what runs next to FutuRe. My earlier "the diff cannot reach it" was wrong.I claimed several times — here and on Systemorph/MeshWeaver.Plugins#1141 — that shard 3's membership and order were byte-identical with and without this branch, so the diff could not affect the FutuRe test. That comparison was invalid. I compared the branch's OLD shard-assign.sh against its NEW one, both evaluated over the branch's own project pool. I never compared against current main. Doing that now, the composition is materially different:
On main, It also explains the asymmetry I had been treating as noise: main is 0 failures in 12 runs while this branch has failed 4/4. That is not a flake distribution. What this does and does not mean
Reproducing locally now in the order the shard actually runs them (Orleans, then FutuRe, same process pool, Related: Systemorph/MeshWeaver.Plugins#1141 (the flake), #2556 (NodeType-registration ordering, still the leading explanation for the underlying failure). |
Summary
The additive half merged as MeshWeaver.Plugins#763:
MeshWeaver.AI.Test(+ FakeCli) andMeshWeaver.Threading.Testnow live in pluginssrc/beside the engine, run by plugins CI, with all nine dependent plugins projects re-pointed to the local copies (includingMarkdown.Export.Test, whose transitiveOrleansTestBaseroute the review caught). Core deletes its copies:MeshWeaver.slnxrows, and their shard weights (189+42+1 s off the pool; the split-rule ideal in the comment follows, 2758/6 → 2526/6);flake-repro.yml's dispatch example re-targets a resident suite.What deliberately stays
src/MeshWeaver.AI.Orleans.TestBase— core'stest/MeshWeaver.Hosting.Orleans.Teststill builds on it; it travels with the engine's source move, together with the AI-flavored Orleans suites.NoStaticCollectionsTest'sMeshWeaver.AI.Test.*allowlist entries — the guard file is linked into the moved suite via$(MeshWeaverRoot)and still covers it there.MeshWeaver.PluginCatalog'sInternalsVisibleTo("MeshWeaver.AI.Test")— IVT binds the assembly NAME, which now builds in plugins.Verification
CI-parity solution build (
-c Release -warnaserror) green with the projects gone —0 Error(s).No What's New entry: pure-internal test relocation.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Tz1i2fFcJhvR1Eje8yFH5F