Add observability stack and clean up SSH clone URLs

Observability:
- Add /-/metrics endpoint emitting Prometheus text format: HTTP request
  counts/latencies (histogram), active requests, entity gauges (users,
  repos, orgs, issues, changesets, sessions)
- Add SBCL runtime metrics: GC time, bytes consed, heap usage/size,
  thread count
- Add Prometheus, Grafana, and postgres_exporter container setup via
  make observability-up/down
- Ship provisioned Grafana dashboard (12 Cave panels + 7 SBCL panels +
  Postgres panels)

SSH clone URLs:
- Add ssh-clone-url helper: shows git@host:path format on port 22,
  falls back to ssh:// URI for non-standard ports
- Add configurable :ssh-user (defaults to "git", container sets "cave")

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Anthony Green2026-05-02 08:23:04 -0400 2d2e24123fb82ef8ded889d85156babbc1abedeb
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>