Known Issues¶
Gotchas observed in the codebase, and places where the README / infra manifests disagree with the current code.
Default NATS URL assumes an in-cluster service¶
The built-in default for nats_url is nats://nats.infra.svc:4222. For local development set GCTD_NATS_URL (or the nats_url config key) to your local NATS, e.g. nats://localhost:4222.
Recently resolved¶
These previously-discovered gaps have been fixed and the docs now match the code:
- Health endpoints — the app now serves
GET /livez(liveness),GET /readyz(readiness: Postgres reachable + NATS connected), andGET /health(liveness alias). Theinfra/manifests probe/readyz+/livez, and the Docker image uses/healthin itsHEALTHCHECK. - NATS consumer — workers use a shared pull consumer (
crap-workerson thecrap_jobs_scanstream,MaxDeliver 3,AckWait 10m). The README now describes this correctly (no push-consumer migration step). run-worker.sh— now launchesworker(wasserve) and exportsGCTD_CACHE_DIRECTORYinstead of the non-existentGCTD_HTTP_ADDR.make run— now targetsserve(go run . serve); arun-workertarget runsworker.- go-crap module anchoring —
go-crap scan --coverage-profilederives the module to scan from the profile file's location (nearestgo.modancestor). The tracker stores profiles in its shared cache (outside the scanned module), so multi-project scans were silently analyzing the wrong module tree. The runner now stages the profile inside the scan directory (.go-crap-cover.out) for the duration of the scan and removes it afterwards.