Skip to content

v1.1.3

Choose a tag to compare

@FFidan FFidan released this 19 Jul 12:49
· 13 commits to main since this release
fe2618b

v1.1.3 — Safer installs, accurate access modes, and an operations CLI

A patch release that hardens the install, deployment, and update lifecycle. Re-running setup no
longer loses configuration or data, access-mode behaviour and documentation match the deployed
configuration, and a new jarvis-research CLI manages updates and uninstalls transactionally.
This release changes application code, so the :1.1.3 images differ from :1.1.2.

Security

  • Credential exchange is refused over plaintext off loopback. The API-key exchange and
    magic-link verification endpoints reject requests from non-loopback hosts over plain HTTP, so a
    bearer exchange cannot cross the network unencrypted.
  • First-admin bootstrap is locked in production. The initial-admin setup path is gated in
    production, and the setup token is surfaced everywhere it is needed.
  • Passkeys are not offered for IP-address origins. A raw-IP origin is not a valid WebAuthn
    relying party, so passkey enrolment is hidden there instead of failing mid-flow.
  • The setup token stays out of server logs. The setup wizard reads its token from the URL
    fragment, and the setup link is always printed with a loopback host, so the token is never sent
    over the network.
  • SMTP credentials are passed to the application as a Docker secret rather than an environment
    variable.

Added

  • jarvis-research operations CLI. update, status, start, stop, restart, logs, doctor, repair,
    register, and uninstall, resolved from a registration file. Updates verify that the target
    release's images are published, classify new migrations read from the target tag, require a fresh
    checksum-verified backup before destructive migrations, stage all images before advancing the
    checkout (fast-forward only), and commit only after services report healthy. Rollback guidance
    distinguishes image rollback from schema rollback.
  • Tiered uninstall. Four scoped tiers (stop, images, data, purge) with a complete dry-run
    enumeration, typed confirmations that flags cannot bypass, an offer to export the backup
    encryption key before a purge, and a refusal with a resource inventory when the Docker daemon is
    unavailable.
  • --public-origin flag. Configures and probes a named private HTTPS origin end to end,
    reporting the edge as pending until the probe succeeds.

Fixed

  • Re-running setup preserves configuration and data. The existing .env is kept byte-for-byte,
    including operator-added keys; template keys new to a release are appended; and only settings
    supplied to the current invocation are changed. A rolling snapshot is taken before any rebuild,
    with a restore command printed if setup fails before the stack starts. The certificate-repair path
    that removed the dashboard container together with its volumes has been deleted.
  • GPU detection is more accurate on virtualized and non-Intel hosts, and Vulkan is opt-in. Render
    nodes are matched by PCI vendor ID, GPU overlays pass numeric group IDs that resolve inside the
    container, and Intel and AMD-without-KFD hosts default to CPU with a hint. A failed GPU start
    offers a CPU retry. This resolves an arm64 VM install that could not start Ollama.
  • LAN access is reported as plain HTTP. The displayed URL, reachability probe, and CORS origins
    reflect HTTP, and the LAN address joins the accepted-host list.
  • The local HTTPS profile no longer collides with the dashboard port — it runs on 3443 — and
    Let's Encrypt installs report success only after the certificate answers a bounded health poll.
  • Email delivery reports its real result. Admin responses include a manual sign-in link when
    delivery did not occur, and account email verification is only marked sent on actual delivery.
  • Preflight and readiness are more thorough and correctly ordered. Preflight now covers python3,
    the minimum Compose version the overlays require, the host ports the deployment will bind, WSL
    environments, and the NVIDIA container toolkit. The readiness script distinguishes warnings from
    failures in its exit code — warnings no longer abort production installs — and the completion
    banner prints only after the checks pass.
  • The host-port pre-check honors exported overrides, matching how Compose itself resolves publish
    addresses.
  • update.sh stages every image before recreating any service, reports services without
    healthchecks explicitly, gains a --yes flag for unattended runs, and installs the CLI after a
    successful update so existing installs pick it up.
  • Pulse stage-1 scoring tolerates structured author IDs and applies topic dampening.
  • Citations to nonexistent sources are marked unverified rather than treated as resolved.
  • Flashcard generation receives the paper text verbatim.

Documentation

  • The access-modes and deployment guides describe the shipped configuration: encryption and
    certificate claims that did not apply to plain-HTTP routes are removed, each supported ingress
    adapter has a documented trust contract, and a new test asserts the documented route table matches
    the installer's route registry.

Model and backend defaults

No model, backend, reranker, or embedding default changes in this release. Local-first defaults
remain unchanged.

Upgrading

Run ./update.sh; it pulls the new application images (use --build-local to rebuild from source)
and installs the jarvis-research CLI. To roll back to a previously published release, pin
JARVIS_VERSION to that tag and pull it.