CraftLife v1.6.7
CraftLife v1.6.7 — "Performance & Polish" (26 Sep 2026)
An offline-first desktop RPG for real life. This release makes the app faster
to start, safer when a page crashes, and adds two requested features — Economy
Budgets and food favorites — plus a full polish sweep. Zero features removed;
existing databases upgrade in place.
✨ Highlights
⚡ Startup performance (D01)
- Per-view code splitting: 24 lazy chunks instead of one 1,614 kB bundle.
- Initial JS 1,614 → 444 kB (−72%), gzip 439 → 140 kB. Each page loads on
demand behind the familiar skeleton — navigation feels identical.
🛡️ Crash safety (D02)
- Bilingual error boundaries per view + a root safety net. A crashing page
now shows a recovery panel (Reload view / Reload app + technical details)
instead of a blank white screen. No data is ever touched.
💰 Economy Budgets (D03a)
- New Budgets tab: monthly per-category spending limits (or
*for all
spending), with live progress, remaining balance, and
On track / Almost over / Over budget states. - Budgets are included in tracker export/import.
🍱 Food favorites & recent (D03b)
- Star any food to favorite it; new All / Favorites / Recent filters above
the food grid. Recent shows your last 10 logged foods in order. - Favorites survive tracker export/import (custom and default foods).
✨ Polish sweep (D04)
- Esc closes all 47 dialogs, drawers, and popovers (one shared hook).
- Count-up animation on hero numbers (navbar gold, Economy balance),
instant under reduced-motion. - Press
?anywhere for keyboard-shortcut help (also hinted in the palette). - Structural emoji in 16 sub-headers replaced with Lucide icons.
⌨️ Palette, notifications, music & a11y (E01–E04)
- Palette: ↑↓ + Enter keyboard nav, Ctrl+1–9 quick pages, Pages/Actions
sections, empty state, one-tap complete for Habits, Dailies & Quests. - Notification bell restored: unread badge, dropdown history, per-item
and mark-all-read, Esc closes. - Music sleep timer: 15/30/60 min presets with live countdown; auto-pause.
- Tab focus trapped inside all 13 major dialogs; ARIA roles on the
palette, notifications, and dialog panels.
🍱 Catalog expansion + nutrition UX (F01–F03)
- +50 foods: Nasi Campur Bali/Jawa, Sate Maranggi/Taichan/Ponorogo,
Tongseng, Ayam Woku/Lodho/Pansuh, Mangut Lele, Ikan Arsik + more. - +50 drinks: Gayo/Toraja/Flores/Kintamani/Lanang coffees, Sanger,
STMJ, Jamu Temulawak/Jahe Merah, Saraba, Es Palu Butung + more. - Catalog 774 → 874 entries, zero duplicates; old databases receive the
new items automatically on next launch (custom foods/logs untouched). - Nutrition grid sortable by name / lowest calories / highest protein;
½×/1×/2× portion preset chips next to the portion input.
🔔 Productivity trio (G01–G03)
- Reminder snooze: postpone the selected reminder by 10 min / 1 hour /
tomorrow (repeat & sound preserved). - Pinnable notes: pin any note, pinned notes float to the top
(newpinnedcolumn, auto-added, old databases unaffected). - Friend list search: instant client-side filter by name.
🔄 Migration & compatibility
- Two additive tables (
economy_budgets,user_food_favorites) created
automatically on first launch; legacy databases keep every row. - One additive column (
notes.pinned) plus 100 catalog items, both applied
automatically on first launch; custom foods, notes, and logs untouched. - No Supabase migration (cloud optional, unaffected).
- i18n: 4,409 → 4,454 keys, identical across all 4 sources, 0 missing.
📦 Install / update
- New users: download
craftlife-1.6.7.zip, extract, runCraftLife.exe. - Existing users: the in-app updater picks up v1.6.7 automatically.
- Your
craftlife.dbupgrades itself on first launch — no action needed.