mirror of
https://github.com/hanzozt/zt.git
synced 2026-10-30 15:04:55 +00:00
Only the dialing side recorded which underlays it held, so on the controller the high-priority underlay drained the default queue too, and back-to-back default messages to a router crossed two connections and could arrive swapped. The router data model applies change sets by index and discards one older than what it holds, so an overtaken change set was lost for good: an identity could reach the router without the policy that lets it dial. Only default underlays drain the default queue now, a high-priority underlay carries high-priority traffic alone, and a failed write is reported instead of requeued behind later messages. High-priority traffic still rides the default underlay while no high-priority one is connected, and losing the last one wakes the default underlay at once. Claude-Session: https://claude.ai/code/session_01HuMDfgFssPUptYUzgZ6Cp8