← Blog

PrintStash v0.8.0: Spoolman and collection documents

PrintStash v0.8.0 connected print history to Spoolman inventory, added one-way filament sync and measured write-back, and introduced collection documents.

release

PrintStash v0.8.0 added two substantial features: an optional Spoolman connection for filament inventory and collection documents for keeping instructions beside the models that use them.

The release also improved small-screen navigation and fixed several permission, upload, and library edge cases.

Connect Spoolman without duplicating its inventory

The integration was off by default and configured under Settings -> Spoolman. It accepted a server URL and an optional proxy API key, with Test and status actions that used the values currently in the form.

Spoolman remained the source of truth. PrintStash displayed live spool inventory and imported filaments as read-only presets with material, brand, density, diameter, and price per kilogram.

The sync ran from Spoolman to PrintStash. Matching local presets could be adopted during the first run instead of duplicated. Removing a filament from Spoolman unlinked the local preset and made it editable rather than deleting it.

Attach a spool to the print record

A spool could be selected while sending a job or logging one manually. The print history kept the spool ID and name.

For a synced spool, estimated weight and cost used the filament’s actual density, diameter, and price rather than a generic material table.

After a Moonraker-measured job completed, PrintStash could subtract the reported grams through Spoolman’s use endpoint. The write happened once after the job record was committed, so a Spoolman failure did not block the print path. Bambu LAN had no measured-consumption value and was skipped.

Moonraker can already manage an active Spoolman spool. To prevent two decrements, PrintStash checked for that active spool before writing and skipped its own update when Moonraker appeared to own the integration. An explicit force option covered setups where Moonraker’s write hook was disabled.

The current Spoolman guide includes Docker networking and a short verification print.

Add documents and a README to a collection

Collections gained a README plus attached documents. Markdown could be written in an editor with live preview and pasted or dropped images. Other files, including PDFs, could be uploaded.

PDFs opened in a themed pdf.js viewer with page navigation, zoom, and fit-to-width. Read, edit, and administration followed the collection’s existing role permissions.

New Markdown documents were not created until their first save, avoiding empty records when the editor was closed immediately.

Better mobile navigation

The bottom navigation became a fixed five-slot bar with four destinations and a More sheet. Account information and logout moved into that sheet, while search became available on small screens.

The library header stacked its title and actions at narrow widths, with tighter spacing for model and folder cards.

Fixes worth knowing

  • The internal placeholder model for external jobs stopped appearing in All Models.
  • Batch tag and move actions no longer created taxonomy when every selected model failed permission checks.
  • Drag-and-drop highlights stopped flickering across child elements, and unreadable folders returned an error.
  • Dark-theme catalogue dividers used theme-aware colors.
  • Logo and Back navigation preserved the Documents tab when that was the previous location.
  • Spoolman Save and Test actions reported specific success and connection errors.

The release used several additive migrations for Spoolman configuration, linked filament profiles, job spool fields, documents, and collection README content. It also added react-pdf and pdfjs-dist as lazily loaded frontend dependencies.