- New openai-proxy.ts: POST /v1/chat/completions forwards client's API key
to OpenAI, creates tracking ticket with full cost calculation for all
gpt-4o, gpt-4o-mini, o1, o3-mini, gpt-4-turbo, gpt-3.5-turbo models
- GET /v1/models unified in openai-proxy (removed duplicate from anthropic-proxy)
- Dashboard: POST /v1/chat/completions forwarded to core (OPENAI_BASE_URL works)
- Overview 'Savings per AI' panel: shows emoji label, request count, cost,
tokens in/out, and savings per provider (🟣 Claude 🟢 ChatGPT 🟡 Ollama)
- Old pipeline-based proxy.ts replaced by direct API passthroughs
- Add POST /v1/messages (Anthropic-format passthrough) to core with full
ticket tracking — every Claude Code request creates a TokenVault ticket
- Add GET /v1/models passthrough so Anthropic SDK model listing works
- Proxy /v1/messages + /v1/models in dashboard so public URL forwards to core
- Add /health endpoint to dashboard for infra monitoring
- Overview tab now shows RTK savings banner (3.5M tokens, 753 commands)
alongside LLM ticket stats — Overview no longer looks empty
- Provider split bar chart rendered when request data is available
ANTHROPIC_BASE_URL=https://tokenvault.fichtmueller.org now set globally
in ~/.zshrc — every new Claude Code session is tracked automatically.