Releases: Lemniscate-world/LifeTrack
Releases · Lemniscate-world/LifeTrack
Release list
v0.2.1 — Audit fix release
LifeTrack v0.2.1
A pre-release audit found 9 latent bugs in the persistence and rendering layers. All fixed.
Fixed
HIGH severity
store.flushSaverace condition — A pending write could be silently dropped if a save was already in flight. Replaced with apendingDataslot that runs after the current save completes.- Undo/redo could recreate check-ins for deleted habits — Restoring an old snapshot after a habit was deleted could resurrect dangling check-ins. Now guarded by
data.habits.some(...)in bothundoandredo. - Import with duplicate IDs could attach data to the wrong habit — Re-importing a backup containing duplicate habit IDs silently routed check-ins/notes to a random habit. Fixed with a
seenImportIdsSet that warns and keeps the first-seen mapping. autoRestoreCheckedcould permanently disable auto-restore — The flag was a module-levellet; React StrictMode's double-mount in dev would set it totrueon the first mount, then the second mount would see "already checked" and skip restore. Moved touseRefinside theAppcomponent.
MEDIUM severity
- Safety net missed note-only changes — The 100-entry autosave recovery trigger only counted check-ins. Saving a habit note alone would not trigger a safety net. Now includes
notes.length > 0in the condition. computeChaosReportrecomputed on every render — The chaos view scans every habit's check-ins, which gets expensive past a few hundred. Wrapped inuseMemo([tick])so it only runs when the UI forces a refresh.trackingStartaccepted malformed dates — A string like2026-02-30was silently normalized to2026-03-02by the JS Date constructor. Now validated with regex + round-trip check.
LOW severity
- Silent backup failure — Backup write errors were swallowed. Now logged via
console.warn.
Verified
- 231 tests passing (was 223, +8 regression tests in
audit-fixes.test.ts) - TypeScript: 0 errors
- ESLint: 0 errors, 0 warnings
npm run packageproduces 2.91 MB MSI and 1.94 MB NSIS installer
Installers
LifeTrack_0.2.1_x64_en-US.msi(Windows Installer, 2.91 MB)LifeTrack_0.2.1_x64-setup.exe(NSIS, 1.94 MB)
Both signed locally; SHA-256 published in the GitHub Release.
What's still in v0.2.0 (unchanged in this patch)
- Habit stacking with cycle detection (Phase 6)
- New Stacks view with progress bars and "Up next" suggestion
- Inline
stackParentpicker per habit
Full diff: v0.2.0...v0.2.1
v0.2.0-kuro - Polished and Production-Ready
What's New
UI Polish
- Simple black/white checkmarks (no more eye-straining pastel fills)
- Keyboard focus indicator hidden until keyboard is actually used
- Saved Xs ago indicator with click-to-save-now
Storage Hardening
- Debounce reduced from 300ms to 100ms
- Periodic auto-save every 15 seconds
- beforeunload handler prevents data loss on close
- Concurrent write guard
- Last-saved timestamp tracking
Auto-Backup
- JSON backup saved to AppData/LifeTrack/backups every 30 minutes
- Keeps last 10 backups, auto-cleans older ones
- Silent, no user action needed
CI/CD
- GitHub Actions CI is green (test + lint on every push)
- Windows build triggers on tags
Assets
- lifetrack.exe (portable)
- LifeTrack .msi installer
- LifeTrack NSIS installer
v0.1.1-kuro — Elegant Themes & Tooling
What's New
8 Elegant Themes
- Default (Purple), Ocean (Deep Blue), Forest (Natural Green), Sunset (Warm Amber)
- Rose (Soft Pink), Mono (Grayscale), Midnight (Deep Indigo), Emerald (Teal-Green)
- Each theme has refined light + dark palettes with smooth transitions
Tooling
- Pre-commit hooks (blocks protected files: PLAN.md, SESSION_SUMMARY.md, .env)
- CONTRIBUTING.md with architecture overview and conventions
- Issue templates (bug report, feature request)
- Dependabot (npm + cargo + GitHub Actions)
- bump-version.ps1 for synchronized version bumps
- Coverage script (npm run coverage)
Assets
- lifetrack.exe (portable)
- LifeTrack .msi installer
- LifeTrack NSIS installer
v0.1.0-kuro — First Desktop Release
Changelog
All notable changes to LifeTrack are documented in this file.
[0.1.0] — 2026-06-23
Added
- Monthly habit grid (1-30 days) with pastel-colored check cells
- Habit CRUD (add, rename, archive, delete)
- Configurable goals per habit (click to edit)
- Dark mode with persistent preference
- 6 color themes (Default, Ocean, Forest, Sunset, Rose, Mono)
- Statistics view (current streak, best streak, completion rates 7d/30d/90d/365d, weighted score)
- Notes panel (add/delete, saved per session)
- Data export (CSV, JSON)
- Keyboard shortcuts (Space to toggle, arrows to navigate, Ctrl+Z/Y undo/redo, Ctrl+N new habit)
- Empty state UX when no habits exist
- Error boundary for crash recovery
- Brand logo (SVG) + app icon (ICO, PNG, ICNS)
- Tauri v2 desktop packaging (native Windows .exe, .msi, .nsis)
Storage
- localStorage with checksum integrity (FNV-1a hash)
- Primary + backup key automatic recovery
- Debounced writes (300ms) with beforeunload flush
- Periodic save every 30 seconds
- Malformed entry filtering on load
- Storage health indicator in UI (green/yellow/red dot)
Technical
- React 19 + TypeScript + Vite 8
- Tauri v2 (Rust 1.93 + Windows WebView2)
- 38 tests (Vitest + React Testing Library)
- 0 npm vulnerabilities
- MIT License