Janus Edge 2026.9.5
Added
- One-paste activation: install the activation code from the license portal and tick Automatically renew and sync in the same step. The gateway installs the key, stores the sync token, and reports any sync problem immediately.
- License & updates opens with a single verdict: a green check when the gateway is licensed and healthy, a yellow Attention needed listing each reason (expiring without confirmed renewal, grace period, over seats or nodes, renewal sync stale or failing, cancellation scheduled, clock skew, unsupported version), and a red Not properly licensed when the key is expired or invalid. The page fits on one screen at common desktop sizes.
Changed
- Reports: a redesigned result view, library actions, and cleaner PDF, CSV and spreadsheet exports.
- My teams is one compact workspace per team: header, a summary strip (members, requests, tokens, spend, error rate), an activity chart, usage by model and the member roster side by side.
- Admin tables act from one line per row: row actions are icon buttons whose label appears on hover and keyboard focus, and the actions column stays pinned on narrow windows. People uses tighter rows and a Rows per page choice (25–200).
- License sync token and key fields use the standard themed inputs.
Fixed
- The same model name served by more than one upstream no longer breaks grants: a request goes to the most recently discovered copy the caller is granted and is billed at that copy's rate card. The Models and Grants pages label copies by upstream.
- Input tokens-per-second no longer counts prompt-cache hits as processed input.
- An upstream can be created with the name of a deleted one (deleted upstreams keep usage history but no longer reserve their name).
- The container image no longer declares
VOLUME /data, so PostgreSQL deployments do not get an anonymous volume. SQLite users still mount/dataas documented. - "Rows per page" no longer wraps on narrow tables; Help's topic list and snippet tabs render correctly.
Install
- Server installer:
curl -fsSLO https://github.com/Torvanis/janus/releases/download/v2026.9.5/install.py && sudo python3 install.py --admin-email you@example.com - Upgrade an existing install:
sudo janus-ctl upgrade - Container image:
ghcr.io/torvanis/janus:2026.9.5(sha256:913bffe5b393483113db23f55b628b367e1ee46d3e2ac4e0eceb9e36a3d7407e, linux/amd64 + linux/arm64) - Offline container image (no registry access needed): download
janus_2026.9.5_image_linux_amd64.tar.gz(or_arm64), then rundocker load -i janus_2026.9.5_image_linux_amd64.tar.gz(orpodman load -i ...). It loads asghcr.io/torvanis/janus:2026.9.5, the same image as the registry pull. Usedocker load, notdocker import:importtreats the file as a bare filesystem and drops the image's entrypoint, sodocker runfails with "no command specified". In Portainer, use Images → Import, which runsload; to use the image in Kubernetes, push it to your internal registry. - Helm chart:
janus-0.1.4.tgz(pinned to the digest above)
Verify downloads with sha256sum -c SHA256SUMS.