Files
ai-agent/backend/templates.py
Gabriel Vidal 73903ec6b7 feat(ai-agent): run standalone — no homelab mounts required
The GOAL's "generic first-run setup" / one-liner `docker run` needs the image to
boot with none of the ~8 host paths the homelab compose mounts. It nearly did:
every catalog already degraded to an empty list except /api/templates, which
500'd on a missing templates dir.

- templates.py: a missing templates mount returns [] instead of raising. An
  absent catalog is a valid state; only a *named* template that isn't there is
  still a 404.
- docker-compose.standalone.yml: the generic shape — a workspace + a data volume
  and nothing else required, no Traefik, no homelab paths.
- scripts/standalone-smoke.sh: boots the image on a throwaway workspace and
  asserts every catalog endpoint + the PWA shell answer 200, and that no
  background thread left a traceback. This is the regression guard — it's what
  caught the templates 500.

Verified: smoke passes on the new image, fails on the old one. Also records the
two things standalone still can't do (build off-homelab: .npmrc pulls @gabvdl/ui
from the host verdaccio; spawn sessions: needs the host sidecar) in GOAL.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 05:39:10 +02:00

9.8 KiB