AGENTS.md
Rama main · réplica de lectura del repositorio original.
# AGENTS.md
Instructions for AI coding agents working in this repository.
## Project Overview
ThruBox Server is a self-hostable relay server acting as a "dumb encrypted mailbox": it stores and forwards opaque encrypted payloads via a REST API. It never sees plaintext — all encryption/decryption happens client-side in the [ThruBox Client SDK](https://github.com/AOSSIE-Org/ThruBox-Client) or other consumers.
## Repository Layout
- `cmd/relay/` — server entrypoint
- Storage: embedded SQLite (WAL mode) via `mattn/go-sqlite3`
- `public/` — logo assets referenced by README
- `brand/` — logo, favicons, and brand guidelines (see `brand/Brand.md`)
## Build, Test & Lint
```bash
go mod download
go build -o relay-server ./cmd/relay
go vet ./...
go test ./...
./relay-server # run in a separate terminal — this blocks
```
Docker:
```bash
docker compose up -d
```
**Note:** there are no `_test.go` files in the repository yet. If you add functionality, add tests alongside it — don't rely on this note as an excuse to skip tests.
## Hard Constraints
- Keep runtime dependencies minimal: standard library `net/http` plus `mattn/go-sqlite3` and `yaml.v3` (see `go.mod`) — don't add a web framework, ORM, or other new dependency without discussing it in an issue first.
- All SQL must be parameterized (no string-concatenated queries) — this is a relay storing arbitrary payloads, so injection surface must stay closed.
- The server must never decrypt or inspect message payloads; it only stores/forwards opaque blobs.
## Conventions
- Configuration is read from `config.yaml` or environment variables (see the table in `README.md` "Configuration") — don't hardcode values that are already configurable.