Off Grid v0.0.84
What's Changed in v0.0.84
Features
- feat: defer conversation creation until first message is sent (9e0ea40)
- feat: add 'For You' sort — device-aware speed+quality balance (a342a7e)
- feat: add cancel and success tick to onboarding download screen (8798145)
- feat: replace trending slider with trending badge on model cards (4f5c888)
- feat: replace sort pill text with icons to save search bar space (9ac891e)
- feat: sort pill always visible, debounced search, smart model ordering (6831fdd)
- feat: add trending section and hardware-aware recommended sort (b23b917)
Bug Fixes
- fix: mmproj metadata filename, incompatible link detection, and test mocks (44757d9)
- fix: remove remaining eager conversation creation on model load; update tests (b9881b0)
- fix: remove unused createConversation import from useHomeScreen (f88b7dd)
- fix: improve vision not-supported alert with repair shortcut in chat input (e6cdf71)
- fix: reload model with mmproj when path becomes available; clear on failure (0236f8e)
- fix: run linkOrphanMmProj on app startup to recover missing mmproj links (8c147e0)
- fix: vision repair — fix mmproj naming, orphan linking, and incompatible detection (15f37d2)
- fix: prefix mmproj filename with model base name to prevent collision (bd56eee)
- fix: unify needsVisionRepair check and hide eye icon when mmproj linked (632a7e9)
- fix: auto-open model detail when navigating to ModelsTab for repair (e9480fb)
- fix: correct navigation from Chat to ModelsTab via root stack (8815fe6)
- fix: always show vision repair button for downloaded vision files; use DownloadManager for repair (84ab49f)
- fix: correct Gemma 4 E2B type to vision — ships mmproj files same as E4B (b442bc7)
- fix: show trending badge and downloaded state correctly on onboarding model screen (55e777c)
- fix: correct Qwen 3.5 0.8B type to vision — repo ships mmproj files (fc2ec39)
- fix: replace regex match with indexOf in extractChannelThinking to resolve SonarCloud hotspots (503e256)
- fix: extract Gemma 4 and Qwen thinking before stripping control tokens (8f62edc)
- fix: resolve SonarCloud hotspots — negated condition and unnecessary assertion (d52b308)
- fix: resolve TS spread errors and lint unused var in coverage tests (1499569)
- fix: remove unused setSortOption prop from TextFiltersSection (8cdc216)
- fix: extract runSearch to prevent filter chips collapsing on auto-search (b0ad76e)
- fix: resolve all lint errors — complexity, line counts, unused imports (fd7bd12)
- fix: use theme color token for trending badge instead of hardcoded hex (186cefc)
- fix: sort on left, filter on right in search row (2bbc681)
- fix: move fire icon after verified badge (last tag) (ac9f54b)
- fix: replace trending text badge with fire icon (whatshot) (04ae8ef)
- fix: use bestFitScore for trending family selection (c5bd6e6)
- fix: actually cancel background download when user cancels early (ccb8ac9)
- fix: stop progress callbacks firing after cancel in onboarding download screen (d92e243)
- fix: show trending badge on best-fit model per family only (f6ae053)
- fix: cancel always clears download UI regardless of downloadId timing (ab06bb8)
- fix: smart sort respects curated order instead of device best-fit (a6913bf)
- fix: sort recommended models by minRam and drop tiny SmolVLMs from tests (d84257d)
- fix: only show models with Q4_K_M in onboarding download screen (5cbe4c4)
- fix: select only Q4_K_M variant in onboarding download screen (9c8a2d7)
- fix: update search placeholder to clarify Hugging Face source (fb39c9e)
Performance
- perf: throttle download progress updates to max once per 500ms (15f6834)
Refactors
- refactor: reduce chatStore line count to satisfy max-lines lint rules (20737f6)
Chores
- chore: bump version to 0.0.84 [skip ci] (2786f72)
- chore: fetch tags before computing last tag in release script (60caaf4)
- chore: update Podfile.lock (c2e829b)
- chore: bump ESLint complexity limit to 20 (4d7ec64)
- chore: increase ESLint max-lines to 500 and max-lines-per-function to 350 (445af29)
- chore: update Hexagon HTP libs, patch device-info to 15.0.1, add trending selection tests (5d714e5)
- chore: put Gemma 4 first, then Qwen 3.5 in recommended models list (a6add9c)
- chore: suppress pre-existing react-hooks/exhaustive-deps warnings in changed files (2526792)
- chore: clean up recommended models list (415e697)
Tests
- test: update useChatModelActions test — no conversation created on model load (222246c)
- test: update startNewChat assertions for lazy conversation creation (179e66f)
- test: add linkOrphanMmProj to modelManager mock in HomeScreen tests (46f690d)
- test: fix stale repairMmProj test — update to startDownload API (3f26290)
- test: add coverage for uncovered handlers in ModelDownloadScreen and useTextModels (a03d421)
- test: fix misleading Qwen trending selection test name (d4e01af)
- test: update ModelsScreen tests for search-on-type behaviour (ff0d79f)
Documentation
- docs: merge persona plans, wire Audio Mode into persona voice settings (f6f0a69)
- docs: update TTS plan — Audio Mode vs Chat Mode as first-class setting (9f6ffd8)
- docs: add detailed personas implementation plan — data model, screens, skills, phases (e95f660)
- docs: add detailed TTS implementation plan (081682c)
- docs: add personas feature plan — screens, UX, data model, implementation order (8b93c46)
- docs: plan for image generation without requiring a text model (0f529bf)
- docs: add hardware acceleration performance improvement plan (8bc147e)
- docs: expand push workflow — lint/tsc/test, branch check, PR description refresh (59d24d0)
- docs: add design standards section to CLAUDE.md (736b117)
- docs: add CLAUDE.md with branch policy and project instructions (852a078)
Full Changelog: v0.0.83...v0.0.84