mesh/delivery merged: source.main moved to novox/mesh-sdk@98f2f2406921
mesh/delivery-group group fix/1126-apply-culprit merged: every member is merged
mesh/check pass 0de30064156a on 7aedd28f01dc | unit 2667 run, 590 kept, 36 skipped | integration 2676 run, 633 kept, 29 skipped | over bound: unit (sl…
The applying path (frombus.Compose) composed with no culprit, so one module's refusal came back as the whole node's: novox's apply would have refused all its modules for de-spiegel's unset route names. composeEach is now the one rule Compose and Answer both follow: - a module whose stub changes the refusal is held (compose.Node.Held); in the applying path a stand-in for a module placed here holds that module; only a refusal of no single module refuses the node; - a held module is composed from what runs of it (compose.Carried of its own composition in Running) and carried in the node's own wherever that runs it, folded or leaving the fold, so the node's own apply never removes it (issue 1945 by a new path) and what the others read of it is what runs; - none of a held module's own composition is in what is applied; - a module whose composition differs when the held ones are composed as stubs is held too; the node's own differing refuses the node; - since a held module is composed from its new manifest, what reads that manifest is held with it: the providers of what it contributes to (the proxy its routes) and, when it listens, the filter's holder. Quick fix weighed: a culprit loop in Compose alone. Thorough, chosen: one shared function, since the kind met twice (seed-8 shadow, now the apply), and review rounds 1 and 2 found its leaks.