Establish the project foundation with three packages: - core: shared types (Header, Metadata, Value, ObjectType, UUID generation) - db: SQLite migration framework, connection management (WAL, FK, busy timeout), transaction helpers (StartTX/EndTX), time conversion - config: runtime configuration (DB path, blob store, Minio, gRPC addr) Includes initial schema migration (001_initial.sql) with 13 tables covering shared infrastructure, bibliographic data, and artifact repository. Full test coverage for all packages, strict linting (.golangci.yaml), and Makefile. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.4 KiB
1.4 KiB
Progress
Tracks implementation progress against the phases in PROJECT_PLAN.md.
Phase 1: Foundation — COMPLETE
Deliverables:
- Go module (
go.mod) atgit.wntrmute.dev/kyle/exo corepackage:Header,Metadata,Value,ObjectType,NewUUID,MapFromList/ListFromMap- SQLite migration framework with embedded SQL files (
db/migrations/) - Initial schema migration (
001_initial.sql): 13 tables covering shared infrastructure, bibliographic, and artifact repository - Database access layer:
Open(with WAL, foreign keys, busy timeout),StartTX/EndTX,ToDBTime/FromDBTime configpackage:Configstruct with paths for database, blob store, Minio endpoint, gRPC listen address.golangci.yaml— strict linting (errcheck, govet, gosec, staticcheck, revive, errorlint)Makefile— vet, lint, test, build targets- Full test coverage for all packages (core, db, config)
Files created:
go.mod,go.sumcore/core.go,core/core_test.godb/db.go,db/db_test.go,db/migrations/001_initial.sqlconfig/config.go,config/config_test.go.golangci.yaml,Makefile