printhive/lib
dlawler489 eaf1bd93d5 Let the required colours be edited on the model page
The slot list comes from the project file, which is sometimes wrong and
sometimes not what you intend to print. "Edit slots" turns it into fields:
material and colour per slot, with slots you can add or drop. Saved slots are
marked as yours and shown with a "your list" badge, and "Use the project's
list" throws the override away and re-reads the 3MF.

Edits have to outlive the background reader, which is the part that would fail
silently: the reader only picks up models with no status, and reread() now
skips 'edited' rather than nulling everything. Verified on a real model — the
edit survived a reread plus a full worker pass, and the revert restored the
project's own four slots exactly.

Input cleaning moved out of the route into lib/filaments.js so it can be
tested: a slot with no material is dropped, and a colour that isn't a proper
hex becomes "any colour of that material" rather than being rejected.

Not verified: none of this has been seen rendered — the local preview browser
has no session.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 13:15:48 +10:00
..
importers Don't retry MakerWorld's anti-bot refusal 2026-09-16 12:53:36 +10:00
ai.js Sturdier AI replies: format example, more retries, and errors that show the reply 2026-09-15 20:26:42 +10:00
aiRuns.js Name every model an AI run failed on, and let a finished run retry them 2026-09-16 14:08:08 +10:00
archives.js Browse archives, preview companion files, and view FBX/STEP/3DM/OBJ+MTL 2026-09-15 07:36:47 +10:00
archiveWorker.js Browse archives, preview companion files, and view FBX/STEP/3DM/OBJ+MTL 2026-09-15 07:36:47 +10:00
auth.js Open models in your slicer and drag files out 2026-09-15 09:15:37 +10:00
autotag.js AI tags and descriptions, search by meaning, and automatic tags 2026-09-15 11:12:58 +10:00
collectionWatch.js Let a watch download files as models arrive 2026-09-16 19:18:55 +10:00
converter.js Track the filament you have, and what each model asks for 2026-09-17 11:18:54 +10:00
db.js Stop tagging deadlocking, and retry a transaction that loses one 2026-09-16 14:56:28 +10:00
duplicates.js Add duplicate finder, trash, notes, and library search/filters 2026-09-14 23:06:09 +10:00
embeddingModel.js AI tags and descriptions, search by meaning, and automatic tags 2026-09-15 11:12:58 +10:00
embeddings.js AI tags and descriptions, search by meaning, and automatic tags 2026-09-15 11:12:58 +10:00
filaments.js Let the required colours be edited on the model page 2026-09-17 13:15:48 +10:00
fileProcessor.js Browse archives, preview companion files, and view FBX/STEP/3DM/OBJ+MTL 2026-09-15 07:36:47 +10:00
fingerprint.js Track the filament you have, and what each model asks for 2026-09-17 11:18:54 +10:00
flaresolverr.js Give downloads a deadline instead of hanging for ever 2026-09-16 17:50:48 +10:00
handoff.js Open models in your slicer and drag files out 2026-09-15 09:15:37 +10:00
licenses.js Add per-license commercial-use rules (settings + auto-register) 2026-06-23 10:20:28 +10:00
mailer.js Add email/password auth + SMTP password resets 2026-06-22 22:33:11 +10:00
python.js Stream-parse 3MF files so Bambu projects don't exhaust memory 2026-09-15 07:02:00 +10:00
store.js Let the required colours be edited on the model page 2026-09-17 13:15:48 +10:00
thumbnails.js Make thumbnails on the server in the background 2026-09-15 07:54:26 +10:00