Sync the self-hosting stack

This commit is contained in:
2026-09-25 13:52:47 +02:00
parent 3228bb01a6
commit 4f7d4dabcc
3 changed files with 125 additions and 17 deletions
+78
View File
@@ -9,6 +9,84 @@ one of them changed. An entry says which artefact and which version, so `web 0.1
Every version published to a channel appears here. Nothing is written from memory afterwards: a build
cannot be published without its entry.
## 2026-09-25 — A licensed instance can choose the managed model while it is being installed `api 0.113.0` `web 0.138.0`
**The install screen now asks for the licence before the model, and offers the managed model
there.** The model step used to come first and knew only your own provider. The managed model can
only be offered to an instance your Jarvis provider has linked to its licence, that link is made by
the instance's licence report, and an instance being installed sent none — so a licensed customer
had to type a key for a provider they did not want, or skip the model and choose the managed one
afterwards under **Settings → Platform → Model**.
**Adding a paid or trial key on the install screen now sends the licence report straight away**,
rather than once the install is finished — and so does opening the licence step with a key the
instance already holds from `JARVIS_LICENSE_KEY`. That is a new moment of sending, so here is
exactly what it is: the same report with the same fields as every other — the licence id, this
instance's id and public key, its version, contract checksum, counts and public address, the
timestamps and the signature; no names and no conversation content. The
[README](README.md#licence-keys-and-what-your-instance-reports) lists every field. It goes early
because it is what links the instance to its licence. The licence step says so beside the key field,
and shows how the report went — linked, refused by your provider and why, or not sent and why — with
**Report now** to try again.
**Nothing else reports earlier than before.** Only the licence step sends a report while the
instance is being installed; nothing reports on its own until the install is finished, even when
the key and the address both come from the environment. An instance without a licence still sends
nothing until then, and the licence step sends nothing for a licensed one whose address is not set
yet, is `localhost` or another loopback address, or is an example address such as
`jarvis.example.com`.
**The model step is now the same choice as the settings screen**: your own provider, with the test
button and "Skip for now" as before, or the managed model, with the same statement of what it sends
and the same box to tick before it is selected. Choosing the managed model there is enough to
continue, so a licensed install can be finished without a model key of your own. Without a licence,
the managed option is shown as unavailable, with the reason and a way back to the licence step.
Reaching the model step on a licensed instance asks your provider whether the managed model is
offered, exactly as opening **Settings → Platform → Model** does: a signed request with no
conversation content.
**Also in this release.**
- "Report now", under the managed model's option in the model settings, now says what your provider
answered when a report did not link the instance — a licence it does not know, one already in use
on as many instances as it allows, one it has withdrawn — where it used to say nothing and leave
the option unavailable.
- When your provider refused to link the instance for a reason another report cannot change — the
licence is already in use on as many instances as it allows, or your provider does not know it —
the managed option now says that, on the settings screen and on the install screen, instead of
"available after this instance's next report". The licence step keeps saying it when you come back
to it.
- "Your own provider" is marked **In use** only once an endpoint's model and key are saved. A new
instance used to show it over an empty form.
- An install that has been started can be resumed from a browser that is not signed in: the install
screen asks you to sign in, and the sign-in page now opens instead of sending you back.
- The Kubernetes `02-config.yaml` no longer sets `WEB_ORIGIN` to the placeholder
`https://jarvis.example.com`; it is commented out. Applied unedited, it was stored as the
instance's address until the install screen replaced it.
**Self-hosters:** api and console. The schema gains one column, the licence server's answer to the
last report, applied automatically when the api starts; it only adds, so the schema guard has
nothing to refuse. No new environment variable. An instance that is already installed reports
exactly as before. On Kubernetes, nothing to do either: the install screen saved your real address
over the placeholder when you installed.
**Rolling back past this version** drops that column, which the schema guard refuses once a report
has filled it, and the api does not start. To go back anyway, set `SCHEMA_ACCEPT_DATA_LOSS=true`
for that one deploy — in `.env` on compose, on the `jarvis-migrate` Job on Kubernetes — then put
it back. What is lost is only that last answer, which the next report writes again.
## 2026-09-25 — The model is chosen in one place, and the form you are not using is out of the way `web 0.137.1`
Under **Settings → Platform → Model**, the choice between your own provider and the managed model is
now made with the selector and nothing else. The separate "Use your own provider" button is gone:
picking that option in the selector does the same thing, and still asks first when your own provider
is not configured, because switching would then leave the assistant with no model.
Your own provider's form now appears only while the selector is on it. While the managed model is in
use — or has been picked and is waiting for you to confirm — the form is hidden rather than shown with
a note saying it is not in use. Its settings, key included, are kept exactly as they were, and come
back with the form when you switch back.
## 2026-09-24 — A licensed instance can choose a managed model, and this is exactly what it sends `api 0.112.0` `web 0.137.0`
**No conversation content leaves unless somebody chooses it.** The assistant keeps using your own