PrintStash v0.7.1: folder uploads and tighter memory limits
PrintStash v0.7.1 added whole-folder upload, cgroup-aware mesh limits, serialized and chunked rendering, and a correct all-models count.
PrintStash v0.7.1 added bulk folder upload and completed the large-mesh memory work started in v0.7.0. An oversized or unusual file could now skip its preview while the API and the rest of the import kept running.
Upload a folder without flattening it
The upload dialog accepted several files or a complete folder. Relative paths became nested collections, preserving useful organization from the source tree.
This applied to browser folder uploads and complemented the folder preservation already added for ZIP archives.
Derive preview limits from available RAM
The fixed triangle cap gained a memory-aware partner. PrintStash detected memory available to the process, including Docker cgroup limits, and estimated whether a full load and render would fit.
Files above the effective budget stayed indexed while their generated preview was skipped. Large 3MF files could keep an embedded image without parsing the expensive mesh XML.
VAULT_MESH_MAX_LOAD_MB, defaulting to 200 MB, added a format-independent backstop for files whose triangle count could not be estimated safely.
Bound memory during a render
VAULT_MAX_RENDER_JOBS defaulted to one and divided the available budget when increased. VAULT_MESH_RENDER_FACE_CHUNK_SIZE, defaulting to 200,000 faces, limited temporary rasterizer arrays. Float32 rendering reduced their footprint, and freed allocator arenas were returned to the operating system between files where supported.
The release added these optional settings:
| Setting | Default |
|---|---|
VAULT_MESH_MAX_LOAD_MB |
200 |
VAULT_MESH_MEMORY_BUDGET_FRACTION |
0.5 |
VAULT_MAX_RENDER_JOBS |
1 |
VAULT_MESH_RENDER_FACE_CHUNK_SIZE |
200000 |
VAULT_USE_EMBEDDED_3MF_PREVIEW_FOR_LARGE_FILES |
true |
No schema migration was required.
Correct library totals
The All Models count previously included only models at the collection root. A library organized entirely into nested folders could therefore show zero. v0.7.1 counted every model visible to the current account.
The current configuration reference explains the limits. #26, #29, and #30 contain the original reports.