Repository navigation
feat(modules): the real MeshWeaver.AI update swaps live — added background services, keyed services, registry eviction (slice 7) - #6142
Merged
rbuergi merged 1 commit intoOct 5, 2026
Conversation
…round services, keyed services, registry eviction (slice 7) - Hosted services are no longer part of a generation's root-service shape: one ModuleHostedServicesHost starts each module's CURRENT generation's hosted registrations; a swap stops the old set and starts the new one, whatever its size (the real AI N->N+1 differed by exactly one added hosted service). - Keyed root services are forwarded under the module's key (a module-owned key stays a blocker). - MeshContentTypeRegistry evicts a collectible context's types on Unloading — the heap dump's only strong root of the swapped-out AI generation. Measured locally on the incident pair (AI from Plugins b7a083d98~1 -> current): NodeType using ThreadPreparation.Group fails CS0117 on N, swap answers Live, compiles Ok on N+1, N collected. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
|
Auto-merge was not armed. This pull request targets |
rbuergi
merged commit Oct 5, 2026
e88d1c3
into
feat/module-live-endpoints-views
19 of 21 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #6128. Policy
module-live-update-default; doc:Doc/Architecture/LiveModuleUpdate→ "What is shipped (slice 7)".What changed
ModuleHostedServicesHoststarts the CURRENT generation's set and a swap stops/starts whole sets.MeshContentTypeRegistryevicts types of a collectible context onUnloading(it was the only strong root of a swapped-out AI generation in a heap dump).Measured on the real incident pair (local run, not a CI test — CI cannot build two AI generations): MeshWeaver.AI from Plugins
b7a083d98~1as N and current as N+1, monolith test mesh. NodeType usingThreadPreparation.Group:CS0117on N; swap →Live(5 hubs recycled);Okon N+1; N collected. Before this PR the same swap answeredRestartRequired("root services changed shape", +1 hosted service), and after the shape fix N was retained by the registry.Tests:
ModuleRootServicesSwapTest.AnUpdateThatAddsAHostedService_SwapsLive_AndStartsIt;ContentTypeRegistryReleasesAnUnloadedGenerationTest(mutation-checked: fails with the eviction removed; control: a non-unloading context keeps its claim). Local Release: Compiler.Pipeline 1218/0 failed, Memex.Portal.Shared 2299/0, Graph 2508/0, Layout 616/0, Messaging.Hub 567/0, Hosting 1099/1 (known #6050 flakeAGatedSweepHearsItsOwnCompileTest).Not established: a thread running end to end (model round) on N+1; Blazor component static caches.
Pairs-with: none — no public type or member removed.
Implementers: none — no interface member added.
Mirror-sync: none — no i18n catalog change.
🤖 Generated with Claude Code