Files
noema/docs/ENVIRONMENT.md
T
Andy Dixon 86015bfccd docs: consistency pass after the review
README status, release notes and predictions/personality docs no longer
describe 0.2 work as future or 0.1 as current; predictions.md states
which processes create predictions and which do not; ENVIRONMENT.md
records that the host cluster now has pgvector.
2026-08-26 22:49:32 +01:00

26 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Development environment and toolchain assumptions
Recorded at project start (2026-09-14) on the primary development machine.
| Component | Observed | Assumption for the project |
|---|---|---|
| Go | 1.26.1 linux/amd64 (`GOTOOLCHAIN=auto`) | `go 1.26` in `go.mod`; stdlib `net/http` routing, `log/slog`, `embed` |
| Git | 2.43.0, no `init.defaultBranch` configured | default branch is `master` (git's default) |
| PostgreSQL | 16 local cluster on 5432 with the `postgresql-16-pgvector` package installed (since 2026-09-15); `pgvector/pgvector:pg16` image available | Dev/test DB is the compose container on **5433**. Vector features are optional and detected at migration time |
| Docker | Engine + Compose v5.5 | `deploy/docker-compose.yml` provides db + app |
| Static analysis | staticcheck 2026.2.1, gosec, govulncheck in `~/go/bin` | `make lint`, `make security` |
| golangci-lint | not installed | not required; staticcheck + vet + gosec suffice |
| Node/npm | present | **not used**. UI is server-rendered Go templates with dependency-free vanilla JS and CSS |
| CPU / RAM | 8 cores / 31 GiB | Default worker pool 8, LLM concurrency 4 |
| Network | Go module proxy and Docker Hub reachable | Modules vendored only if that changes |
## Dependency policy
Stdlib first. Approved third-party modules and why:
- `github.com/jackc/pgx/v5` – PostgreSQL driver and pool. Explicit SQL, no ORM.
- `golang.org/x/crypto` – Argon2id.
- `github.com/prometheus/client_golang` – metrics exposition.
Everything else (UUIDv7, TOTP, migrations, SSE, routing, CSRF, rate limiting, SigV4 if Bedrock is added) is small enough to write and own. New dependencies need a one-line justification in this file.