Skip to content

Commit 476cfaf

Browse files
fylornclaude
andauthored
chore: v0.66.0 (#301)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent ce641c5 commit 476cfaf

3 files changed

Lines changed: 34 additions & 20 deletions

File tree

‎Cargo.lock‎

Lines changed: 19 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ categories = ["network-programming", "web-programming::http-server"]
5454

5555
# 二进制走 CalVer,crate 走 SemVer —— 两者是两回事,卖给不同的人。
5656
# 这里是 crate 的版本。
57-
version = "0.65.0"
57+
version = "0.66.0"
5858

5959
[workspace.dependencies]
6060
# ── 内部 crate ───────────────────────────────────────────

‎release-notes/0.66.0.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
This release lets an upstream's models be added by hand. An upstream that answers `/v1/models` but leaves out a model it serves — an account backend that hides newer models, a relay that lists only some — can now be given that model, and requests for it are routed there like for any listed model.
2+
3+
**Upgrade notes**
4+
5+
- The control-plane protocol version (`CONTROL_API_VERSION`) goes from 41 to 42. ThinkWatch Lite connects only to a core with the same protocol version: ThinkWatch Lite 2026.10.9 includes 0.65.0 (protocol 41) and does not connect to 0.66.0. A server used with it stays on 0.65.0 until the app is updated to a release that includes 0.66.0; `sudo twcore upgrade --version 0.65.0 --restart` switches a server back.
6+
- The request store's schema is unchanged: upgrading from 0.65.0 keeps the request history.
7+
- **`providers[].models` is now checked when the configuration loads.** An entry that is blank, has spaces around it, contains `*` or `?`, appears twice, or is longer than 256 characters is refused, and core starts in safe mode with an error naming the upstream and the model; fix or remove the entry. Before, such entries were accepted as written. A configuration that never wrote `models`, or wrote plain model ids, loads unchanged.
8+
- Changed in the protocol:
9+
- New endpoint `PUT /provider-manual-models` (`ManualModelsSave { provider, models, base_version }` → `ConfigWritten`): replaces one upstream's models added by hand, in the order given, and leaves the rest of its entry alone. An empty list removes the key.
10+
- `ModelRow` gains `manual` (the model was added by hand) and `listed` (the upstream's own list has it).
11+
- Message codes, compared with 0.65.0:
12+
- New: `config.manual_model_blank`, `config.manual_model_padded`, `config.manual_model_wildcard`, `config.manual_model_duplicate`, `config.manual_model_too_long`.
13+
14+
**Models added by hand.** `providers[].models` used to be a fallback, read only when the upstream did not answer `/v1/models`. It now always counts: its models are offered by that upstream next to the ones the upstream lists, and are the whole list when the upstream lists none. A model on both lists appears once. Everything that asks which models an upstream has treats them the same way: routing and failover, aliases, routing rules that name a model, a key's allowed models, the gateway's `/v1/models`, the dry run and the speed test. `models_only` still limits what is used. Changing the list takes effect on reload, without asking the upstream for its list again.

0 commit comments

Comments
 (0)