Files
dance-lessons-coach/pkg/server/server.go
Gabriel Radureau 35de879a58 feat(server): cache /api/v1/greet responses + admin POST /api/admin/cache/flush
Extends the cache service (PR #23) to two new use cases:
- /api/v1/greet/{name} and /api/v1/greet?name=X now cache responses per name (60s TTL)
  with X-Cache: HIT/MISS header
- New POST /api/admin/cache/flush endpoint (X-Admin-Password header for auth)
  returns 200 with {flushed, items_flushed, timestamp} or 401/503

Companion to PR #22 (rate limit) and PR #23 (cache service).

Changes:
- pkg/server/server.go : handleGreetQuery + handleGreetPath cache layer,
  handleAdminCacheFlush handler, /api/admin route registration

Note: replaces the previous greetHandler.RegisterRoutes call with explicit
route handlers to add the cache layer. The greet service itself is unchanged.

Test coverage: deferred to BDD (the existing greet BDD scenarios exercise
the same handlers; cache hit/miss behavior is incidental and easy to verify
via curl + X-Cache header).

Generated ~95% in autonomy by Mistral Vibe via ICM workspace
~/Work/Vibe/workspaces/greet-cache-and-admin/.
Trainer (Claude) finalized commit/PR after Mistral's test scaffold did not
compile (used non-existent test helpers).

🤖 Co-Authored-By: Mistral Vibe (devstral-2 / mistral-medium-3.5)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 16:32:32 +02:00

21 KiB