410faff79c
- depends_on cycles (not just direct self-reference): a three-color DFS over the dependency graph reports the actual cycle path. - Duplicate host-port/protocol across (or within) services: two services both publishing the same (host_port, protocol) would only ever leave one reachable, even though both DNAT rules would get added later. - container_name colliding with another service's own implicit name, not just two explicit container_names matching each other. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gv3s5jckJKzh6JkMoi2Akz