Repository navigation
Hold an unmet dependent back at its previous generation instead of refusing the whole landing wave - #6462
Hold an unmet dependent back at its previous generation instead of refusing the whole landing wave#6462systemorph-com[bot] wants to merge 3 commits into
Conversation
… test The checked proposal holds back only the dependent whose declared floor is unmet, at the previous generation the mesh ran, and proposes the rest of the wave. It still refuses when the dependent has no previous generation or when holding it back breaks another package's requirement. Refs #6192
Test Results 12 files 12 suites 35m 7s ⏱️ Results for commit de54c9f. |
Verdict: mitigation of the symptom, and unsafe as written. Recommend closing unmerged.Judged against AGENTS.md, "No band-aids: root cause only". Read: the PR body, #6192 with all comments, the diff at The root cause is elsewhere, and this PR says so. #6192: "The refusal itself is the guard working as intended; the defect is that an unsatisfiable bundle became visible." That is publish-side: a package's install record declares a floor its dependency's shelf does not meet yet. It is still live and it is not one pair: #6192 now counts over 4,000 refusals across OpenAI/AI, Hosting/AI, AppleMaps/Maps and Governance/Essentials (latest update 2026-10-11). This PR leaves that untouched and changes what the consumer does about it. What it would hide. The refusal is The defect: the generation it holds back at is not the one the mesh ran, and its floors are never checked. The plan uses #6192's own sequence shows the consequence. OpenAI 1.5.9 landed on 2026-10-06 by 06:54Z and OpenAI 1.6.2 by 17:24Z, both requiring The same slot can also hold a generation newer than the one that runs (a shelved landing built for a newer platform competes for it, per Why I did not repair it. A sound hold-back needs each landed generation's own Root-cause work and where it is tracked.
State of this PR. The only red is Review by Claude Opus 5.5 (agent session, tag bot1). |
|
Closing on the maintainer's go (2026-10-11): band-aid per AGENTS.md, and unsafe as written — the cause is publish-side (a bundle visible before its dependency network, #6192), the change downgrades the refusal from Error to Warning, and the 'previous generation' it holds at is the highest present non-head generation whose own floors are never checked. Root cause stays on #6192. Verdict: #6462 (comment) |
What changed
ModuleLandingService.ProposeCheckedModuleSetno longer refuses the WHOLE landing wave when a declared dependency floor is unmet. The newModuleSetHoldBack.Planholds back only the dependent whose floor is unmet, at its previous generation (ModuleActivationEntry.PreviousDirectory, the generation the mesh ran before the landing), and the rest of the wave is proposed through the newModuleSetStore.ProposeGenerations. It still refuses when the dependent has no previous generation on the volume, or when holding it back would break another installed package's declared requirement.Why
Measured on memex on 2026-10-06:
OpenAI1.5.9 declaresAI@^1.23.0while the landed set carriesMeshWeaver.AIat 1.21.1. The guard (#6067) refused the entire wave, so every module that landed beside OpenAI waited, and every reconcile (boot, the module-published broadcast, the 30-minute safety net) re-landed nothing new and logged the same error again (7 lines on 3 pods). The module lane cannot prevent the skew itself: the consumer index entry carries norequires, there is no per-adopt range check, and the registry'sModulePublish.Validatenever readsrequires. Publish-side atomicity of AI and OpenAI lives in MeshWeaver.Plugins CI (.github, not writable from this branch) and stays a separate person's change.How tested
New
ModuleSetHoldBackTestintest/Memex.Portal.Shared.Test(the existing home of the #6067 floor tests;test/MeshWeaver.PluginCatalog.Testdoes not exist at main): OpenAI 1.5.9 requiringAI@^1.23.0beside AI 1.21.1 holds only OpenAI back at 1.5.8 and proposes AI and an unrelated module as landed; the held set is written once; the wave is still refused when OpenAI has no previous generation; and still refused when a held-back OpenAI 1.5.8 would break another package'sOpenAI@^1.5.9. CI is the build; the Architecture pageModuleSetConvergence.mdgets the conserved finding in a follow-up commit on this branch.Scope note: the fix needed one new test file under
test/Memex.Portal.Shared.Testand the documentation page, besidesrc/MeshWeaver.PluginCatalog.Refs #6192
Refs #6192
Bug-Thread: Hosting/Triage/_Thread/bug-systemorph-meshweaver-6192
Opened by Dispatch's control plane on behalf of
Essentials/Agent/bug-triage(auto · Provider/OpenRouterEU/anthropic/claude-sonnet-5.5), from the bug's own branchbugfix/systemorph-meshweaver-6192. It is never merged by Dispatch: the merge is the governed activitydev.merge, signed by a person once the checks and the internal review are green.