v0.2.2
Pre-release
Pre-release
Overview
v0.2.2 strengthens MCP request accounting and upstream stream integrity, makes the administration panel more reliable under pagination and partial runtime-configuration failures, and introduces automated Linux release archives alongside the versioned Docker image.
Reliability and security
- Ambiguous MCP routing fields are rejected. Duplicate or case-colliding JSON-RPC
method,params, and tool-name fields can no longer bypass RPM, concurrency, quota, or usage accounting. - Prematurely terminated upstream streams now fail explicitly. Chat Completions and Anthropic streams must reach their protocol terminal events; truncated answers are rejected and reserved successful-call quota is rolled back.
- Quota rollback preserves the original reservation period. Delayed failures after a monthly rollover can no longer decrement another period, and each reservation is released at most once across normal and panic cleanup paths.
- Panel rendering paths are hardened. Browser HTML sinks are centralized behind sanitization, API errors expose stable codes, and authentication handlers are split into clearer registration and session boundaries.
Administration panel
- Dashboard health reflects the real upstream state. The panel distinguishes healthy, degraded, unhealthy, and unknown states instead of presenting an unsupported availability claim.
- Overview loading is independent from health probes. Upstream checks are cached and coalesced, local dashboard data can load without waiting for them, and settings updates invalidate stale health results.
- Saved-but-not-applied settings remain visible. Durable and live settings revisions are tracked separately across storage, APIs, health checks, and the UI so partial runtime application failures are not mistaken for successful activation.
- Tier assignments are preserved across cursor pages. The user editor loads all tier pages and blocks stale references, preventing unrelated edits from silently changing assignments.
- Invite redemption history is bounded with stable pagination. Storage, API responses, modal state, and controls now use keyset pagination for large histories.
Release and documentation
- Publishing a GitHub Release now runs the full Go test suite, builds Linux
amd64andarm64archives, uploads SHA-256 checksums, and publishes the matching multi-architecture Docker image. - Runtime, proxy, persisted-settings, panel-route, credential-recovery, Docker, and release-workflow documentation has been aligned with current behavior.
- The default build version and documented Docker image tag are updated to
v0.2.2.
Upgrade notes
- v0.2.2 is intended as an upgrade from v0.2.1.
- Database migrations, including persisted settings revision tracking, are applied automatically at startup; no manual migration is required.
- No new mandatory environment variables are introduced.
- As with previous project releases, v0.2.2 is published as a prerelease.
Included commits
e95ac9cdocs(readme): refresh setup and runtime guidance3733699fix(grok): reject prematurely terminated streamscf6d211refactor(panel): harden rendering and split auth handlers33854f2feat(release): automate GitHub release assetsc5b9801fix(usage): reject ambiguous MCP routing fields771e8ccfix(panel): report real overview health status6761770docs(readme): align runtime and deployment contractse2188a4fix(quota): preserve reservation period on rollback94960acchore(gitignore): exclude local agent metadataca4ea77fix(panel): preserve tier assignments across cursor pagese95425ffix(panel): decouple dashboard loading from health probes5a2d2a4fix(settings): preserve saved-not-applied runtime statefc1080ffix(invites): bound redemption history with pagination564197fchore(release): prepare v0.2.2
Full changelog: v0.2.1...v0.2.2