Skip to content

v1.2.0

Choose a tag to compare

@FFidan FFidan released this 23 Jul 13:14
· 11 commits to main since this release
472fa86

v1.2.0 — Source-aware visibility, whole-library processing, and safer lifecycle operations

A minor release that makes the shared research corpus private by default, adds whole-library
processing and scheduled discovery, and hardens the backup, restore, update, and uninstall
lifecycle. A paper is public only when a trusted server adapter promoted it, and every read path —
feed, knowledge graph, citation, summary, vector search, and Ask — resolves access through one
persisted rule. This release changes application code, so the :1.2.0 images differ from :1.1.3.

Migrations 0104, 0105, and 0106 apply automatically and idempotently at startup and move the
corpus to the source-aware visibility model; verified scholarly rows are backfilled as public and
all other existing rows become private-unless-shelved. Migrations are forward-only — take a restore
point before upgrading.

Added

  • Whole-library processing. An admin can queue eligible papers for download,
    analysis, and summary generation in one job, with per-paper progress and a
    partial result when some papers fail or are skipped.
  • Paper knowledge export. A paper can be exported as Markdown with its
    summary, notes, cards, structured extractions, and BibTeX citation.
  • Scheduled discovery. Each enabled source checks a rolling seven-day
    window for every configured topic, and administrators can opt in to automatic
    summaries for discovered papers.
  • Ranking-model status. Pulse reports whether its learned ranking model is
    active instead of leaving the operator to infer it from results.
  • Explicit instance ownership. Upgrades with one live administrator assign
    that account automatically; ambiguous multi-admin upgrades provide a host
    repair command, and database-managed owners can transfer safely in Admin.

Changed

  • Safer lifecycle operations. Backup manifests bind every archive in a
    restore point; update transactions resume after interruption; uninstall is
    scoped to the registered Compose project; and recovery points are verified
    before a data-changing update proceeds.
  • Clearer family access. Remote setup and sign-in require a verified named
    HTTPS address. Plain LAN HTTP exposes only /health/jarvis. Guided Tailscale
    setup can install the client with explicit consent on supported Linux hosts;
    private HTTPS, Cloudflare Tunnel, and Let's Encrypt paths report only what
    their checks prove. Cloudflare also has a non-interactive token-file path, so
    its credential never needs to appear in shell arguments. Multi-user installs
    can use privately shared one-time links when SMTP is not configured. A failed
    access-route change now restores and verifies the previous live dashboard and
    JARVIS-owned edge, not only its configuration file.
  • Hardware-aware defaults. NVIDIA acceleration is selected when its runtime
    is ready, AMD uses ROCm only when the required device is available, and other
    AMD or Intel hosts stay on the supported CPU path unless Vulkan is selected
    explicitly.
  • Complete disaster-recovery sets. Current restore points include the PDF
    object store and exactly the three keys coupled to restored data. Restores
    revoke transient sign-in state, preserve durable identities, rotate vector
    visibility state, and quarantine off-host integration credentials until an
    authenticated operator reviews them.
  • Source-aware paper visibility. Only papers promoted by trusted server
    adapters are public. Local uploads, client-supplied batches, personal or group
    Zotero imports, unknown provenance, and ambiguous legacy Zotero rows remain
    private unless explicitly added to a user's library. Feed, graph, citation,
    summary, vector-search, and Ask paths use the same persisted rule.
  • Audited frontend toolchain. Transitive YAML and glob parsers are locked to
    patched releases, and the existing Security workflow rejects future
    high-severity npm audit findings.

Fixed

  • Shared papers survive user deletion. Removing a paper from one person's
    library no longer removes canonical data or another person's work.
  • Embedding repair covers stale and missing vectors. Existing chunks are
    reconciled without downloading and parsing the PDF again.
  • Partial jobs no longer read as complete. The Jobs panel labels partial
    outcomes separately and keeps their completed and failed counts visible.
  • Cross-reference visibility matches Ask. Summaries and cross-paper
    retrieval now use the same persisted public-or-caller-library rule.

Upgrading

Run jarvis-research update (or ./update.sh); it stages the new application images (use
--build-local to rebuild from source), takes a fresh checksum-verified backup before the schema
migrations, advances the checkout fast-forward only, and commits after services report healthy. The
visibility migrations (01040106) are forward-only, so keep that restore point. To roll back to a
previously published release, pin JARVIS_VERSION to that tag and pull it.

Full changelog: CHANGELOG.md