diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a1a5b1..a23998e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,13 +18,41 @@ is only released once its **exit criterion** is met, not when its code lands. | v0.11.0 | — | High availability from setup, the setup and console screens, usage sums and per-tenant alerts | released | | v0.12.0 | — | The cluster's settings in the store, in force when changed; the firewall switch; wipe | released | | v0.13.0 | — | The whole system stopped and started from one command; Qwen3Guard judges, on a GPU and CPUs together | released | -| v0.14.0 | — | Knowledge bases: documents from people's own machines, kept apart per tenant, answered from | released (v0.14.1: adapters, the tree over the API, the firewall on every machine; v0.14.2: pictures from ComfyUI; v0.14.3: 3D models as jobs) | +| v0.14.0 | — | Knowledge bases: documents from people's own machines, kept apart per tenant, answered from | released (v0.14.1: adapters, the tree over the API, the firewall on every machine; v0.14.2: pictures from ComfyUI; v0.14.3: 3D models as jobs; v0.14.4: any ComfyUI workflow as a job, presets, licences; v0.14.5: picture and 3D models that add themselves; v0.14.6: setup that explains every part and lets it be chosen, the gateway on all three HA machines) | | v1.0.0 | 5 | What phase 5 has left: precise KV routing proven on vLLM, the block cost picker, defragmentation across NVLink domains, prefill/decode disaggregation | planned | Until v1.0.0 the minor version is the breaking one: configuration formats and Go APIs change between minors without a deprecation period. -## Unreleased +## v0.14.6 — 2026-10-16 + +Setup that says what each part of an install is and lets every one be +chosen and set; three machines that each run the gateway, so any one can +be lost; a cluster that loses its store's primary without losing a +request; one ComfyUI for an environment's models; pictures, 3D and +workflows as MCP tools; alerts asked for at setup; extended thinking. + +**Upgrading.** +- No migration. +- **Control planes**: with `control.lease_ttl` unset the lease is now 10 s + (was 15). Upgrade the standbys first and the leader last; a mix of + versions meanwhile is fine. +- **The store** (PostgreSQL): each member is dialled for 3 s before the + next is tried. A store so far away that connecting takes longer needs + `connect_timeout=10` in its address. +- **Nodes** notice a control plane that died without closing its + connection in 8 s (was 15) once they run this release. +- **Judges installed by an earlier `server init`** keep reserving no cores + and 2 GB. To give them their own: + `llmgw ctl model resources qwen3guard-0.6b --memory 4 --cores 2`, then + `llmgw ctl restart --model qwen3guard-0.6b`. +- **Patroni** replaces a lost primary within 20 s on a new cluster. On an + existing one, run `server init --patroni ...` again from the machine with + the authority; it changes only that. +- **A floating address** keeps VRRP router id 51 until `server add --vip` + runs again, which moves it to one of its own; run it for every standby. +- A request whose judge is not there yet waits up to the policy's + `latency_budget` for one before `fail: closed` refuses it. ### Added diff --git a/README.md b/README.md index 5af8747..86b888c 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Releases track the roadmap phases; see [CHANGELOG.md](CHANGELOG.md). | v0.11.0 | — | High availability from setup, the setup and console screens, usage sums and per-tenant alerts | released | | v0.12.0 | — | The cluster's settings in the store, in force when changed; the firewall switch; wipe | released | | v0.13.0 | — | The whole system stopped and started from one command; Qwen3Guard judges, on a GPU and CPUs together | released | -| v0.14.0 | — | Knowledge bases: documents from people's own machines, kept apart per tenant, answered from | released (v0.14.1: adapters, the tree over the API, the firewall on every machine; v0.14.2: pictures from ComfyUI; v0.14.3: 3D models as jobs; v0.14.4: any ComfyUI workflow as a job, presets, licences; v0.14.5: picture and 3D models that add themselves) | +| v0.14.0 | — | Knowledge bases: documents from people's own machines, kept apart per tenant, answered from | released (v0.14.1: adapters, the tree over the API, the firewall on every machine; v0.14.2: pictures from ComfyUI; v0.14.3: 3D models as jobs; v0.14.4: any ComfyUI workflow as a job, presets, licences; v0.14.5: picture and 3D models that add themselves; v0.14.6: setup that explains every part and lets it be chosen, the gateway on all three HA machines) | | v1.0.0 | 5 | What phase 5 has left: precise KV routing proven on vLLM, the block cost picker, defragmentation across NVLink domains, prefill/decode disaggregation | planned | As of v0.6.0 a cluster runs unattended: agents report their hardware, the @@ -50,6 +50,17 @@ budgets and rate limits decide who may use any of it. Since v0.11.0 (each release's detail is in [CHANGELOG.md](CHANGELOG.md)): +- **Setup that explains, and high availability that is whole** (v0.14.6). + `sudo llmgw` lists the parts of an install, each with what it is for and + what is missing without it, and every one can be turned off or set: the + starter model and its context, the mirror's directory, the judge's + categories and what it does when it does not answer, limits, the + portal's language, pictures and 3D. With three machines each runs the + control plane, with a floating address on the leader, and any one can + be lost: on three VMs, cutting the store primary's power lost no + request. One ComfyUI serves an environment's models, pictures, 3D and + workflows are MCP tools, and `/v1/messages` gives a model's reasoning as + thinking blocks. - **Picture and 3D models that add themselves** (v0.14.5). Where a node's card fits flux-schnell or triposr and the catalog makes nothing of that kind, the leader adds it on demand, so a new cluster's portal has its