diff --git a/rag/04-idioms.md b/rag/04-idioms.md index 1f6e0ec..8ce59d8 100644 --- a/rag/04-idioms.md +++ b/rag/04-idioms.md @@ -180,6 +180,14 @@ Web and worker are **separate binaries** built from explicit file lists. - `--module ` sets the temp module path (must sit under the app's module so RTL packages can import the app's internal packages). +### Safety net: endpoint smoke test + +Dynamic typing has no compile-time guarantee, so a smoke test is the practical safety net +(buy it back at runtime, like Python+pytest). solmade ships `smoke_test.sh`: it mints a +temp superadmin session in PG, curls each endpoint, and asserts HTTP status + the JSON +`ok`/shape contract (`./smoke_test.sh` fast; `--full` adds the queue→worker→LLM E2E), +exiting non-zero on any failure. Run it after any refactor. + Deploy (launchd): `launchctl kickstart -k gui/$(id -u)/kr.solmade.web` (and `...worker1/2/3`). The worker build (`build_worker.sh`) links `cmd_prg/job_worker.prg` plus the shared `app/lib/*.prg` (so `LLM_CHAT` and prompts are available to it too).