Skip to content

Commit 6fa3406

Browse files
committed
v1.10.16 — What's New screen (floating, browsable history), emoji-free UI, cloud-spool grouping fix, draggable color dialog
1 parent 50dee51 commit 6fa3406

30 files changed

Lines changed: 3873 additions & 175 deletions

‎CHANGELOG.md‎

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

66
---
77

8+
## v1.10.16 — 2026-06-22
9+
10+
### Added
11+
12+
- **"What's New" screen.** After an update, a tidy floating window shows what's new in plain language — move it around, resize it, and browse the notes of any past version from the dropdown. Reopen it anytime from **Settings → About → "What's New"**.
13+
14+
### Changed
15+
16+
- **Cleaner, emoji-free interface.** Emojis across the app are now crisp SVG icons (or removed where they were purely decorative), for a more consistent, professional look.
17+
18+
### Fixed
19+
20+
- **Grouping now includes cloud spools.** A TigerCloud spool and a TigerTag (Maker) spool of the same filament now collapse into the same group, instead of the cloud one staying on its own.
21+
- **The "Set Color & TD Value" dialog can be moved.** Drag it by its header to reposition it.
22+
23+
---
24+
825
## v1.10.15 — 2026-06-21
926

1027
### Added

‎CLAUDE.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,9 @@ Before writing the `CHANGELOG.md` entry, do one final editorial pass on WORKLOG:
9191
### At commit time (3 steps, in order)
9292

9393
1. **Synthesize `WORKLOG.md`** (Rule 3 above) → write the new `CHANGELOG.md` entry
94-
2. **Include `WORKLOG.md` in the commit** — it is part of the repo history (future sessions can read it via `git show`)
95-
3. **Reset `WORKLOG.md`** immediately after committing — replace with the blank template for the next version (bump the version number in the header):
94+
2. **Write the "What's New" entry** for the version → `data/whatsnew.json`. Run `npm run whatsnew:add -- <x.y.z> [--items N] [--date YYYY-MM-DD]` to scaffold an empty **9-locale** block, then fill each item's `icon` (emoji) + vulgarised `title`/`body` for **all 9 locales** (history is kept — never delete old versions). Verify with `npm run whatsnew:check` (must pass — no empty locale). This drives the in-app "What's New" modal shown once per version (and re-openable from Settings → About).
95+
3. **Include `WORKLOG.md` in the commit** — it is part of the repo history (future sessions can read it via `git show`)
96+
4. **Reset `WORKLOG.md`** immediately after committing — replace with the blank template for the next version (bump the version number in the header):
9697

9798
```markdown
9899
# Worklog — vX.Y.Z (in progress)
@@ -182,6 +183,7 @@ assets/db/tigertag/ — TigerTag reference data (unified in v1.7.0, se
182183
data/ — non-migrated static assets (loaded via direct fetch in renderer)
183184
container_spool/spools_filament.json
184185
rack-presets.json
186+
whatsnew.json — "What's New" modal content, keyed by version, 9 locales inline (full history, browsable via the in-modal version picker). EN baseline imported from CHANGELOG via `npm run whatsnew:import`; recent versions hand-localised. Scaffold `npm run whatsnew:add`, validate `npm run whatsnew:check` (EN mandatory; entries are EN-only or fully 9-locale)
185187
printers/ — per-brand printer model catalogs (bbl/cre/eleg/ffg/snap)
186188
assets/svg/
187189
tigertag_logo.svg tigertag_logo_contouring.svg

‎WORKLOG.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# Worklog — v1.10.15 (in progress)
1+
# Worklog — v1.10.16 (in progress)
22

33
## Added
4-
- **Group identical spools (Table) — view-only.** Identical spools now collapse into one expandable ×N entry in the inventory **Table** (folder/sub-folder metaphor). Grouping is purely a render-time construct — no Firestore change, `state.rows` untouched, physical-spool stats unchanged. Key: cloud → never grouped; TigerTag+ → same `id_product` (purely — `0`/max unset falls through to the attribute key; divergent ids on chips sharing an id_product are corrected by "Refresh from API", not the grouping key); Maker (id_tigertag = max sentinel) → brand + material + exact hex + aspect (finish); other non-plus → brand + material + exact hex. An always-visible **switch** in the inventory toolbar (icon-only + hover bubble, no text) flips it — state persisted in `localStorage` (`tigertag.inv.group`, default ON) **and synced to Firestore** `users/{uid}/prefs/app.groupInv` (cross-device, mirrors the lang pref). Groups are collapsed by default; clicking a header expands its members (indented rows, each still clickable → detail panel). Search/filter auto-expands matching members and keeps a group only if ≥1 member matches. Keyed-diff + surgical weight patch preserved (members keep `data-id=spoolId`). `renderer/inventory.js`, `renderer/inventory.html`, `css/70-detail-misc.css` *(Grid + group panel = Phase 2, not yet done)*
5-
- **App-update notification.** When an update is available (downloading) or **ready**, the notification bell now shows a notice — the "ready" one has a **Restart** button (→ `installUpdate()`). Implemented as a per-install **local** notification (`state.localNotifications`, NOT Firestore; survives account switches), wired from the existing `onUpdateStatus` events and counted in the bell's unread badge. `renderer/inventory.js`, `css/20-friends.css`
4+
- **"What's New" — floating window (draggable + resizable).** The explainer is now a browser-like floating window: drag it by the title bar, resize from the bottom-right grip, and it remembers its size/position (`localStorage tigertag.whatsnew.win`). Restyled — title bar with an accent badge + a version picker pill, a per-version release-note heading ("Tiger Studio Manager X Public Release Note", localised, updates with the picker), items with icons in soft colour chips, sticky footer. `renderer/inventory.html`, `renderer/inventory.js` (`_initWhatsNewWindow`, `_placeWhatsNewWin`), `css/60-modals.css`
5+
- **"What's New" modal (per-version changelog explainer).** After an update, a dedicated window surfaces the new features in vulgarised language, shown **once per version** (compares the running `appVersion` to `localStorage tigertag.whatsnew.seen`). **"Got it"** marks the version seen; **"Later"** / ✕ / backdrop leave it unseen so it returns next launch. Re-openable any time from **Settings → About → "What's New"**. Content lives in `data/whatsnew.json` (keyed by version, **9 locales inline**, full history kept); auto-trigger is skipped while a blocking modal (login / display-name) is open. **Browsable history**: a version picker in the modal lets the user read any past release's notes (newest-first). The full back-catalogue (71 versions) was imported from `CHANGELOG.md` as an **English baseline** (the UI falls back to EN when a locale is missing); v1.10.13–1.10.15 are hand-localised to 9 locales. Release tooling: `npm run whatsnew:add -- <ver>` scaffolds an empty 9-locale entry, `npm run whatsnew:import` backfills all CHANGELOG versions (EN, never overwrites existing localised ones), `npm run whatsnew:check` verifies completeness (EN mandatory; an entry is either EN-only or fully 9-locale — no half-translated states). `scripts/whatsnew-import-changelog.mjs` `renderer/inventory.html`, `renderer/inventory.js`, `css/60-modals.css`, `data/whatsnew.json`, `scripts/whatsnew-add.mjs`, `scripts/whatsnew-check.mjs`
66

77
## Changed
8-
- **"Refresh from API" now re-syncs the full catalogue identity.** In addition to name/sku/barcode/series/image/colour-list/links/flags, it now also rewrites **brand (`id_brand`), material (`id_material`), aspect1/2 (`id_aspect1/2`), print temperatures (nozzle/bed/dryer → `data2..data7`) and the colour RGBA (`color_r/g/b/a`)** from the TigerTag+ product. The API returns string labels so a reverse lookup (`_dbIdByLabel`) resolves them back to local TigerTag DB ids. This corrects chips whose ids drifted from the catalogue (the root cause of two spools sharing one `id_product` but showing different brand/material). When a chip-stored field actually changes, the spool is flagged `needUpdateAt` (chip-pending badge) so the user knows to re-burn the physical tag — only when a value really differs, never for already-in-sync chips, never for Cloud. `renderer/inventory.js` (`_refreshApiData`, `_dbIdByLabel`, `_hexToRgba`)
9-
- **Fill bar coloured by % remaining (iso with Flutter mobile).** The filament-available bar now changes colour by remaining percentage — `<20%` red `#F44336`, `<50%` orange `#FF9800`, `≥50%` green `#4CAF50` (Material palette, matching the mobile app). Applied everywhere: Table rows, group header (aggregate), Grid cards, and the detail-panel weight bar (static + live slider drag + snapshot patch). `renderer/inventory.js` (`fillBarColor`)
8+
- **No more emojis in the UI — replaced by SVG icons or plain text.** Swept the renderer free of true emojis: the "What's New" item icons are SVG icon-set names (not emojis); locale strings (`welcomeBack`, `mobileApp`, `badgeRecycled`, `setupNameSave`, `tutoOpenBtn`, `tigerPodCta`) had their emojis stripped across all 9 locales; `inventory.html` greeting/label/option fallbacks + language-picker flags removed (flags can't be SVG inside native `<option>` → kept the language name); copy button (📋→`icon-copy`) and display-name hero (👋→`icon-user`); printer modules — Bambu humidity (💧→`icon-droplets`), Creality time-left (⏳→`SNAP_ICON_CLOCK`), TigerScale status badges (emoji→text, colour conveys state); plus emoji in comments/CSS. Monochrome functional glyphs (✕ ✓ ▲ ▼ arrows, box-drawing) intentionally left. `renderer/**` (locales, inventory.html, inventory.js, css/70-detail-misc.css, printers/*, IoT/tigerscale)
109

1110
## Fixed
11+
- **"Set Color & TD Value" modal is now draggable.** Drag it by its header (clamped to the viewport, re-centered on each open). Added a reusable `_makeDraggableModal(overlayId, cardSel, handleSel)` helper. Blur removed behind it + the "TD1S Sensor" and "What's New" overlays (dim only). `renderer/inventory.js`, `css/60-modals.css`
12+
- **Spool grouping: TigerCloud now groups with TigerTag (Maker).** Cloud entries were never grouped (key returned `null`). They're now treated exactly like Maker chips — both use the attribute key `diy:brand|material|colorHex|aspect1` — so a Cloud spool and a Maker spool of the same filament collapse into one group. Only TigerTag+ still groups by `id_product`. `renderer/inventory.js` (`_spoolGroupKey`)
1213

1314
## Removed
1415

1516
## i18n
16-
- Added: `notifUpdateAvailable`, `notifUpdateReady` — 9 locales
17-
- Added: `invGroupToggle`, `invGroupCount`, `invGroupOn`, `invGroupOff` — 9 locales
17+
- Added: `whatsNewTitle`, `whatsNewReleaseTitle`, `whatsNewGotIt`, `whatsNewLater`, `whatsNewEmpty` — 9 locales

0 commit comments

Comments
 (0)