v2.6.5

Michael-A-Kuykendall/shimmyv2.6.5Oct 19, 2026by github-actions[bot]

Upgrading?

AI Summary

This release updates to Airframe 0.4.4 and introduces significant security enhancements by requiring API keys for non-loopback connections. It focuses on fixing token counting accuracy, improving streaming response handling, and correcting HTTP prompt rendering.

Key Highlights

  • Require `SHIMMY_API_KEY` for non-loopback HTTP binds and protect inference routes.
  • Support `stream_options.include_usage` and report streaming generation failures as errors.
  • Return exact token counts and truthful `stop`/`length` reasons in responses.
  • Add Linux ARM64 release binaries and support native OS testing on x86-64, ARM64, Windows, and macOS.
  • Correct response-cache byte accounting and restore missing v2.6.4 release notes.

Breaking Changes

  • Replace wildcard CORS with explicit `SHIMMY_ALLOWED_ORIGINS`.
  • Require `SHIMMY_API_KEY` for non-loopback HTTP binds.
  • Keep Compose host ports on loopback by default.

New Features

  • Support `stream_options.include_usage` in streaming responses.
  • Return exact token counts and stop/length reasons in OpenAI/native JSON responses.
  • Add Linux ARM64 release binaries and SHA256 checksums for all assets.
  • Render HTTP chat prompts once before Airframe generation to preserve ordered conversation turns.
  • Add `scripts/smoke_text.py` for model-backed endpoint verification.

Full Release Notes

## [2.6.5] — 2026-10-18 — Airframe 0.4.4

### Fixed

- Return exact prompt/completion token counts and truthful `stop`/`length`
  reasons in OpenAI/native JSON responses and OpenAI streaming responses.
- Support `stream_options.include_usage`; report streaming generation failures
  as errors instead of successful completion.
- Render HTTP chat and completion prompts once before Airframe generation,
  preserving ordered conversation turns and explicit raw prompts.
- Return a JSON chat completion when the OpenAI `stream` field is omitted.
- Add weight-free protocol regressions for prompt routing and streaming.
- Restore default-feature invariant-test imports and exercise those tests in CI.
- Restore the missing v2.6.4 release notes required by binary publication.
- Correct response-cache byte accounting on overwrite and eviction accounting
  on clear (#217). Thanks to @aiqubits for the diagnosis and fix proposal (#219).

### Security

- Require `SHIMMY_API_KEY` for non-loopback HTTP binds and protect inference,
  management, diagnostics and WebSocket routes when a key is configured.
- Replace wildcard CORS with explicit `SHIMMY_ALLOWED_ORIGINS`.
- Require deployment credentials, keep Compose host ports on loopback, and
  use a Kubernetes ClusterIP service with Secret-backed authentication (#221).

### Changed

- Use Airframe 0.4.4 and `airframe-observe` 0.1.3.
- Test on native Linux x86-64/ARM64, Windows x86-64 and macOS ARM64 runners.
- Add Linux ARM64 release binaries and publish SHA256 checksums for all assets.
- Refresh Docker images for the current Airframe build and Vulkan runtime.
- Resolve `shimmytok` 0.8.4 in the release lockfile.
- Correct quickstart commands and add `scripts/smoke_text.py` for model-backed
  endpoint verification.

Related Repositories