Repository navigation
move(deploy): the deployment reference leaves core for the public MeshWeaver.Deploy - #7127
Conversation
…re for MeshWeaver.Plugins DELETE half. deploy/helm, deploy/helm-db, deploy/aks/scripts, deploy/aks/manifests, deploy/aks/values.aks.yaml, scripts/check-config-key-coverage.py, .github/scripts/test-bundle-registry.py and chart-gate.yml now live in MeshWeaver.Plugins at the same paths, beside the hosting operator that bakes the chart (Plugins Hosting/ChartHome). - Chart-reading test facts leave with the chart (to Plugins Memex.Hosts.Test/Chart); the facts that read only core code stay. - The registry retention gate learns `chartRepository`: without --chart-root it re-derives nothing for that registry and SAYS so by name; with it (Plugins' Registry retention job) it re-derives exactly as before. ARM 33h pins all four shapes. - instances.json names the chart's home and declares MeshWeaver.Plugins as an overlay-carrying repository; core's own entry is re-measured (5 files). - Homebrew (interim, owner decision open): the tarball vendors the chart from a Plugins checkout, packed deterministically at deploy/helm so the formula is unchanged. - Comments, messages and the topology / chart-ownership docs name the new home. Refs core slimming. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Test Results 25 files ± 0 25 suites ±0 57m 38s ⏱️ + 2m 21s Results for commit 9131e0a. ± Comparison against base commit 6a356fd. This pull request removes 129 and adds 26 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
…-local leaves with it The owner chose a new public repository for the deployment reference instead of the private MeshWeaver.Plugins, so every reader stays credential-free. - memex-local (deploy/homebrew, homebrew.yml) and its guards (MemexLocalRepoPathGuard, MemexLocalSurfacesAzureErrorsGuard, MemexLocalDiscoversNodeRepoSiblingsGuard, LocalOverlayAsksInsteadOfAnsweringTest, PlatformBakeLaneGuard's local-defaults fact) move to MeshWeaver.Deploy beside the chart they vendor. The interim tarball change is gone with them. - instances.json: chartRepository and the declared overlay repository are MeshWeaver.Deploy (42 files there); core re-measured at 2 (s1-extract, whisper). - Comments, messages, Readme, .gitignore and the topology / chart-ownership docs name MeshWeaver.Deploy. Refs core slimming. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
The retention gate does not scan the external deployment checkout for executable deletion commands, weakening the existing safety check.
1 open issue
What changed in this PR
This is the deletion half of moving deployment reference material from core to the public MeshWeaver.Deploy repository, keeping core focused on the framework while preserving credential-free access.
Changes:
- Removes deployment charts, scripts, manifests and fixtures for relocation with their guards.
- Declares the external chart repository in registry-retention accounting.
- Updates documentation, comments and diagnostic messages to identify the new ownership.
| File | Description |
|---|---|
| test/MeshWeaver.Documentation.Test/HomeAppSourceReachesTheConfigMapGuard.cs | Removes the relocated app-source chart guard. |
| test/MeshWeaver.Documentation.Test/DevLoginConfigBindingTest.cs | Removes the relocated DevLogin chart guard. |
| test/MeshWeaver.Deployment.Contract.Test/RequiredModuleAuthorityTest.cs | Removes the chart-dependent fact; retains contract checks. |
| test/Memex.Portal.Shared.Test/HealthCensusTest.cs | Updates a comment naming the relocated probe test. |
| test/Memex.Portal.Shared.Test/DeploymentPathsSupplyStorageTest.cs | Removes the chart storage fact. |
| src/MeshWeaver.Hosting/ShippedPrebuiltBundles.cs | Updates chart ownership in documentation comments. |
| src/MeshWeaver.Hosting/NodeTypeBakeGate.cs | Updates the chart reference in documentation comments. |
| src/MeshWeaver.Documentation/Data/Architecture/RepositoryTopology.md | Documents the public deployment repository and consumers. |
| src/MeshWeaver.Documentation/Data/Architecture/ChartOwnershipAndRunnerPool.md | Records the ownership decision and guard relocation. |
| Readme.md | Points local-stack users to MeshWeaver.Deploy. |
| memex/Memex.Portal.Shared/Setup/SetupOnlyHost.cs | Updates chart ownership in probe comments. |
| memex/aspire/Memex.Portal.ServiceDefaults/ProbeEndpoints.cs | Updates the chart reference in probe comments. |
| deploy/python-gate/README.md | Identifies the new home of matching chart defaults. |
| deploy/python-gate/Dockerfile | Updates the chart-defaults comment only. |
| deploy/node-gate/README.md | Identifies the new home of matching chart defaults. |
| deploy/node-gate/Dockerfile | Updates the chart-defaults comment only. |
| deploy/homebrew/share/values.local.self-registry.yaml | Removes the relocated self-registry overlay. |
| deploy/homebrew/share/port-forward.sh | Removes the relocated port-forward helper. |
| deploy/homebrew/share/com.memex.local.plist | Removes the relocated launch agent. |
| deploy/homebrew/scripts/render-formula.sh | Removes the relocated formula renderer. |
| deploy/homebrew/scripts/make-tarball.sh | Removes the relocated packaging script. |
| deploy/helm/values.registry.example.yaml | Removes the relocated registry example. |
| deploy/helm/templates/registry/secretproviderclass.yaml | Removes the relocated registry secret template. |
| deploy/helm/templates/registry/ingress.yaml | Removes the relocated registry ingress template. |
| deploy/helm/templates/ollama/service.yaml | Removes the relocated external Ollama service template. |
| deploy/helm/templates/memex-postgres/statefulset.yaml | Removes the relocated Postgres workload template. |
| deploy/helm/templates/memex-postgres/service.yaml | Removes the relocated Postgres service template. |
| deploy/helm/templates/memex-postgres/secrets.yaml | Removes the relocated Postgres secret template. |
| deploy/helm/templates/memex-postgres/config.yaml | Removes the relocated Postgres configuration template. |
| deploy/helm/templates/memex-portal/serviceaccount.yaml | Removes the relocated portal identity template. |
| deploy/helm/templates/memex-portal/service.yaml | Removes the relocated portal service template. |
| deploy/helm/templates/memex-portal/scaledobject.yaml | Removes the relocated autoscaling template. |
| deploy/helm/templates/memex-portal/rbac.yaml | Removes the relocated self-update permissions template. |
| deploy/helm/templates/memex-portal/pvc.yaml | Removes the relocated portal storage template. |
| deploy/helm/templates/memex-portal/pdb.yaml | Removes the relocated disruption-budget template. |
| deploy/helm/templates/memex-portal/instances-rbac.yaml | Removes the relocated instance-discovery permissions. |
| deploy/helm/templates/memex-portal/bundle-fetch.yaml | Removes the relocated bundle-fetch configuration template. |
| deploy/helm/templates/memex-portal/_portal-next.tpl | Removes the relocated front-end mode helper. |
| deploy/helm/templates/memex-migration/secrets.yaml | Removes the relocated migration secret template. |
| deploy/helm/templates/memex-migration/config.yaml | Removes the relocated migration configuration template. |
| deploy/helm/templates/k8s-dashboard/service.yaml | Removes the relocated dashboard service template. |
| deploy/helm/templates/k8s-dashboard/deployment.yaml | Removes the relocated dashboard workload template. |
| deploy/helm/Chart.yaml | Removes the relocated portal chart metadata. |
| deploy/helm-db/templates/cluster.yaml | Removes the relocated database cluster template. |
| deploy/helm-db/templates/backup.yaml | Removes the relocated database backup template. |
| deploy/helm-db/templates/_helpers.tpl | Removes the relocated database validation helpers. |
| deploy/helm-db/Chart.yaml | Removes the relocated database chart metadata. |
| deploy/aks/scripts/values.deploy.example.yaml | Removes the relocated deployment overlay example. |
| deploy/aks/scripts/tls.sh | Removes the relocated TLS setup script. |
| deploy/aks/scripts/testdata/values.two-replicas-pod-local-data.yaml | Removes the relocated shared-storage refusal fixture. |
| deploy/aks/scripts/testdata/values.two-replicas-no-keda.yaml | Removes the relocated two-replica fixture. |
| deploy/aks/scripts/testdata/values.record-render-no-vault-half.yaml | Removes the relocated partial-record render fixture. |
| deploy/aks/scripts/testdata/values.portal-next-override.yaml | Removes the relocated front-end override fixture. |
| deploy/aks/scripts/testdata/values.portal-next-bundled.yaml | Removes the relocated bundled front-end fixture. |
| deploy/aks/scripts/testdata/values.plugin-source-credentials.yaml | Removes the relocated source-credential fixture. |
| deploy/aks/scripts/testdata/values.operator-signs-alone-shadowed.yaml | Removes the relocated approval-shadowing refusal fixture. |
| deploy/aks/scripts/testdata/values.operator-signs-alone-quoted.yaml | Removes the relocated approval-type refusal fixture. |
| deploy/aks/scripts/testdata/values.operator-maintainer-blank.yaml | Removes the relocated blank-maintainer fixture. |
| deploy/aks/scripts/testdata/values.operator-executor-misspelled.yaml | Removes the relocated executor refusal fixture. |
| deploy/aks/scripts/testdata/values.operator-actions-executor.yaml | Removes the relocated Actions executor fixture. |
| deploy/aks/scripts/testdata/values.mirror-consumer.yaml | Removes the relocated mirror-consumer fixture. |
| deploy/aks/scripts/testdata/values.memex-local-registry.yaml | Removes the relocated local registry fixture. |
| deploy/aks/scripts/testdata/values.keyvault-connection-string.yaml | Removes the relocated vault-backed database fixture. |
| deploy/aks/scripts/testdata/values.ingress-session-affinity.yaml | Removes the relocated session-affinity fixture. |
| deploy/aks/scripts/testdata/values.ingress-session-affinity-disabled.yaml | Removes the relocated affinity-disabled fixture. |
| deploy/aks/scripts/testdata/values.ingress-preprovisioned.yaml | Removes the relocated preprovisioned TLS fixture. |
| deploy/aks/scripts/testdata/values.ingress-no-issuer.yaml | Removes the relocated missing-issuer refusal fixture. |
| deploy/aks/scripts/testdata/values.ingress-issuer.yaml | Removes the relocated certificate-issuer fixture. |
| deploy/aks/scripts/testdata/values.incluster-db-release.yaml | Removes the relocated separate-database-release fixture. |
| deploy/aks/scripts/testdata/values.global-admins.yaml | Removes the relocated administrator configuration fixture. |
| deploy/aks/scripts/testdata/values.external-db-no-host.yaml | Removes the relocated missing-database-host refusal fixture. |
| deploy/aks/scripts/testdata/values.external-db-explicit-in-cluster-host.yaml | Removes the relocated conflicting-database-host fixture. |
| deploy/aks/scripts/testdata/values.eu-ai-residency.yaml | Removes the relocated AI residency fixture. |
| deploy/aks/scripts/testdata/values.db-release-with-bundled-postgres.yaml | Removes the relocated conflicting-database refusal fixture. |
| deploy/aks/scripts/testdata/values.crash-dumps-root-is-data.yaml | Removes the relocated dump-root refusal fixture. |
| deploy/aks/scripts/testdata/values.crash-dumps-root-escapes-data.yaml | Removes the relocated escaping-path refusal fixture. |
| deploy/aks/scripts/testdata/values.crash-dumps-root-double-slash.yaml | Removes the relocated malformed-path refusal fixture. |
| deploy/aks/scripts/testdata/values.crash-dumps-dedicated-claim.yaml | Removes the relocated dedicated dump-storage fixture. |
| deploy/aks/scripts/testdata/values.bundle-fetch.yaml | Removes the relocated bundle-fetch fixture. |
| deploy/aks/scripts/testdata/values.bake-gate-armed.yaml | Removes the relocated armed-readiness-gate fixture. |
| deploy/aks/scripts/testdata/values.adonet-external-db-no-connection-string.yaml | Removes the relocated missing-connection refusal fixture. |
| deploy/aks/scripts/testdata/chart-drift/drifted/release-manifest.yaml | Removes the relocated drifted release baseline. |
| deploy/aks/scripts/testdata/chart-drift/drifted/record.json | Removes the relocated drifted deployment record. |
| deploy/aks/scripts/testdata/chart-drift/drifted/live-scaledobjects.json | Removes the relocated drifted autoscaler snapshot. |
| deploy/aks/scripts/testdata/chart-drift/drifted/live-poddisruptionbudgets.json | Removes the relocated drifted disruption-budget snapshot. |
| deploy/aks/scripts/testdata/chart-drift/drifted/live-configmap.json | Removes the relocated drifted configuration snapshot. |
| deploy/aks/scripts/testdata/chart-drift/drifted/expect-patch.json | Removes the relocated drifted-case expected patch. |
| deploy/aks/scripts/testdata/chart-drift/drifted/envfrom-source-keys.txt | Removes the relocated drifted environment-key inventory. |
| deploy/aks/scripts/testdata/chart-drift/desired.yaml | Removes the relocated desired-state fixture. |
| deploy/aks/scripts/testdata/chart-drift/clean/release-manifest.yaml | Removes the relocated clean release baseline. |
| deploy/aks/scripts/testdata/chart-drift/clean/record.json | Removes the relocated clean deployment record. |
| deploy/aks/scripts/testdata/chart-drift/clean/live-scaledobjects.json | Removes the relocated clean autoscaler snapshot. |
| deploy/aks/scripts/testdata/chart-drift/clean/live-poddisruptionbudgets.json | Removes the relocated clean disruption-budget snapshot. |
| deploy/aks/scripts/testdata/chart-drift/clean/live-deployment.json | Removes the relocated clean workload snapshot. |
| deploy/aks/scripts/testdata/chart-drift/clean/live-configmap.json | Removes the relocated clean configuration snapshot. |
| deploy/aks/scripts/testdata/chart-drift/clean/expect-patch.json | Removes the relocated clean-case expected patch. |
| deploy/aks/scripts/testdata/chart-drift/clean/envfrom-source-keys.txt | Removes the relocated clean environment-key inventory. |
| deploy/aks/scripts/import-dashboards.sh | Removes the relocated dashboard importer. |
| deploy/aks/scripts/aks-extras.yaml | Removes the relocated storage resources. |
| deploy/aks/manifests/storageclass-azurefile.yaml | Removes the relocated Azure Files storage class. |
| deploy/aks/manifests/postgres-pvc-patch.yaml | Removes the relocated Postgres storage patch. |
| deploy/aks/manifests/portal-ingress.yaml | Removes the relocated portal ingress example. |
| deploy/aks/manifests/pgbackrest/serviceaccount.yaml | Removes the relocated backup identity manifest. |
| deploy/aks/manifests/pgbackrest/configmap.yaml | Removes the relocated backup configuration manifest. |
| deploy/aks/manifests/observability/otel-pvc.yaml | Removes the relocated telemetry storage manifest. |
| deploy/aks/manifests/hosting-operator/operator-serviceaccount.yaml | Removes the relocated operator identity manifest. |
| deploy/aks/manifests/hosting-operator/namespace.yaml | Removes the relocated operator namespace manifest. |
| deploy/aks/manifests/hosting-operator/jobrunner.yaml | Removes the relocated job-runner permissions manifest. |
| deploy/aks/manifests/db-platform/storageclass-premiumv2.yaml | Removes the relocated database storage class. |
| deploy/aks/manifests/db-platform/README.md | Removes the relocated database-platform setup guide. |
| .gitignore | Removes exceptions for the relocated Homebrew CLI. |
| .github/workflows/main-cd.yml | Updates deployment paths in diagnostic messages. |
| .github/scripts/push-bundle-publication.sh | Updates the test-harness ownership comment. |
| .github/scripts/install-oras.sh | Updates the chart-harness ownership comment. |
| .github/scripts/control-image-acceptance.sh | Updates the probe-budget source comment. |
| .github/dockerhub-mirror.list | Updates chart references in comments; preserves image pins. |
| .github/acr-retention/instances.json | Declares the external chart home and repository inventory. |
Review effort: Balanced
| "design": "Doc/Architecture/FleetRegistryRetention", | ||
| "reason": "Measured 2026-09-14 over core origin/main 192bb073b8, read-only: NOTHING deletes a manifest, a tag or a referenced blob from cr.meshweaver.cloud, and nothing collects its garbage — so the registry grows without bound. That is the safe direction to be wrong in; the hazard is the FIX. 🚨 `distribution` HAS NO LOCK: ACR's `changeableAttributes.deleteEnabled` is an ACR feature, so there is no object here that a protected set can be written INTO ahead of a deleter. A cleanup's own derivation would therefore be the entire safety margin, with nothing behind it — where on the ACR an incomplete run merely writes fewer locks and last night's still hold. Until a cleanup can derive a protected set over what this registry HOLDS (and nothing enumerates that as data today — MeshWeaver#4066), none may be added.", | ||
| "chart": "deploy/helm/templates/registry", | ||
| "chartRepository": "Systemorph/MeshWeaver.Deploy", |
There was a problem hiding this comment.
Agreed, this was a real gap. It is fixed in f30a584.
check_registry_retention now sweeps the chart_root checkout for a deleter as well as core, whenever a record's chartRepository chart was re-derived from that checkout. A hit there is reported with the repository name as a prefix (Systemorph/MeshWeaver.Deploy:deploy/aks/scripts/…). Each checkout's denominator is printed on its own line:
deleter sweep per checkout: this repository (264 swept, 3 skipped); Systemorph/MeshWeaver.Deploy (164 swept, 0 skipped)
That line comes from the real record against a MeshWeaver.Deploy checkout, which exits 0. The existing registry retention: …; 1 chart(s) re-derived; … sentence is unchanged, so Deploy's Registry retention job still matches it.
ARM 33h now has three more cases, next to the CronJob case:
- Clean control: the chart's home passes, and the sweep-coverage line names it.
- Negative control 1:
registry garbage-collectin the chart home'sdeploy/aks/scripts/gc.shis RED. - Negative control 2: the same command in the chart home's
.github/workflows/gc.ymlis RED.
To show the new cases can fail, I removed the extra sweep root and re-ran the self-test: all three new checks failed, with exit code 1. With the fix restored, --self-test exits 0.
Every conflict resolved so the deletion wins: the chart files main changed (#7143, #7159, #7184, #7170, #7119; all ported to MeshWeaver.Deploy by Deploy#4), the chart-reading guards main moved onto RepoPaths (#7111), and the Memex.Portal.Shared files main moved to MeshWeaver.Plugins (#7125). Also deleted: the build-host chart files main added after this branch was cut (frozen, in Deploy now) and memex-local.yml (#7119), whose Linux gate is Deploy's homebrew.yml linux job. Kept from main: instances.json's re-measured MeshWeaver.Deploy row. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rived When a record names a chartRepository and the Chart Gate there hands its checkout as --chart-root, check_registry_retention re-derived the external templates but swept only core for an executed deletion. A `registry garbage-collect` in that repository's scripts or workflows therefore no longer invalidated `nothing-deletes`. The external checkout is now swept too, each checkout's denominator is printed on its own line, and ARM 33h plants a deleter in the chart home's script and in its workflow (both RED) beside the clean control. Negative control: with the extra sweep root removed, the three new ARM 33h checks fail. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-local; #7179's change ported in MeshWeaver.Deploy#7) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…es in MeshWeaver.Deploy (#7194) * ci(chart-freeze): the platform's chart copy is frozen — the chart lives in MeshWeaver.Deploy MeshWeaver.Deploy was seeded from this repository's chart material (Deploy#1). Both copies stayed editable and both moved, so two pipelines baked hosting-operator:main from two different charts. The paths Deploy#1 copied are now frozen here (policy chart-lives-in-deploy): - scripts/check-chart-freeze.py refuses a pull request that adds, modifies, retypes or renames into deploy/helm, deploy/helm-db, deploy/aks/{values.aks.yaml,manifests,scripts}, deploy/homebrew, chart-gate.yml, homebrew.yml, check-config-key-coverage.py or test-bundle-registry.py, with "the chart lives in Systemorph/MeshWeaver.Deploy". A pure deletion passes (that is how #7127 removes the copy). build-run.py and deploy/build-host/ stay editable: main-cd builds the build-host image from them. - Job "Chart frozen (lives in MeshWeaver.Deploy)" runs it on every pull request against the merge base, self-test first, and is a need of the required check with its own fail step. - The policy is registered and ChartOwnershipAndRunnerPool records the move. Refs #7127. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix(chart-freeze): read the listing NUL-delimited; a frozen directory matches its own path Review findings on #7194: - git C-quotes a path with a non-ASCII byte, a quote or a control character, so an added deploy/helm/templates/café.yaml reached is_frozen() quoted and passed. The diff is now read with -z and parsed as status/path fields; check-git-path-listings.py is clean (0 of 130). - A frozen directory replaced by a tracked symlink produced D for its files and A deploy/helm, and the directory path itself matched no prefix. A frozen directory now matches its own path too. - The file input is --diff-file (a saved -z listing), so the listing guard no longer reads the option name as an unquoted listing. Self-test: 15 cases, including the non-ASCII addition, the directory-to-symlink swap, a rename into a frozen path, an unknown status and a dangling status. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Refs core slimming. This PR is the DELETE half of moving the deployment reference out of core, into the new PUBLIC
Systemorph/MeshWeaver.Deploy. The owner chose a public repository so that every reader stays credential-free; the estate's real values stay in its private deployments repository.Pairs-with: Systemorph/MeshWeaver.Deploy#1
Pairs-with: Systemorph/MeshWeaver.Deploy#4
Pairs-with: Systemorph/MeshWeaver.Deploy#7
Pairs-with: Systemorph/MeshWeaver.Plugins#4155
Pairs-with: Systemorph/Memex#819
🚦 Ordering. The prerequisites have landed: MeshWeaver.Deploy#1, Plugins #4137 and #4155, Memex #819, and core #7119. Core #7120 is still open. Two pull requests port into MeshWeaver.Deploy every core-side change to this material made since the seed: MeshWeaver.Deploy#4 (merged) carries #7143, #7159, #7184, #7170, #7119 and #7180, and MeshWeaver.Deploy#7 carries #7179. This PR must land after MeshWeaver.Deploy#7. The
Pairs-with:lines hold it until then. #7194 freezes the material here, with deletions allowed. This PR only deletes it, so it passes that gate.Merged with main. Every modify/delete conflict resolved with the deletion winning. This PR now also deletes what main added to the material after it was cut:
deploy/aks/scripts/test-build-hosts.shand its testdata;.github/workflows/memex-local.yml, the Linux gate chore(operator): the hosting operator leaves core for MeshWeaver.Plugins (delete half) #7119 moved out ofhosting-operator.yml. The same gate is MeshWeaver.Deploy'shomebrew.ymllinuxjob.The Memex.Portal.Shared files this PR had edited left core with #7125, so their edits are dropped. MeshWeaver.Plugins' copy of
SetupProbeEndpointsTeststill reads core'sdeploy/helm. It has to be re-pointed at MeshWeaver.Deploy.Review finding (fixed, f30a584): the registry-retention gate now sweeps the chart's home for an executed deletion as well as core. ARM 33h plants one in that home's script and in its workflow, and both are RED. The negative control: with the extra sweep removed, the three new checks fail.
What leaves core
deploy/helm,deploy/helm-dbchart-gate.ymldeploy/aks/scripts,deploy/aks/manifests,deploy/aks/values.aks.yamlchart-gate.yml; the operator RBAC case reads the manifests from theredeploy/homebrew,homebrew.yml(memex-local)homebrew.yml(with the Linux gate that lived inhosting-operator.yml)scripts/check-config-key-coverage.pyconfig-key-coverage.github/scripts/test-bundle-registry.py,chart-gate.ymlMeshWeaver.Documentation.Test,MeshWeaver.Hosting.Test,MeshWeaver.Deployment.Contract.Test,Memex.Portal.Shared.Testtest/MeshWeaver.Deploy.ChartGuards(25 classes, 88 tests)chart-guards.yml, built against a core checkoutWhat changes here
lock-pinned-digests.py --check-registry-retention, inside the requiredConsolidate test resultschain):retentionblock may name achartRepository. Without--chart-rootthe gate does NOT re-derive that chart, and says so by name; it never prints the clean sentence over zero charts.instances.jsonnames MeshWeaver.Deploy as the registry chart's home and declares it inrepositories(42 overlay-pattern files there). Core's own entry is re-measured at 2 files (s1-extract, whisper).Registry retentionjob re-derives the chart against this record, reading it with no token.CronJobbeside the registry is RED.main-cd.yml, the mirror list, the ORAS and publisher comments, the gate Dockerfiles,ProbeEndpoints,SetupOnlyHost,NodeTypeBakeGate,ShippedPrebuiltBundles,Readme.mdand.gitignore.RepositoryTopologyadds MeshWeaver.Deploy (public) to the table.ChartOwnershipAndRunnerPoolgains an "Outcome" section.deploy/helm/…,deploy/aks/scripts/…ordeploy/homebrew/…as paths. The paths are unchanged in MeshWeaver.Deploy, but those are operational docs, and by the owner's rule they move with the code; that is a follow-up.Sweeps (move protocol step 3)
Nothing removed here is a C# public surface (YAML, shell, Python, test classes), so no NodeType source can call it.
Local gates
-warnaserror, one project per invocation, each0 Error(s)and0 Warning(s): MeshWeaver.Hosting, Memex.Portal.ServiceDefaults, Memex.Portal.Shared, MeshWeaver.Deployment.Contract.Test, MeshWeaver.Hosting.Test, Memex.Portal.Shared.Test, MeshWeaver.Documentation.Test.lock-pinned-digests.py --self-test,--check-registry-retention ., check-pr-secret-preflight, check-workflow-timeouts, check-workflow-yaml-keys.Provisioning
None is needed in this repository. The owner's list for MeshWeaver.Deploy is on MeshWeaver.Deploy#1.
🤖 Generated with Claude Code