What's New
Prometheus Metrics
- Rich
/metricsendpoint gated behindCASHPILOT_METRICS_ENABLED=true - HTTP request latency/count, container CPU/memory, earnings per platform (USD), collection health, worker heartbeats, auth counters, health scores
- 30s TTL cache to avoid DB load, precompiled path normalization, XSS-safe hint rendering
- Full documentation:
docs/guides/prometheus-metrics.md
EarnFM Token Auth (fixes #58, #59)
- Rewrote collector from broken Supabase email/password to simple token-based API key
- Updated YAML, docs, and all tests
Security Hardening
- Dropped
privileged: truefrom all 10 bandwidth service YAMLs (none needed it) - Mysterium correctly uses
cap_add: NET_ADMINinstead
Orchestrator Resilience
- Per-container try/except so corrupted Docker containers don't crash the entire status endpoint
- Workers with broken containers now skip them gracefully instead of sending empty heartbeats
UX Improvements
- Credential hint URLs are now clickable links with distinct accent color
- HTML sanitization on hints (allowlist: a, b, code tags only)
Dead Service Updates
- Peer2Profit: domain completely unreachable, marked dead
- SpeedShare: authentication broken, confirmed dead