Skip to content

The moved test suites leave core (#2276 test emigration, deletion half) - #2526

Closed
rbuergi wants to merge 4 commits into
mainfrom
chore/2276-moved-test-suites-leave-core
Closed

rbuergi wants to merge 4 commits into
mainfrom
chore/2276-moved-test-suites-leave-core

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

The additive half merged as MeshWeaver.Plugins#763: MeshWeaver.AI.Test (+ FakeCli) and MeshWeaver.Threading.Test now live in plugins src/ beside the engine, run by plugins CI, with all nine dependent plugins projects re-pointed to the local copies (including Markdown.Export.Test, whose transitive OrleansTestBase route the review caught). Core deletes its copies:

  • the three projects, their MeshWeaver.slnx rows, 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's test/MeshWeaver.Hosting.Orleans.Test still builds on it; it travels with the engine's source move, together with the AI-flavored Orleans suites.
  • NoStaticCollectionsTest's MeshWeaver.AI.Test.* allowlist entries — the guard file is linked into the moved suite via $(MeshWeaverRoot) and still covers it there.
  • MeshWeaver.PluginCatalog's InternalsVisibleTo("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

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
Copilot AI lite review requested due to automatic review settings August 27, 2026 19:28

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

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/**, and test/MeshWeaver.AI.Test.FakeCli/** from this repo.
  • Removed the deleted test projects from MeshWeaver.slnx and from the shard-weight table in .github/scripts/shard-assign.sh.
  • Updated the example repro target in .github/workflows/flake-repro.yml comments 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.

Comment thread .github/scripts/shard-assign.sh Resolved
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
@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

929 tests   929 ✅  4m 45s ⏱️
  6 suites    0 💤
  6 files      0 ❌

Results for commit 9c3af33.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

   10 files     10 suites   5m 48s ⏱️
3 727 tests 3 535 ✅ 192 💤 0 ❌
4 333 runs  4 141 ✅ 192 💤 0 ❌

Results for commit 9c3af33.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

889 tests   889 ✅  5m 39s ⏱️
  6 suites    0 💤
  6 files      0 ❌

Results for commit 9c3af33.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

522 tests   517 ✅  15m 32s ⏱️
  6 suites    4 💤
  6 files      1 ❌

For more details on these failures, see this check.

Results for commit 9c3af33.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

1 624 tests   1 623 ✅  7m 1s ⏱️
    8 suites      1 💤
    8 files        0 ❌

Results for commit 9c3af33.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

985 tests   985 ✅  7m 0s ⏱️
  6 suites    0 💤
  6 files      0 ❌

Results for commit 9c3af33.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

   42 files     42 suites   45m 47s ⏱️
8 676 tests 8 478 ✅ 197 💤 1 ❌
9 282 runs  9 084 ✅ 197 💤 1 ❌

For more details on these failures, see this check.

Results for commit 9c3af33.

♻️ This comment has been updated with latest results.

@rbuergi

rbuergi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

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.

MeshWeaver.FutuRe.Test.FutuReAnalysisTest.EuropeRe_AnnualReport_EmbeddedCharts_ShouldRenderViaPathResolution failed with Expected the observable to emit a value matching the predicate within 50s. This PR touches only test/MeshWeaver.AI.Test, MeshWeaver.AI.Test.FakeCli, the workflows and the slnx — nothing under FutuRe. What it does do is delete two projects, which re-packs every shard:

shard 3 on main (33112451022, green) shard 3 here (33110530713, red)
Orleans 221s, GitSync 49s, FutuRe 50s, Memex.Portal.Shared 24s, Hosting 7s, Kernel 0s, Reactive.Assertions 1s Orleans 265s, FutuRe FAILED, Auth 44s, Documentation 11s, PluginImage 0s, TestDomain 0s

The decisive number is in the green column: on main the entire FutuRe.Test project takes 50 s against a 50 s assertion. The margin is ~zero, so main is passing on luck — and here Orleans alone ran 44 s longer, which was enough.

So: your diff is exonerated, and Consolidate test results should go green on a re-pack that lands differently. But I'd rather not have you re-run into a pass, because that buries it — the next PR that changes the test set inherits the same false attribution, and #2551 is where the real question lives (why an embedded-chart render via path resolution takes ~50 s at all; per AGENTS.md, widening the budget is the one fix that is off the table).

Nothing needed from you on #2551 — merge this on green once the required check clears.

@rbuergi

rbuergi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

🚨 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 main has changed them again:

commit files
4e1a05e8b AI tools: 22 Task bridges gone, 17 uncancellable tool calls fixed, the ThreadPool hop made drainable AgentToolCancellationTest.cs, MeshToolCancellationTest.cs
6ec8c3e1a A host-bound mesh builder carries its configuration AiCatalogPathOwnershipTest.cs

The merge surfaces it as a modify/delete conflict on AgentToolCancellationTest.cs — main modified what this branch deletes. Resolving that conflict by taking the deletion (which is this PR's intent) is exactly how a cross-repo move loses merged fixes: the plugins copy would keep the pre-19:27 version forever, with nothing failing to say so.

Order that keeps the work: port the three files' current core content into MeshWeaver.Plugins/src/MeshWeaver.AI.Test first, THEN land this deletion. And re-run this check at merge time rather than trusting it now — every hour this PR waits, more can land on those paths.

(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.)

@rbuergi

rbuergi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

🚨 This PR is DIRTY, and resolving the conflict the obvious way silently deletes three test files that landed on main tonight. Flagging before anyone resumes it, because a DIRTY PR runs zero CI — nothing here would go red to warn you.

Since this branch's merge-base (271a83b26), main has added to the very directories this PR deletes:

file arrived in
test/MeshWeaver.AI.Test/AiCatalogPathOwnershipTest.cs (new) 6ec8c3e1a — "A host-bound mesh builder carries its configuration — closing the SERVE half of #1209" (#2534)
test/MeshWeaver.AI.Test/MeshToolCancellationTest.cs (new) 4e1a05e8b — "AI tools: 22 Task bridges gone, 17 uncancellable tool calls fixed" (#2537)
test/MeshWeaver.AI.Test/AgentToolCancellationTest.cs (modified) 4e1a05e8b (same)

None of the three exists on the destination branch — I checked Systemorph/MeshWeaver.Plugins feat/ai-tests-travel (#736) for all of them: zero hits.

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

  1. LinkedIn publish: accept authorPath, so node-native posts can publish at all #736 picks up all three first — the two new files and the modification to AgentToolCancellationTest.cs. It is DIRTY too, so it needs the same treatment.
  2. Only then does this PR's deletion become safe.
  3. After resolving, run the revert-check AGENTS.md prescribes: git diff origin/main...HEAD --stat (three dots) must show only the intended deletions. A branch-favoured hunk quietly undoing merged work is the documented failure mode here, not a hypothetical — MeshWeaver#2293 hit it with eleven DU conflicts.

Separately: the shard-3 red on this PR is not yours

See the comment above and #2551 — FutuRe.Test sits at its own 50s assertion budget on main, and deleting two projects re-packs the shards enough to tip it. That one needs no action here.

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
@rbuergi

rbuergi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

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 (MeshToolCancellationTest, AiCatalogPathOwnershipTest) plus AgentToolCancellationTest's update from 4e1a05e8b. So taking the deletion here no longer loses anything.

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 test/MeshWeaver.AI.Test against plugins main's src/MeshWeaver.AI.Test now differs in exactly four files, all deliberate:

file diff verdict
AiContentPackDriftTest 4 lines, 0 non-path test/→src/ strings
ConcurrencyStressCollection 2 lines, 0 non-path test/→src/ strings
ConnectStrategyTest 2 lines, 0 non-path test/→src/ strings
MeshPluginTest 33 lines #763's RunTests-conditional-by-contract adaptation

No content drift remains.

Also on this branch: revert-check clean (git diff origin/main...HEAD touches only the six intended paths), and a CI-parity solution build -c Release -warnaserror → 0 Error(s).

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.

@rbuergi

rbuergi commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

🚨 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:

shard 3
main Orleans, GitSync, FutuRe, Portal.Shared, Hosting, Kernel, Reactive.Assertions
this branch Orleans, FutuRe, Auth, Documentation, PluginImage, TestDomain

On main, GitSync.Test runs between Orleans and FutuRe. On this branch FutuRe runs immediately after MeshWeaver.Hosting.Orleans.Test — the heaviest ALC/assembly-churn project in the repo. Removing three projects legitimately rebalances LPT, and that is the mechanism by which this diff reaches a test it does not touch.

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

  • The bug is real and pre-existing — a test that fails only when preceded by Orleans is a cross-test interaction, exactly the "passes in isolation, fails in bulk" shape /debug describes. Main simply never schedules it that way.
  • This branch is what exposes it. So the honest status is not "blocked by an unrelated flake" — it is "this change surfaces a latent defect", which is a different obligation.

Reproducing locally now in the order the shard actually runs them (Orleans, then FutuRe, same process pool, DOTNET_PROCESSOR_COUNT=4) — the probe /debug prescribes and that I should have run four failures ago instead of re-asserting the diff was unrelated.

Related: Systemorph/MeshWeaver.Plugins#1141 (the flake), #2556 (NodeType-registration ordering, still the leading explanation for the underlying failure).

@rbuergi

rbuergi commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #2588, which carries this change plus the other two (one CI run instead of three). The only conflict — MigrationWorkloadModelGuard's content/ root — is resolved there keeping BOTH the optional root and the note that the subject moved. Branch kept; reopen if #2588 has trouble.

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