Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c59906b49 |
@@ -3,6 +3,45 @@
|
|||||||
All notable changes to this project are documented here.
|
All notable changes to this project are documented here.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
||||||
|
|
||||||
|
## [0.2.43] - 2026-08-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **API keys actually gate the gateway.** Configured `[[api_keys]]` now enforce auth on
|
||||||
|
`/v1`, `/route` and `/mcp` (Bearer or `x-api-key`), attribute every request to the key's
|
||||||
|
account in stats, apply per-key rate limits (`rate_per_min` → 429 with `Retry-After`) and
|
||||||
|
per-key monthly budgets (`monthly_budget_usd` → 429 `insufficient_quota`). No keys
|
||||||
|
configured = open mode, as before.
|
||||||
|
- **Auto-detected tool support for managed local servers**: `cortiq serve` ≥ 0.5.63
|
||||||
|
advertises the loaded model's capabilities in `/healthz`; the gateway reads the handshake
|
||||||
|
when the server becomes healthy, so a local model whose chat template can drive tool
|
||||||
|
calling serves agent (tools) traffic with zero manual configuration. Manual override:
|
||||||
|
`caps = ["tools"]` on the `[[cmf.servers]]` entry (also the fallback for older serves).
|
||||||
|
- **OpenRouter balance on the dashboard** (when an OpenRouter key is configured): the
|
||||||
|
remaining credit is a KPI card, red under $5.
|
||||||
|
- **Harness snippets for every OS** on the API-keys page: Linux/macOS and Windows variants
|
||||||
|
per harness, an install command chip when the harness is missing, and a paste-your-key
|
||||||
|
field that substitutes the real key into every snippet.
|
||||||
|
- Deploy guide (`docs/DEPLOY.md`, Russian mirror): systemd/launchd/Windows service, nginx and
|
||||||
|
Caddy TLS fronting, security checklist, backup list.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Capability filtering widens the tier chain instead of killing the request: when an AUTO
|
||||||
|
route's chain has no model with the required capabilities (tools), the gateway escalates
|
||||||
|
through medium→high chains and then the rest of the pool instead of returning
|
||||||
|
"No healthy model available". Explicit pins still fail loudly.
|
||||||
|
- Semantic-cache threshold no longer renders as `0.9200000166893005` (f32→f64), the cache
|
||||||
|
settings card shows live entries/hits/saved-$ and warns when no embedding model exists.
|
||||||
|
- Key-page snippets survive being pasted into a real interactive zsh (no `#` comment lines,
|
||||||
|
no history-expansion `!`), and the install chips are readable in the light theme.
|
||||||
|
- Stats log growth is bounded: `[stats] max_file_mb` (default 16) folds old JSONL records
|
||||||
|
into the sidecar totals file — per-account all-time and month spend survive compaction
|
||||||
|
and restarts.
|
||||||
|
|
||||||
|
### Breaking
|
||||||
|
- If your config already lists `[[api_keys]]` but your clients never send keys, requests
|
||||||
|
will now be rejected with 401 — either remove the keys from the config or start sending
|
||||||
|
`Authorization: Bearer <key>`.
|
||||||
|
|
||||||
## [0.2.42] - 2026-08-08
|
## [0.2.42] - 2026-08-08
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
Generated
+1
-1
@@ -285,7 +285,7 @@ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cortiq-gateway"
|
name = "cortiq-gateway"
|
||||||
version = "0.2.42"
|
version = "0.2.43"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"arc-swap",
|
"arc-swap",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "cortiq-gateway"
|
name = "cortiq-gateway"
|
||||||
version = "0.2.42"
|
version = "0.2.43"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.75"
|
rust-version = "1.75"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user