Skip to content

v0.2.2

Pre-release
Pre-release

Choose a tag to compare

@MapleMapleCat MapleMapleCat released this 20 Jul 07:51

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 amd64 and arm64 archives, 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

  • e95ac9c docs(readme): refresh setup and runtime guidance
  • 3733699 fix(grok): reject prematurely terminated streams
  • cf6d211 refactor(panel): harden rendering and split auth handlers
  • 33854f2 feat(release): automate GitHub release assets
  • c5b9801 fix(usage): reject ambiguous MCP routing fields
  • 771e8cc fix(panel): report real overview health status
  • 6761770 docs(readme): align runtime and deployment contracts
  • e2188a4 fix(quota): preserve reservation period on rollback
  • 94960ac chore(gitignore): exclude local agent metadata
  • ca4ea77 fix(panel): preserve tier assignments across cursor pages
  • e95425f fix(panel): decouple dashboard loading from health probes
  • 5a2d2a4 fix(settings): preserve saved-not-applied runtime state
  • fc1080f fix(invites): bound redemption history with pagination
  • 564197f chore(release): prepare v0.2.2

Full changelog: v0.2.1...v0.2.2