mesh/delivery merged: source.main moved to novox/mesh-delivery@653da54c0da3
mesh/check pass 975f0ed65460 on 653da54c0da3 | unit 154 run, 419 kept | integration 164 run, 485 kept | composition passed on ace
Phase guard, same kind as the failed-health hold. allRunHealthy counted every have whatever its phase, so a node with a removed, held or still moving have kept a hold up for ever: it counts only phase running (healthy or not) and failed (not healthy). The failed-health hold already ignores removed and held haves (phase running or failed only). Stale conditions (B1). The neither and held conditions this process said lived only in its memory, so one raised by a previous process stayed urgent for ever once the module had its want or was no longer held. The first pass after a start clears, once, the neither condition of every assigned module with a want and not on neither list, and the held condition of every module's newest fingerprint that is not held; a clear of a condition that is not open is quiet at the router. A hold raised again forgets that it was cleared, so a later release clears it again. Record ask (review note 3). mustAsk wrote no ask when the want before was removed, so the first-want path could write a recreates or moves-data composition of a policy-record module with no ask. A removed want is now no want, and the first want after it goes through the record ask. Tests first, each seen failing: a hold lifted over removed, held and moving haves; the record ask after a removed want; a fresh pass clearing what a previous process raised, once.