mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-10-25 21:20:25 +00:00
b65383cdb3
Each compose layer is published on its own, so a refresh that ran between two publications of a Git apply or a rollback restore read a mixture of old and new layers. A service moving from one layer to another was in neither union for a moment, and the refresh released its port reservation for good. A competing opt-in could then take the port. Writers that touch several layers now bracket the whole operation: Git materialization, manifest promotion and its restore, detach recovery, and rollback restore and revert. While a bracket is open, or after one was abandoned and nothing has made the layers whole again, the declaration is unknown and every saved claim stays. A read that overlapped an operation is discarded. A failed operation that puts the previous files back counts as whole; one that cannot stays unknown until a later operation completes.