github xiao-villamor/PrintStash v0.9.0
v0.9.0 — Provider maturity

latest releases: v0.12.1, v0.12.0, v0.11.4...
one month ago

Added

  • PrusaLink local FDM support (beta). Connect modern PrusaLink with Digest
    username/password authentication or legacy installations with an API key.
    PrintStash supports live status, G-code upload, explicit start, remote file
    inventory/deletion, and pause/resume/cancel without using Prusa Connect cloud.
  • Elegoo Neptune 4-family setup. Neptune 4, Pro, Plus, and Max can be added
    through a dedicated preset backed by the existing Moonraker/Klipper provider,
    keeping one tested transport and an identifiable printer variant.
  • Elegoo Centauri Carbon support (beta). Original Carbon printers connect
    locally over SDCP/WebSocket, while Carbon 2 uses its access-code-protected
    local MQTT API. Both provide status and start/pause/resume/cancel controls.
    Upload and file inventory stay disabled because current firmware exposes no
    safe confirmed file API.
  • OctoPrint support (beta). Connect a local OctoPrint/OctoPi instance with
    an API key for live status, G-code upload, explicit start, remote file
    inventory/deletion, and pause/resume/cancel.
  • Provider-aware printer setup. The add-printer flow now offers Moonraker,
    Elegoo Neptune 4, PrusaLink, OctoPrint, and Bambu LAN with only the
    credentials required by each integration.
  • Printer model detection on the printer card. Bambu (from its serial
    prefix) and Elegoo Neptune 4/Centauri (from the setup preset) show a
    best-effort hardware model automatically. Any printer's model can be set or
    corrected from a curated picklist to avoid typos, with an "Other" option
    for custom builds.
  • Bambu LAN Vault send support (beta). PrintStash can upload plain-text
    G-code to a Bambu printer's local cache over implicit FTPS, then start the
    uploaded file through the local MQTT connection. Upload-only remains the
    default; starting requires the explicit Start print immediately option.
  • Provider-safe Bambu send guard. Bambu sends now verify that the printer
    reports an idle/ready state before creating a transfer job, so an active or
    unreachable printer is rejected without leaving a job stuck uploading.
  • Provider capability matrix. Printer integrations declare supported
    actions from one shared capability set (status, upload, start, controls,
    file inventory, raw G-code, and measured consumption). API diagnostics and
    frontend actions are derived from that data instead of provider-specific UI
    checks.
  • Provider conformance suite. Every printer integration is exercised by one
    shared test pack: it must register, reject incomplete credentials, refuse the
    actions it does not declare without touching the network, and keep transport
    failures behind the common provider error surface. Adding a printer backend is
    now a single small class, so future providers arrive faster and behave
    consistently from the first release.
  • Printer management refresh. Printer cards can optionally show model
    artwork, detected models can be corrected inline, and provider badges now use
    the shared visual language. Printer detail has a clearer idle/offline Status
    view, compact temperature telemetry, and a new Settings tab for editing names,
    groups, notes, model overrides, connection addresses, and provider credentials.
  • Dashboard-wide UI polish. Document pages now share one responsive width
    and heading pattern; Settings, Statistics, Profiles, Organize, navigation,
    empty states, errors, and destructive confirmations use the same semantic
    surfaces and controls. Browser tabs also identify the current PrintStash page.
  • Consistent motion and feedback. Model grids settle in with a short capped
    stagger, the batch toolbar rises and fades with selection, tabs move on the
    compositor, and modals, drawers, menus, and toasts use the same fast motion
    scale with symmetric close animations and reduced-motion support.

Fixed

  • Predictable reconnect behavior. Initial connection and subscription
    failures now use bounded exponential backoff, while a recovered provider
    clears its stale offline/error state on the first successful status update.

  • Bambu status failures reach the printer hub. Polling errors no longer stay
    hidden inside the provider loop, preventing stale online state during a LAN
    outage and allowing the shared reconnect policy to take over.

  • Mixed-provider send controls are capability-aware. The send dialog keeps
    upload-only printers selectable but disables Send & Print when any
    selected printer cannot start the uploaded file.

  • Consistent page width. Printers, Statistics, Profiles, Settings, Organize
    and printer detail each defined their own scroll container and content width,
    so navigating between them shifted the layout sideways. They now share one
    PageContainer primitive with a single content width.

  • The batch selection toolbar animates. Selecting models popped the toolbar
    into existence with no transition; it now rises and fades, and reverses
    cleanly when a selection is toggled rapidly.

  • Printer creation ignores duplicate submits. Rapidly pressing Add
    printer
    can no longer create multiple database rows and unexpectedly advance
    the printer URL ID.

  • Navigation and overlays are more accessible. Active navigation links now
    expose their current-page state, focus behavior is consistent, and shared
    confirmation dialogs replace browser-native destructive prompts.

Performance

  • Live job database writes are bounded. Unchanged progress updates are
    coalesced to a five-second interval. Three consecutive job-sync database
    failures open a per-printer circuit breaker with increasing retry delays,
    preventing a database outage from becoming a write storm.
  • Theme switching no longer restyles the whole document. The theme swap
    applied a transition to every element and pseudo-element including
    box-shadow; it is now limited to color properties on the standard timing
    scale. Toasts and the tab indicator were also moved onto GPU-composited
    properties and the shared motion tokens.

Ops

  • Node.js 24 is pinned for frontend development and release builds, matching
    CI and the production frontend image.
  • Provider documentation, limitations, diagnostics, manual hardware checks,
    and the public roadmap now describe the 0.9.0 capability surface.

Full changelog: v0.8.5...v0.9.0

Don't miss a new PrintStash release

NewReleases is sending notifications on new releases.