Sync the self-hosting stack

This commit is contained in:
2026-08-24 14:11:54 +02:00
parent 9848d2f8be
commit 0948e08328
4 changed files with 60 additions and 60 deletions
-23
View File
@@ -235,26 +235,3 @@ JARVIS_PORT=8080
# through the check-in and is stored, so leaving an old key here cannot roll you back. To replace a
# key, use Settings → Licence.
#JARVIS_LICENSE_KEY=
# Whether an instance WITHOUT a licence reports to your provider. On unless you say otherwise.
#
# It sends the same fields a licensed instance does — counts, the version it runs, its contract
# checksum and its public address — to checkin.luxit.be. No names, no conversation content, nothing
# about what you administer. The README lists every field.
#
# Set it to off and nothing leaves this network at all. You keep every community allowance and every
# feature; what stops working is the licence request form in Settings → Licence, which needs the same
# channel. Accepted values for off: off, false, 0, no.
#
# A LICENSED instance reports regardless — that is part of what a licence is, and this variable does
# not change it.
# NOTE, 24 August 2026: this line did nothing before that date, and we are sorry. Compose reads
# this file to fill in placeholders INSIDE the compose file — it does not hand it to the services —
# and the api service never listed this variable, so the API saw nothing and applied its default of
# "on". An instance that had opted out reported anyway. Pull the repository again and
# `docker compose up -d`: the fix is in the compose file, not in the images.
#
# Do not trust this file to tell you whether it took. Ask the instance:
# docker compose exec api printenv JARVIS_TELEMETRY
# Settings -> Licence answers the same question from what the API actually resolved.
#JARVIS_TELEMETRY=on
+49
View File
@@ -9,6 +9,55 @@ 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-08-24 — Reporting is no longer optional `api 0.90.0` `web 0.114.0`
**`JARVIS_TELEMETRY` is gone, and with it the ability to stop your instance checking in.** Three days
ago this repository told you the variable worked, and apologised for the fact it had not. We are
withdrawing the option rather than leaving you to discover it stopped working: it is removed from the
compose file, from `.env.example`, from the licence screen and from the install wizard, which is
nine steps now instead of ten.
The reason is the one already written down for why a community instance reports at all. A free tier
the publisher cannot see is a free tier nobody can warn — and the instances that opt out are exactly
the ones most likely to be running an old build unattended, which is the population a warning is for.
**What has not changed is what leaves your network, or your ability to see it.** The field list below
is complete and unchanged: your instance id and public key, the version and contract hash it runs,
its public address, and counts of organizations, users, agents and assets. No names, no conversation
content, nothing about the machines you administer. **Settings → Licence** shows you the address and
the contents resolved by your own running instance, which is the answer that matters rather than
anything this document says.
If that does not suit your deployment, tell us before you deploy — we would rather have the
conversation than have you find out from a packet capture.
### Also in this release
**The sign-in field is off on a new installation.** The orb you press and hold to reveal the sign-in
form is a deliberate piece of the product, and it is no longer what a brand-new instance greets you
with — a first-time deployer meeting an unlabelled glowing hexagon has a puzzle rather than a login.
Turn it on under **Settings → Platform → Sign-in**; instances that already have it keep it.
## 2026-08-24 — "Open Jarvis" sent you back to the install screen `web 0.113.0`
**If you installed on web 0.112.0, the last click of the wizard put you in a loop.** You finished,
pressed **Open Jarvis**, and landed back on the install screen reading "This instance already has an
administrator" — with a button to sign in that bounced you to the console, which sent you back to the
install screen again. Nothing was wrong with your instance and nothing was lost; a reload of the page
was enough to break out of it. It was still the worst possible moment for it, on the one screen a
new deployer meets exactly once.
The console asks "does this instance need installing" once, when the page first loads, and it had no
way to learn the answer had changed under it — so at the end of the wizard it was still acting on
what it had been told before you started. The wizard now tells it.
Upgrade with the usual two lines:
```sh
docker compose pull
docker compose up -d
```
## 2026-08-24 — The claim no longer expires `api 0.89.0` `web 0.112.0`
**The thirty-minute window on the install screen is gone.** There is no countdown, no "the window
+11 -24
View File
@@ -25,7 +25,7 @@ licence from your provider raises the limits; it does not switch anything on.
When you outgrow it, **ask for a licence from inside Jarvis** — Settings → Licence — and the key
arrives on your instance by itself. A community instance reports its version and its counts so that
we can see which builds are in the field; [what it sends](#licence-keys-and-what-your-instance-reports)
is listed in full below, and `JARVIS_TELEMETRY=off` stops it without costing you anything.
is listed in full below.
- [What it does](#what-it-does)
- [What decides whether a tool call runs](#what-decides-whether-a-tool-call-runs)
@@ -646,24 +646,12 @@ whether the community edition was reaching anybody, or which builds were running
warn people about one. And the licence request below needs the same channel — a form that could not
reach us would just be an email with extra steps.
**`JARVIS_TELEMETRY=off` in `.env` stops it completely.** You keep every community allowance, every
feature and every machine; what you lose is the request form, and our ability to know you exist. That
is a fair trade and we would rather you took it than felt watched.
> **This did not work before 24 August 2026, and we are sorry.** The line was read from `.env` by
> compose — which uses that file to fill in placeholders inside the compose file, not to hand values
> to the services — and the `api` service never listed the variable, so the API saw nothing and
> applied its default of "on". An instance that had opted out reported anyway. Pull this repository
> again and `docker compose up -d`; the fix is in the compose file, not in the images.
>
> **Do not trust a file to tell you.** Ask the instance:
>
> ```sh
> docker compose exec api printenv JARVIS_TELEMETRY
> ```
>
> No output means it still has not landed. **Settings → Licence** answers the same question on
> screen, from what the API actually resolved — which is why that screen exists.
**Reporting is part of running Jarvis, and there is no switch.** Every instance checks in —
community or licensed, the same fields either way — because it is the only way we see which builds
are in the field when one of them turns out to need a warning, and because the licence request form
below travels the same channel. What leaves is listed field by field in the next section, and
**Settings → Licence** shows you the exact address and the exact contents from the running instance
rather than from this document.
Everything in the next section applies to a community instance as well: the field list is the whole
field list, and it is the same one.
@@ -712,11 +700,10 @@ publisher can identify only by a fingerprint is one where "which of these is the
about" has no answer. The screen shows you the exact address that leaves, under **Settings →
Licence**.
**The whole of it is switchable off, and only on a community instance**: set `JARVIS_TELEMETRY=off`
in `.env` and nothing leaves your network at all. A licensed instance always reports — that is part
of what a licence is, and the licence screen says so rather than offering a switch that would make
the arrangement a matter of opinion. If neither suits your deployment, take it up with us before you
buy anything.
**There is no way to switch this off**, on a community instance or a licensed one. It is the same
report either way, and the licence screen states it rather than offering a control that would make
the arrangement a matter of opinion. If that does not suit your deployment, take it up with us before
you deploy anything.
The reply can carry a renewed key, which your instance adopts on its own — so a renewal reaches you
without anybody re-pasting anything.
-13
View File
@@ -186,19 +186,6 @@ services:
# everything it already has, creates nothing new, and contacts nobody. See the README.
JARVIS_LICENSE_KEY: ${JARVIS_LICENSE_KEY:-}
# WHETHER ANYTHING LEAVES THIS NETWORK, and it has to be passed explicitly — this line is the
# whole control. It was missing until 24 August 2026, and its absence made a published promise
# false: `.env` is read by compose for `${...}` INTERPOLATION ONLY, never injected into a
# container, and no `env_file` makes up the difference. So an operator who wrote
# `JARVIS_TELEMETRY=off` in `.env` — exactly as the README, the changelog and `.env.example` all
# told them to — was reporting to the publisher the entire time, because the api saw nothing
# and applied its default of "on".
#
# Defaulted to the word rather than to empty, deliberately. The schema defaults an ABSENT
# value to "on", but `${VAR:-}` passes an empty STRING, which is present — the same trap that
# killed WEB_ORIGIN on a zero-config boot. Passing "on" means the container never has to
# reason about the difference.
JARVIS_TELEMETRY: ${JARVIS_TELEMETRY:-on}
# Which distribution channel this instance follows, shown to signed-in operators beside the
# version numbers. Set `JARVIS_CHANNEL=stable` (or `dev`) in .env if you track a channel;
# LEAVE IT EMPTY IF YOU PIN EXACT VERSIONS, because then you follow no channel — you follow a