Repository navigation
move(core): the memex test container and the voice gateway leave core for MeshWeaver.Plugins (delete half) - #7306
Merged
Merged
Conversation
… for MeshWeaver.Plugins (delete half) src/MeshWeaver.Testcontainers and clients/voice-gateway move to MeshWeaver.Plugins (src/ and clients/). Both were consumed only there: the test container's two consumers already lived in Plugins, and nothing in core built or tested the voice gateway. Their Testcontainers and Testcontainers.PostgreSql pins leave with them; no core project restores either. MeshWeaver.Hosting.AspNetCore and MeshWeaver.Markdown.Export.Contract stay: a satellite's compiled module derives from MeshEndpointProviderAttribute and compiles it from core source, and the contract is pinned by Hosting.AspNetCore alone. clients/python stays: core's python-gate and pandas-gate images COPY it. CarvingProjectsOutOfCore records all three verdicts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Test Results 25 files 25 suites 56m 39s ⏱️ Results for commit a1e513d. ♻️ This comment has been updated with latest results. |
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Plugins#4341 returned 404, so the replacement files, consumer adaptations, and required merge into Plugins main remain unverified.
No open issues 🎉
What changed in this PR
This PR removes the memex test-container library and voice gateway from core as the deletion half of their move to MeshWeaver.Plugins. It keeps the Python SDK and platform extension points in core where existing consumers still need them.
Changes:
- Removes
MeshWeaver.Testcontainers, its solution entry, and the two Testcontainers package pins. - Removes the voice gateway’s implementation, tests, packaging, and wake-word tooling.
- Updates documentation and comments to describe the new ownership; workflow and acceptance-script behavior is unchanged.
| File | Description |
|---|---|
test/Directory.Packages.props |
Removes the PostgreSQL Testcontainers pin. |
src/MeshWeaver.Testcontainers/README.md |
Removes the library guide from core. |
src/MeshWeaver.Testcontainers/MeshWeaver.Testcontainers.csproj |
Removes the test-support project. |
src/MeshWeaver.Testcontainers/MemexReadiness.cs |
Removes the portal-readiness helper. |
src/MeshWeaver.Testcontainers/MemexContainer.cs |
Removes the container builder and configuration. |
src/MeshWeaver.Documentation/Data/Architecture/VoiceModelDistribution.md |
Identifies the gateway’s new repository. |
src/MeshWeaver.Documentation/Data/Architecture/InstanceIdentityAndSetup.md |
Updates test-container ownership. |
src/MeshWeaver.Documentation/Data/Architecture/FirstRunSetup.md |
Names the library’s Plugins location. |
src/MeshWeaver.Documentation/Data/Architecture/DocsFollowTheFunctionality.md |
Records the gateway move and destination tests. |
src/MeshWeaver.Documentation/Data/Architecture/DockerHubInCi.md |
Notes that the gateway left core. |
src/MeshWeaver.Documentation/Data/Architecture/CarvingProjectsOutOfCore.md |
Documents moved components and retained dependencies. |
MeshWeaver.slnx |
Removes the Testcontainers project entry. |
Directory.Packages.props |
Removes the Testcontainers package pin. |
clients/voice-gateway/wakeword/setup-hey-memex.sh |
Removes wake-word setup tooling. |
clients/voice-gateway/wakeword/README.md |
Removes the wake-word guide. |
clients/voice-gateway/wakeword/phase2_train.sh |
Removes the training script. |
clients/voice-gateway/wakeword/phase2_data.py |
Removes training-data preparation. |
clients/voice-gateway/wakeword/hey_memex.json |
Removes the wake-word manifest. |
clients/voice-gateway/tests/test_vad.py |
Removes endpoint-detection tests. |
clients/voice-gateway/tests/test_threads.py |
Removes thread-client tests. |
clients/voice-gateway/tests/test_stt.py |
Removes audio-wrapper tests. |
clients/voice-gateway/tests/test_streaming.py |
Removes streaming tests. |
clients/voice-gateway/tests/test_router.py |
Removes routing and music-command tests. |
clients/voice-gateway/tests/test_pipeline.py |
Removes voice-pipeline tests. |
clients/voice-gateway/tests/test_ollama.py |
Removes local-model integration tests. |
clients/voice-gateway/tests/test_context.py |
Removes session and conversation-context tests. |
clients/voice-gateway/run-local.sh |
Removes the local launch script. |
clients/voice-gateway/README.md |
Removes the gateway guide. |
clients/voice-gateway/pyproject.toml |
Removes Python packaging and test configuration. |
clients/voice-gateway/memex_voice_gateway/vad.py |
Removes utterance endpoint detection. |
clients/voice-gateway/memex_voice_gateway/tts.py |
Removes speech synthesis and audio serving. |
clients/voice-gateway/memex_voice_gateway/threads.py |
Removes the MCP thread client. |
clients/voice-gateway/memex_voice_gateway/stt.py |
Removes speech-transcription integration. |
clients/voice-gateway/memex_voice_gateway/session.py |
Removes spoken-session persistence. |
clients/voice-gateway/memex_voice_gateway/satellite.py |
Removes ESPHome satellite integration. |
clients/voice-gateway/memex_voice_gateway/pipeline.py |
Removes voice-round orchestration. |
clients/voice-gateway/memex_voice_gateway/musicassistant.py |
Removes Music Assistant integration. |
clients/voice-gateway/memex_voice_gateway/homeassistant.py |
Removes Home Assistant integration. |
clients/voice-gateway/memex_voice_gateway/config.py |
Removes gateway configuration and phrases. |
clients/voice-gateway/memex_voice_gateway/__main__.py |
Removes application wiring and entry point. |
clients/voice-gateway/memex_voice_gateway/__init__.py |
Removes package metadata. |
clients/voice-gateway/entrypoint.sh |
Removes container startup tooling. |
clients/voice-gateway/Dockerfile |
Removes the gateway image definition. |
clients/voice-gateway/docker-compose.yml |
Removes local container orchestration. |
clients/voice-gateway/.gitignore |
Removes gateway-specific ignore rules. |
clients/README.md |
Describes the remaining Python SDK and relocated clients. |
.github/workflows/dotnet-test.yml |
Updates a comment about Testcontainers ownership. |
.github/workflows/clients.yml |
Updates comments about client locations and coverage. |
.github/scripts/control-image-acceptance.sh |
Updates the builder location in a comment. |
.claude/skills/i18n/SKILL.md |
Updates the description of core’s remaining clients. |
Review effort: Balanced
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.
The DELETE half of a core-slimming move. The memex test container library and the voice gateway leave core. Their ADDITION half is Systemorph/MeshWeaver.Plugins#4341. This PR stays a draft until #4341 has merged into Plugins
main. Until then, Plugins' two consumers still compile core's copy ofMeshWeaver.Testcontainers.Pairs-with: Systemorph/MeshWeaver.Plugins#4341
Satellite-pins: Testcontainers, Testcontainers.PostgreSql — I grepped the
.csprojand.propsfiles of the local checkouts of MeshWeaver.Plugins (current main), .Education, .Reinsurance, .SocialMedia, .Manufacturing, .Crm, .FundReporting, Memex and MeshWeaver.Deploy forTestcontainers. Only MeshWeaver.Plugins references either id, versionless, inMeshWeaver.Testcontainers,MeshWeaver.Testcontainers.Test,MeshWeaver.Content.Test,MeshWeaver.Hosting.Cosmos.Test,MeshWeaver.Hosting.PostgreSql.Test,MeshWeaver.ContentCollections.Indexing.PostgreSql.TestandMemex.Database.Migration.Test. Plugins#4341 pins both itself as fill-in entries insrc/Directory.Packages.Plugins.props, at 4.16.0 and 4.14.0, the versions they carried here. No core project restores either id.What leaves
src/MeshWeaver.Testcontainers(MemexBuilder,MemexReadiness). Its only consumers,Memex.Portal.Shared.TestandMeshWeaver.Testcontainers.Test, were already in Plugins. It now lives at Pluginssrc/MeshWeaver.Testcontainersunder the same assembly name, and no image ships it. It is outsideFrameworkBuildIdentity.ContentSurfaceAssemblies, so the framework identity does not change. TheMeshWeaver.slnxentry goes too.clients/voice-gateway: 35 files, byte-identical at Pluginsclients/voice-gateway. Nothing here built or tested it. Plugins runs its 44 pytest cases in a newVoice gatewayworkflow.Testcontainers(rootDirectory.Packages.props) andTestcontainers.PostgreSql(test/Directory.Packages.props).SSH.NETstays, becausetest/Directory.Build.propsreferences it in every test project, satellites' suites included.Public surface: every public type of
MeshWeaver.Testcontainersleavessrc/, so it is a whole-assembly departure, and the pair is declared above. Before deleting anything I searched for callers that CI cannot compile. Core'ssamples/*/Dataandsrc/MeshWeaver.Documentation/Datahave no.csor.jsonmention of either assembly. In the Plugins content trees, the only node source namingsrc/MeshWeaver.Testcontainersis the triage marker list inHosting/Deployment/Source/TriageOwnership.cs, a string, not a binding. I did not run a live-meshsearch_chunkssweep.What stays, and why
MeshWeaver.Hosting.AspNetCorestays. It looked free, since nothing in core'ssrc/,test/ortools/references it, but two other consumers do.memex/aspire/Memex.Portal.ServiceDefaultsreferences it. That project is leaving in chore(platform): core drops memex/ and the dead Roslynator pins (delete half) #7297.MeshWeaver.Socialfrom$(MeshWeaverRoot)/src/MeshWeaver.Hosting.AspNetCore, because the module derives fromMeshEndpointProviderAttribute, the endpoint-contribution hook. Satellites depend on the platform only and never check out Plugins, so the move would leave that module with nothing to compile against.Portal/(host code) changes which assembly declares public types. That is a design change with type forwarders, not a free move.MeshWeaver.Markdown.Export.Contractstays. Its only core consumer isHosting.AspNetCore(PortalApplication).clients/pythonstays, and so doclients.ymlandclients/README.md. The core-builtdeploy/python-gateanddeploy/pandas-gateimagesCOPYthe SDK, and it generates from core's canonicalmesh.proto. The README is rewritten to describe what is left. Nothing inclients/belongs in MeshWeaver.Deploy.CarvingProjectsOutOfCorerecords all of this. It gains three rows in the remaining-projects table, a section headed Outside the content surface is not the same as free, and aclients/table. Comments and docs that named the old paths now point at Plugins:dotnet-test.yml,control-image-acceptance.sh,clients.yml, the i18n skill,FirstRunSetup,InstanceIdentityAndSetup,DockerHubInCi,DocsFollowTheFunctionalityandVoiceModelDistribution.Local gates
MeshWeaver.Documentation.Testbuilds Release-warnaserrorwith 0 warnings and 0 errors.DocumentationLinkIntegrityTest,PackageFamiliesMoveTogetherGuard,ArchitectureTopicMapTestandNoLiteralNulInSourceGuardpass 13 of 13 (trx).MeshWeaver.Testcontainers,MeshWeaver.Testcontainers.Test,MeshWeaver.Content.TestandMemex.Portal.Shared.Testeach build Release-warnaserroragainst THIS branch with 0 warnings and 0 errors.MemexReadinessTestpasses 10 of 10..csprojreferences either Testcontainers id, so no core project can lose a version (NU1010).Recycles: none. No per-node hub serves anything this changes.
🤖 Generated with Claude Code