1.5 KiB
1.5 KiB
AnthoLume - Agent Context
Migration Context
Updating Go templates (rendered HTML) → React app using V1 API (OpenAPI spec)
Critical Rules
Generated Files
- NEVER edit generated files - Always edit the source and regenerate
- Go backend API: Edit
api/v1/openapi.yamlthen rungo generate ./api/v1/generate.go - TS client: Regenerate with
cd frontend && npm run generate:api - Examples of generated files:
api/v1/api.gen.gofrontend/src/generated/**/*.ts
- Go backend API: Edit
Database Access
- NEVER write ad-hoc SQL - Only use SQLC queries from
database/query.sql - Migrate V1 API by mirroring legacy implementation in
api/app-admin-routes.goandapi/app-routes.go
Migration Workflow
- Check legacy implementation for business logic
- Copy pattern but adapt to use
s.db.Queries.*instead ofapi.db.Queries.* - Map legacy response types to V1 API response types
- Never create new DB queries
Surprises
- Templates may show fields the API doesn't return - cross-check with DB query
start_timeisinterface{}in Go models, needs type assertion in Go- Templates use
LOCAL_TIME()SQL function for timezone-aware display
Error Handling
Use fmt.Errorf("message: %w", err) for wrapping. Do NOT use github.com/pkg/errors.
Frontend
- Package manager: bun (not npm)
- Lint:
cd frontend && bun run lint(andlint:fix) - Format:
cd frontend && bun run format(andformat:fix)
Regeneration
- Go backend:
go generate ./api/v1/generate.go - TS client:
cd frontend && npm run generate:api