binary := "lethe" version := `git describe --tags 2>/dev/null || echo dev` default: @just --list build: web-build CGO_ENABLED=0 go build -ldflags "-X main.version={{version}}" -o {{binary}} ./cmd/lethe web-install: cd web && npm ci web-dev: cd web && npm run dev web-build: cd web && npm run build web-test: cd web && npm test web-lint: cd web && npm run lint && npm run typecheck web-clean: rm -rf web/node_modules internal/server/web/dist/assets rm -f internal/server/web/dist/index.html @printf 'letheSPA not built — run just web-build\n' > internal/server/web/dist/index.html run: go run ./cmd/lethe -config config.yaml dev: go tool air # Run Go (air) and Vite (web-dev) concurrently. Ctrl-C kills both. dev-all: #!/usr/bin/env bash set -euo pipefail trap 'kill 0' EXIT INT TERM (cd web && npm run dev) & go tool air & wait test: go test -race ./... lint: golangci-lint run --fix ./... fmt: gofmt -w . goimports -w . go fix ./... tidy: go mod tidy # Migration helpers for dev/ops use only — authoring new migrations or manually # driving up/down against a local DB. The running daemon auto-migrates on # startup via Database.Init -> Migrate (internal/platform/database/database.go), # so production deployments do not need to invoke these. # `go tool migrate` resolves through the `tool` directive in go.mod (Go 1.24+). migrate-up: go tool migrate -path internal/platform/database/migrations -database "sqlite://./lethe.db" up migrate-down: go tool migrate -path internal/platform/database/migrations -database "sqlite://./lethe.db" down 1 migrate-create NAME: go tool migrate create -ext sql -dir internal/platform/database/migrations -seq {{NAME}} docker-build: docker build -t {{binary}}:{{version}} . docker-up: docker compose up -d docker-down: docker compose down