mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-10-25 13:11:05 +00:00
357920cd6c
Read every declaration layer through one guarded helper: real-target containment, a non-blocking open, a descriptor type check, and a before/after stat so a layer that changes mid-read is unknown. A link out of the compose root and a special file such as a FIFO can no longer be read as evidence that a service was removed, and no longer stall the refresh. A layer written within the last few seconds is treated as not settled, so a valid prefix of a save that is still in progress cannot release a saved port claim. Supported compose saves now publish by staging a sibling and renaming it into place, which keeps in-stack links and the file mode and leaves the previous document intact when publication fails. Seed a new membership from the inspection opt-in already performed, so a failed or stopped follow-up refresh cannot leave it with no saved ports and no reservation.