d2b6bba15c
The API container used a named Docker volume (repo_data:/data/repos) for storing repositories. When creating tool instances with direct mount mode, the API told Docker to bind-mount /data/repos/<repo>:/workspace into the tool container. But the Docker daemon resolves bind-mount paths on the HOST filesystem, not inside the API container. Since the host had no /data/repos (the repos only existed inside the named volume), tool containers mounted empty directories. Changed both compose files to use a host bind mount (/data/repos:/data/repos) instead of a named volume. This ensures: - The API container and tool containers both see the same /data/repos path - Bind mounts from /data/repos into tool containers work correctly For existing installations: repos previously stored in the repo_data named volume should be copied to /data/repos on the host before restarting the stack. Quality gates: compose file syntax valid