github xiao-villamor/PrintStash v0.7.0
v0.7.0 — Notifications & event hooks

latest releases: v0.11.2, v0.11.1, v0.11.0...
one month ago

0.7.0

Added

  • Outbound notifications on print & printer events — get alerted when a print completes, fails, or is cancelled, and when a printer goes offline (cancellations are a distinct event you can mute separately). Four delivery targets: generic JSON webhooks, Discord, Telegram, and ntfy. Configure under Settings → Notifications (admins only) with per-event and per-printer toggles.
  • Reliable delivery — events are enqueued atomically with the state change that produced them (none are lost) and delivered by a background dispatcher with automatic retry and exponential backoff. Each channel shows its last delivery status and a recent-deliveries log; a Test button verifies a channel end to end. Off by default behind a master switch.
  • Richer notifications — messages lead with an event glyph and carry a "View model" link to the model's source page (Printables, MakerWorld, …) where known. Only safe http(s) links are ever rendered.
  • Much better mesh thumbnails — crease-aware smooth (Gouraud) shading and a Z-up 3/4 "hero" framing, so organic models render as smooth surfaces instead of a faceted blob, and you see the front of upright models rather than the top.

Fixed

  • G-code parsing — OrcaSlicer filament length is no longer multiplied ×1000 (a benchy could report millions of mm); bed temperature is now detected on OrcaSlicer/Bambu Studio (hot_plate_temp); infill is now detected on PrusaSlicer (fill_density).
  • Notification delivery edge cases — Telegram now uses HTML with every value escaped, so an ordinary name_with_underscore.gcode no longer fails with HTTP 400; ntfy titles with Unicode / em-dash are RFC 2047-encoded instead of breaking every send.
  • Library scans no longer OOM-killed by a dense mesh (#24) — triangle count is estimated before loading (STL/PLY/OBJ/3MF) and anything over VAULT_MESH_MAX_RENDER_TRIANGLES (2,000,000 default) is skipped; the file is still indexed and 3MF keeps its embedded preview. STL/3MF serving now streams off disk, and an interrupted scan lands in a terminal state instead of crash-looping.
  • "Open in slicer" now works on self-hosted instances (#27) — the button mints a short-lived, file-scoped download token embedded ahead of the filename so OrcaSlicer/Bambu Studio can fetch the file and detect its format. macOS bambustudioopen:// handling is retained.
  • Zip imports preserve the archive's folder structure as nested collections instead of flattening everything into one.
  • 3D viewer stands models upright — Z-up print meshes no longer lie on their side with the floor grid cutting through them.

Notes

  • Schema: two additive migrations (e6f4a2b8c1d9, f7a5b3c9d2e1) add the notification tables and a system_config.notifications_enabled flag (defaults off). No existing tables or columns are altered or dropped; migrations run automatically on startup. Notifications are off by default.
  • New configuration (all optional, with defaults): VAULT_MESH_MAX_RENDER_TRIANGLES (2,000,000) and VAULT_SLICER_DOWNLOAD_TOKEN_EXPIRE_MINUTES (15).
  • Behavioral: very dense meshes (multi-million-triangle lattice/gyroid) skip thumbnail rendering; thumbnails are re-rendered with the new look on rebuild. See the upgrade notes.

Don't miss a new PrintStash release

NewReleases is sending notifications on new releases.