Files
sencho/docs
Anso 02a09688bc fix(mesh): trust only readable compose declarations when releasing ports
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.
2026-10-24 17:10:20 -04:00
..