mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-10-25 13:11:05 +00:00
02a09688bc
The declaration read is the only evidence that frees a saved port claim, so content that is not Compose cannot be treated as an authored removal. An explicitly supplied `services` value must now be a service mapping, and a service definition must be a mapping too. A sequence saved by an editor used to contribute its array indexes as service names, which dropped a real service from the snapshot and freed its port. A non-mapping document now reports unknown instead of contributing names. An auxiliary layer with no `services` key contributes no names rather than voiding the union. A networks-only or volumes-only override is valid Compose, and an authored removal beside it releases the claim as documented. A discovered file chain selected by COMPOSE_FILE is unknown, matching the effective-anatomy rule: this reader does not follow that chain, so the files it would read are not the project's files. An explicit Git file list ignores COMPOSE_FILE and is still read, because that list is what Compose loads. Tests cover each invalid shape at the refresh and route boundaries, the environment-selected chain, both auxiliary layer shapes, the preserved Git list, and the malformed-layer case.