You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.