projects/compose.py performs an overlay merge of the base catalog plus the project overlay, but never resolves an attachment source into anything deployable. None of the five attachment kinds (catalog_role, catalog_container, inline_yaml, file_upload, external_git) is turned into a role include, container run, or playbook task, so attachments never reach Proxmox. This is the core gap that makes catalog content non-deployable end to end. Resolve each attachment kind into the universal deploy flow.
projects/compose.py performs an overlay merge of the base catalog plus the project overlay, but never resolves an attachment source into anything deployable. None of the five attachment kinds (catalog_role, catalog_container, inline_yaml, file_upload, external_git) is turned into a role include, container run, or playbook task, so attachments never reach Proxmox. This is the core gap that makes catalog content non-deployable end to end. Resolve each attachment kind into the universal deploy flow.