What's New in 2.6.0
Usage Accounting & Dashboard
A full usage tracking pipeline, from raw request logs to aggregate API to visual dashboard:
- Persistent usage log — every proxied request is logged to
~/.opencodex/usage.jsonlwith token counts, latency, and provider metadata /api/usageendpoint — aggregate summary with day-grid, per-model, and per-provider breakdowns- Usage tab — GitHub-style activity heatmap expanded to a full-year contribution grid
- Dashboard token stats — 30-day token totals and coverage ratio on the main dashboard
- Logs token column — inline token counts in the request log table
- ChatCompletions usage shape — parse
prompt_tokens/completion_tokensalongside the Responses shape - SSE Content-Type detection — correctly detect SSE streams when upstream omits the Content-Type header
- Provider pool merging — merge codex pool log-label suffixes in summary aggregation
- Usage debug capture —
OPENCODEX_USAGE_DEBUG=1dumps upstream response shapes for troubleshooting
CLI & Diagnostics
ocx status --json— machine-readable runtime diagnostics (port, pid, provider state)- Help surface split —
ocx helpandocx statusextracted into dedicated modules - Runtime port reporting — status shows the actual fallback port when the default is taken
Quota & Billing
- Go/Free 30d-only quotas — normalize quota display to monthly-only for Go and Free plans
- configuredPlan forwarding — pool quota fetch receives the plan context for accurate bucketing
- Service tier in logs — show the fast/standard tier used per request
Windows Hardening
- Service lifecycle fixes: stop-before-cleanup ordering, scheduler XML task install, stale PID cleanup
- Passthrough: native SSE body handling, response close reason recording, stream rewrap avoidance
- Runtime: bun diagnostics exposure, websocket idle policy, service wrapper startup logging
CI & Testing
- Cross-platform CI stabilization with file permission guards for Windows
- React-free test imports via
codex-quota-utils.tsextraction /api/usageHTTP integration test coverage
Published to npm as @bitkyc08/opencodex@2.6.0 (latest).
npm install -g @bitkyc08/opencodex