- Makefile: -include .env (soft) so fresh clone doesn't hard-fail
- main.go: replace log.Fatalf-in-goroutine with error channel; startup
failures now reach main goroutine so defer pool.Close() always runs
- main.go: context.WithTimeout(30s) on database.Connect to fail fast
instead of hanging indefinitely on unreachable Postgres
- router.go: store pool on Echo context via middleware so future story
handlers can retrieve it with c.Get("pool")
- config.go: require DATABASE_URL explicitly (log.Fatal if missing)
instead of falling back to hardcoded credentials
- HelloWorld.test.ts: URL-aware fetch stub + afterEach restoreAllMocks;
add flushPromises test verifying backend status renders
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
/healthand/api/v1/health; Postgres via docker-compose with env-interpolated credentialsbackend/migrations/(000001 no-op baseline);server migratesubcommand applies/rolls back/api→:3000(no CORS needed in dev);strictPort: trueon:5000Test plan
make dev-db→ Postgres healthymake migrate-up→schema_migrationsversion=1 dirty=fmake run-backend→curl localhost:3000/healthand/api/v1/healthreturn{"status":"ok"}make run-frontend→ browser at :5000 shows "Hello, OSDB!" with backend status "ok"make test→ Go handler test + 2 Vue component tests all greenCode review fixes applied
Makefile:-include .env(soft) — no hard-fail on fresh clonemain.go: error channel replaceslog.Fatalfin goroutine —defer pool.Close()always runsmain.go: 30 scontext.WithTimeouton DB connect — fails fast vs. unreachable Postgresrouter.go: pool stored on Echo context via middleware — future story handlers can access DBconfig.go:DATABASE_URLrequired;log.Fatalif missing — no silent credential fallbackHelloWorld.test.ts: URL-aware fetch stub +afterEach(restoreAllMocks)+flushPromisestest🤖 Generated with Claude Code
- Makefile: -include .env (soft) so fresh clone doesn't hard-fail - main.go: replace log.Fatalf-in-goroutine with error channel; startup failures now reach main goroutine so defer pool.Close() always runs - main.go: context.WithTimeout(30s) on database.Connect to fail fast instead of hanging indefinitely on unreachable Postgres - router.go: store pool on Echo context via middleware so future story handlers can retrieve it with c.Get("pool") - config.go: require DATABASE_URL explicitly (log.Fatal if missing) instead of falling back to hardcoded credentials - HelloWorld.test.ts: URL-aware fetch stub + afterEach restoreAllMocks; add flushPromises test verifying backend status renders Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>