← Blog

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.

release

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.