From c7cd5234bcf83060a406895a5b3a100cd74a1f75 Mon Sep 17 00:00:00 2001 From: master <> Date: Sun, 29 Mar 2026 00:55:17 +0200 Subject: [PATCH] Document zero-restart UI dev workflow in AGENTS.md Add "Local UI Development" section with instructions for using the docker-compose.dev-ui.yml override. Agents working on UI changes should use this to avoid the slow volume-copy + restart cycle. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/Web/StellaOps.Web/AGENTS.md | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/Web/StellaOps.Web/AGENTS.md b/src/Web/StellaOps.Web/AGENTS.md index 3b91473ad..71af16c61 100644 --- a/src/Web/StellaOps.Web/AGENTS.md +++ b/src/Web/StellaOps.Web/AGENTS.md @@ -27,9 +27,36 @@ Design and build the StellaOps web user experience that surfaces backend capabil - Branding uses Authority `/console/branding` and applies only whitelisted CSS variables. ## Key Paths -- `src/Web/StellaOps.Web` ??? Angular workspace (to be scaffolded). -- `docs/` ??? UX specs and mockups (to be added). -- `ops/` ??? Web deployment manifests for air-gapped environments (future). +- `src/Web/StellaOps.Web` — Angular workspace. +- `docs/` — UX specs and mockups. +- `devops/compose/docker-compose.dev-ui.yml` — Dev override for zero-restart UI development. + +## Local UI Development (IMPORTANT) + +For UI work against the Docker stack, **use the dev-ui compose override** to avoid +restarting the gateway container after every build: + +```bash +# One-time: apply the override (bind-mounts dist/ into the gateway) +cd devops/compose +docker compose -f docker-compose.stella-ops.yml -f docker-compose.dev-ui.yml up -d router-gateway + +# Build (output goes directly to gateway's wwwroot — no copy, no restart) +cd src/Web/StellaOps.Web +npx ng build --configuration=development + +# Or use watch mode for continuous rebuilds: +npx ng build --configuration=development --watch +``` + +After build, just **refresh the browser** — the gateway serves the new files immediately. + +**Without the override**, you must copy files into the Docker volume and restart: +```bash +docker run --rm -v compose_console-dist:/output -v "...browser:/src:ro" alpine cp -a /src/. /output/ +docker restart stellaops-router-gateway +``` +This is slow and should only be used for CI/production builds. ## Reachability Drift UI (Sprint 3600)