Skip to content

Commit 691a27b

Browse files
committed
v2.30.0 — Creator 5 official Cloud + LAN firmware in the app, spool photos framed in their colour
1 parent e1fef1e commit 691a27b

24 files changed

Lines changed: 516 additions & 185 deletions

‎CHANGELOG.md‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,35 @@ Versions follow [Semantic Versioning](https://semver.org/).
55

66
---
77

8+
## v2.30.0 — 2026-09-28
9+
10+
### Added
11+
12+
- **FlashForge Creator 5 / 5 Pro — the official "Cloud + LAN" firmware, surfaced in the app.** FlashForge built it with TigerTag; it is distributed from the new public repo `TigerTag-Project/FlashForge-TigerTag-Creator5-Firmware-Lan-and-Cloud` (one GitHub Release per version, assets `Creator5-<v>.tgz` + `Creator5Pro-<v>.tgz`, installed over USB). Resolver `renderer/printers/flashforge/creator5-fw.js`: GitHub `releases/latest`, 24 h cache + ETag, build-time fallback, per-model asset pick, `X.Y.Z-A.B.C` version compare. On a Creator 5 the printer's Info window gains a firmware block (up to date / update available, "Download <version>" for THAT model, "How to install" → the repo's USB walkthrough, and a warning not to use the printer's own OTA update); a local notification (same later / ✕ contract as the Paxx one) fires when a connected Creator 5 runs an older version — `renderer/printers/flashforge/{creator5-fw.js,index.js}`, `renderer/inventory.js`, `renderer/css/50-snapmaker.css`.
13+
- **Grid cards: long names scroll on hover.** A name wider than its card starts scrolling the moment the card is hovered (out to its end, pause, back, loop — `cardNameMarquee`, driven by `--mq-dist` / `--mq-dur`), ellipsised again on leave; honours `prefers-reduced-motion` — `renderer/inventory.js`, `renderer/css/70-detail-misc.css`.
14+
- **Anycubic cloud printers carry the cloud-MQTT TLS identity (for TigerSpool).** Cloud docs (`users/{uid}/printers/anycubic/devices/cloud_<id>`) now also store `acuCloudCaDerB64`, `acuCloudClientCertPem`, `acuCloudClientKeyPem`, so a TigerSpool can dial `mqtt-universe.anycubic.com:8883` itself. Served by a new `anycubic:cloud-certs` IPC (`services/anycubicCloudCerts.js`); written on add, on every token refresh, and as a per-doc catch-up on each printers snapshot for older cloud docs. Never written to LAN docs, never logged — `main.js`, `preload.js`, `renderer/inventory.js`, `docs/anycubic-send-to-printer.md`.
15+
16+
### Changed
17+
18+
- **Spool photos framed in the spool's colour, everywhere.** Grid cards, product card, spool detail card, grouped spools, inventory / favorites lists, wishlist rows, the catalogue list and the product-info (reorder) header: the photo is inset (transparent border + `background-clip`, or `padding: 7%` on the wrap) over `--spool-bg: colorBg(row)`, so the colour shows round it with rounded photo corners — `renderer/inventory.js`, `renderer/css/70-detail-misc.css`.
19+
- **Material swatch convention v1.1: bicolor on the 135° diagonal.** Any two hard-edged colours now render `linear-gradient(135deg, c1 50%, c2 50%)` (first colour top-left) instead of a vertical split; 3+ colours stay a conic camembert. Amended first in TigerSystem-Docs (`material-swatch.md`, reference renderer, French translation); one change in `_pieSplit`, so every surface follows — `renderer/inventory.js`, `playground/material-swatch/index.html`, `docs/MATERIAL-SWATCH.md`.
20+
- **Colour dots removed where the frame now says it**: grid card names, grouped-spools names, the product-info header, and the big circle of the spool detail / product cards. The section is titled "Aspect" (was "Colour(s) & Aspect"); on a TigerData spool the colour editor the circle used to open is a "Change colour" chip (`aspect-chip--action`) beside the aspect chips. Table colour columns unchanged — `renderer/inventory.js`, `renderer/css/70-detail-misc.css`.
21+
- **Photos held back while results move.** `body.photos-held` (`visibility: hidden`, images keep loading) during a drag of the colour-filter window, and for 1 s after the last wheel notch on it or the last scroll of a results list (each restarts the timer — `_photoHold`, capture `scroll` listener) — `renderer/inventory.js`, `renderer/css/70-detail-misc.css`.
22+
- **Product card: one identity block** — brand · material, the name, then one chip row with aspects 1-2, info1-3 (refill / recycled / filled) and the capacity weight. The separate Aspect and Weight sections, the always-full fill bar, its scale and "1 kg total" are gone — `renderer/inventory.js`.
23+
- Spool detail card: the master-spool (container) section sits above the weight section — it sets the tare the weight is read against — `renderer/inventory.js`.
24+
- Master spool: the "change master spool" / "edit its weight" buttons on the spool card and the weight pencil in the container picker are always visible in grey, brightening on hover — `renderer/css/70-detail-misc.css`.
25+
- FlashForge add form (#29): the "Password" field is labelled **Printer ID** (the printer's own wording); hints point at "Basic Info" / gear → "Network Mode"; field key stays `password` — `renderer/printers/flashforge/settings.js`.
26+
- LAN scan: the multi-add button reads just "Add" (`printerScanAdd`, was `printerScanAddSelected` with a plural) — `renderer/printers/scan-pick.js`.
27+
- Snapmaker Paxx firmware: offline fallback bumped to `v1.6.0-paxx12-22` (#21) — `renderer/printers/snapmaker/paxx.js`.
28+
29+
### Fixed
30+
31+
- Grid cards and catalogue list: the inset photo stays invisible until loaded (`.img-loaded`, no fade so a cached rebuild doesn't blink) — its empty rounded, shadowed box showed as a ghost square — `renderer/inventory.js`, `renderer/css/70-detail-misc.css`.
32+
- Spool detail card: the ✓ of the image-URL bar now saves AND closes it (`closeCustomImgForm()`); it stayed open when the URL was unchanged — `renderer/inventory.js`.
33+
- Spool detail card: a rebuild (master-spool change or any edit) keeps the scroll position (`_rebuildDetailKeepVideo` → `preserveScroll: true`) instead of jumping to the top — `renderer/inventory.js`.
34+
35+
---
36+
837
## v2.29.0 — 2026-09-23
938

1039
### Added

‎FEATURES.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Tiger Studio Manager — Feature Catalogue
22

3-
Tiger Studio Manager is the Electron desktop companion to the TigerTag ecosystem: a filament-inventory manager built around RFID/NFC-tagged spools ("TigerTag" chips), a fully-digital "TigerData" tier (and its catalogue-identified "TigerData+" rung), live 3D-printer integration across six brands, physical storage/rack management, a Firebase-backed social layer (friends, shareable wishlists, public profiles), and companion hardware (TD1S color sensor, TigerScale, TigerPOD dual-reader stand). This document catalogues every **shipped** feature, grouped by domain, current as of **v2.29.0**. Per-version release detail lives in `CHANGELOG.md`; forward-looking / in-progress work lives in `ROADMAP.md`.
3+
Tiger Studio Manager is the Electron desktop companion to the TigerTag ecosystem: a filament-inventory manager built around RFID/NFC-tagged spools ("TigerTag" chips), a fully-digital "TigerData" tier (and its catalogue-identified "TigerData+" rung), live 3D-printer integration across six brands, physical storage/rack management, a Firebase-backed social layer (friends, shareable wishlists, public profiles), and companion hardware (TD1S color sensor, TigerScale, TigerPOD dual-reader stand). This document catalogues every **shipped** feature, grouped by domain, current as of **v2.30.0**. Per-version release detail lives in `CHANGELOG.md`; forward-looking / in-progress work lives in `ROADMAP.md`.
44

55
---
66

@@ -36,6 +36,9 @@ Tiger Studio Manager is the Electron desktop companion to the TigerTag ecosystem
3636
- **Self-maintaining catalogue data** — spools tied to a catalogue product reconcile themselves as the catalogue evolves: a `catalogSyncedAt` stamp is compared against the product's own `updated_at` after each sync and only the ones that actually moved are refreshed, in the background and never in a friend's inventory. A TigerData+ updates in complete silence; a TigerTag+ is asked for a chip re-write **only** when the change touched a field the chip physically carries (`TTAG_ON_CHIP_FIELDS`, kept in lockstep with `docs/TTAG-FIELDS.md` by `npm run docs:check`) (v2.16.0).
3737
- **Chip history & backup** — private list of every physical chip ever programmed, with the repairable TigerTag+ signature backed up on first read; a green "Backed up" shield badge marks protected spools (v1.10.28, badge v1.10.29). Product ID shown as a clickable catalogue link (v1.10.29).
3838
- Grouping of identical spools — table view first (v1.10.15), then grid view + a dedicated group side panel with a live speedometer gauge of combined remaining weight (v1.10.18); grouping includes TigerData spools (v1.10.16) and distinguishes different colours/aspects within the same brand+material (v1.10.31).
39+
- **Colour-framed spool photos** — every spool photo (grid, lists, wishlist, catalogue, detail and product cards) sits in a frame of the spool's own colour, replacing the separate colour dots; bicolor spools split on the 135° diagonal (v2.30.0).
40+
- Grid cards: a name too long for its card scrolls into view on hover (v2.30.0).
41+
- Photos are held back while results scroll or the colour filter moves, and appear already loaded (v2.30.0).
3942
- Multi-select mode (grid + table) — tick spools or printers and delete together with a hold-to-confirm, header master checkbox to select all visible (v2.0.0; header checkbox v2.1.0).
4043
- Bulk **Tags** editing across a selection (v2.1.0), bulk **Price** editing (v2.2.0, spools v2.2.0 too), bulk ★ Favorite / ❤ Love toggles (v2.3.0), multi-select inside a friend's inventory scoped to ★/❤ only (v2.3.0).
4144
- **Tags** — free-form spool labels with autocomplete, an "All tags" filter, and search-bar integration; twin-mirrored (v1.10.28; type-to-filter/create-on-the-fly rework v1.10.31).
@@ -189,6 +192,7 @@ Live integrations across six brands, each with real-time temperatures, per-slot
189192
- Printer tags, with the same autocomplete UX as spool tags, plus a search bar and Brand/State/Tags filters in the Printers view (v2.0.0).
190193
- Printer error alerts surfacing the machine's own message and code (Anycubic first) (v1.10.4).
191194
- Snapmaker Paxx-firmware helper — always-current download link, up-to-date indicator, per-printer update notification (v1.10.29).
195+
- FlashForge Creator 5 / 5 Pro official "Cloud + LAN" firmware helper — up-to-date indicator in the printer's Info window, per-model download of the latest release, USB install guide, and an update notification when a connected Creator 5 runs an older version (v2.30.0).
192196
- **Printer board** — the Printers view is a hand-arranged plan like Storage: machines placed on a permanent grid with magnetism and guides, wheel zoom from 30 %, middle-drag panning, position saved per account. Replaces the Connected/Offline partition, so a machine never changes place when its link drops (v2.22.0).
193197
- **Filament storage as units on the board** — one named block per physical unit (Ext., AMS 1, AMS 2, CFS, ACE, holder pair), shown from the record at startup and dimmed until the link comes up, kept grouped beside the machine or split into individually placeable objects. Slots are drawn at a rack slot's exact size and scale, with four states (unknown, assigned-not-loaded, colour-only, loaded) and hover naming bay, brand and variant (v2.22.0).
194198
- **Units stored on the machine** — a `units` map on the device document, one entry per physical unit carrying its shape, user-renamable label, a position on each board, and its slots (user assignments plus the machine's last report, stamped with `seenAt`). A unit that stops being reported is marked absent rather than deleted (v2.22.0).

‎README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ The **TigerTag SDK** is the low-level library that handles all NFC chip operatio
118118
- **The catalogue travels with the app** *(new in 2.16.0)* — nearly 5 000 filaments ship inside the installer, so search works on the very first launch, offline, without waiting for a download. It still refreshes itself in the background
119119
- **Find a filament by its barcode** *(new in 2.17.0)* — scan the EAN on the box with a barcode reader, or type it in, and the catalogue opens that product. The search also covers the reference, the series, the colour name, the finish, the product type and the weight
120120
- **Spools that keep themselves current** *(new in 2.16.0)* — when a brand corrects a temperature, a diameter or a colour name, the spools you own follow along on their own. Only a TigerTag+ can ever ask you for anything, and only when the change concerns something written on the chip itself
121+
- **Photos framed in the spool's colour** *(new in 2.30.0)* — every spool photo sits in a frame of its own colour, in the grid, the lists, the catalogue and the details, so you spot the red one at a glance
121122
- Custom product image for DIY & Cloud spools
122123
- Manufacturing date, twin-tag detection and manual repair
123124
- Spool toolbox — scan color (TD1S), scan TD, link twin, remove from rack, delete
@@ -141,7 +142,7 @@ Every brand at a glance:
141142
| **FlashForge** | HTTP polling 8898 + matlStation | ✅ Live |
142143
| **Snapmaker** | Moonraker WebSocket 7125 | ✅ Live |
143144

144-
Each brand supports: filament edit per slot, printer discovery (mDNS + port-scan + Add by IP), camera widget. When a scan finds several machines, **tick the ones you want and add them all in one go**.
145+
Each brand supports: filament edit per slot, printer discovery (mDNS + port-scan + Add by IP), camera widget. When a scan finds several machines, **tick the ones you want and add them all in one go**. A **FlashForge Creator 5 / 5 Pro** tells you whether it runs the official Cloud + LAN firmware and hands you the latest version for your model *(new in 2.30.0)*.
145146

146147
The **printers table** shows, per printer: a live **print preview** (the model on the bed), the current job, and an **"Ends at"** column with the wall-clock finish time — plus per-printer **tags** and a search bar with **Brand / State / Tags** filters to manage a whole fleet.
147148

0 commit comments

Comments
 (0)