Skip to content

Releases: off-grid-ai/mobile

Off Grid v0.0.96

09 Jun 06:52

Choose a tag to compare

What's Changed in v0.0.96

Bug Fixes

  • fix(android): guard null job in whisper realtime finish to prevent SIGSEGV (bb37d8d)
  • fix(android): fix double-close race in LiteRT conversation teardown (c747d79)
  • fix(android): reduce LiteRT native crashes (74902d2)

Chores

  • chore: bump version to 0.0.96 [skip ci] (bf69688)

Other

  • improve pixel 10 warning ui bring in one line with i button and change colour to yellow (2698cbc)
  • reduce number of lines (6745ea1)
  • show ui msg gpu is not supported on pixel 10 (4478a9c)
  • Update GitHub Sponsors username in FUNDING.yml (ca37944)

Full Changelog: v0.0.95...v0.0.96

Off Grid v0.0.95

04 Jun 05:37

Choose a tag to compare

What's Changed in v0.0.95

Features

  • feat(tools): on-device HTML parsing for read_url, improve tool prompts (3009df8)
  • feat(perf): enable React 19 compiler (64ae219)
  • feat(tools): warn when more than 3 tools are enabled (4f0cfbd)
  • feat(litert): memory-warning alert on E4B + show LiteRT label chip (8a52466)
  • feat(litert): curated registry, integrity-by-commit-hash, vision flag fix (1021fad)
  • feat(litert): add recommended models card on the models list (8d72df9)
  • feat(litert): wire discriminated union across UI and services (41b541e)
  • feat(litert): add per-engine settings and fix migration deep merge (8a88f65)
  • feat(ui): split text settings UI by engine (Change 4) (867d6b3)
  • feat(settings): per-engine settings for LiteRT (Change 2) (2a485b4)
  • feat(types): discriminated union for DownloadedModel (Change 1) (26add6a)
  • feat(litert): add getActiveEngineService helper (dbafafa)
  • feat(litert): wire liteRTBackend to loader, pending-reload check, and settings UI (6b55efb)
  • feat(litert): add liteRTBackend setting defaulting to gpu (b0c7d96)
  • feat(litert): lower auto-compact threshold to 65% and seed token counter from history (8e9605a)
  • feat(litert): add RAM-based context slider limits for LiteRT models (4d5ef28)
  • feat(litert): filter settings UI per engine and add selectIsLiteRT store selector (491746e)
  • feat(litert): pass maxNumTokens to engine, scale init timeout by context size, and wire tool call event bridge (7fa4f29)
  • feat(litert): replace SDK benchmark with wall-clock stats and add GPU/NPU warmup (ed23438)
  • feat(litert): expose full BenchmarkInfo - prefill speed, TTFT, decode tps, init time in generation details (6265011)
  • feat(ui): DeviceStatsChip, hide irrelevant LiteRT settings, backend reload trigger, iOS guard (85f887d)
  • feat(litert): add LiteRT-LM as second on-device inference engine (4db1119)

Bug Fixes

  • fix(downloads): use fresh store snapshot in watchDownload completion callback (5d321dc)
  • fix(downloads): align ModelCard retry with DownloadManager and fix listener split (8fde82b)
  • fix(lint): remove unused colors variable and extract inline styles to StyleSheet (b60f24f)
  • fix(models): show failed download state inline in model card with resume retry (69d17d2)
  • fix(litert): cap native tool calls at 3 per response (73f85ff)
  • fix(tools): fix amber dot position on settings gear icon (019a6ae)
  • fix(settings): default thinking to off and remove excessive comments Co-Authored-By: Dishit Karia hanmadishit74@gmail.com (850dff1)
  • fix(ios): hide LiteRT recommended card on iOS (aacc410)
  • fix(tools): move showSettingsDot computation to parent to avoid store dependency in ChatInput (a0dfa4d)
  • fix(lint): fix lint errors in tool warning UI components (67adafd)
  • fix(remote): stop sending max_tokens/num_predict to remote servers (890cd2f)
  • fix(litert): handle missing stopGeneration in summarizeSession timeout (939f805)
  • fix(litert): fix context overflow, compaction race condition, and TTFT (92a4065)
  • fix(litert): fix TTFT display and resolve lint errors (4c933ea)
  • fix(litert): fix compaction death-spiral and unreliable summarisation (7f13167)
  • fix(sonar): resolve final negated condition warnings and security hotspot (f0b0546)
  • fix(tsc): type history array explicitly to restore Turn role inference (2019e44)
  • fix(sonar): resolve second round of SonarCloud warnings and CC failure (a57d9f8)
  • fix(tests): cast mock.calls tuple to any[] to satisfy strict tsc (9075a99)
  • fix(lint): remove debug logs from assertLiteRTImageSupport to satisfy max-params (3b3cac9)
  • fix(sonar): resolve SonarCloud quality gate failures and code style warnings (15be9c1)
  • fix(android): patch react-native-gesture-handler@2.30.0 to compile with Kotlin 2.2.0 (358e4db)
  • fix(litert): respect liteRTVision flag for supportsVision state (e58c4dc)
  • fix(litert): extract liteRTCompaction helpers into standalone module (adec2ca)
  • fix(generation): correct LiteRT TTFT unit and add fallback token count (c5016b1)
  • fix(litert): reset native conversation state after stopGeneration (e87cf9b)
  • fix(litert): fix stop+regenerate session crash and improve debug logging (8a87980)
  • fix(litert): detect native module by existence, not Platform.OS (ff2a4e0)
  • fix(litert): add display branch debug logs to getDisplayMessages (8934c29)
  • fix(tools): update web_search and read_url descriptions for chained use (98b7ab8)
  • fix(litert): enable thinking toggle and deduplicate tool text hint (4921b41)
  • fix(litert): stream thinking tokens incrementally instead of all at once (a33f67e)
  • fix(litert): pass image URI through tool loop and generation pipeline (c57a29c)
  • fix(litert): fix engine variable scoping in initializeWithFallback (2da411a)
  • fix(litert): fix tool call parsing, pass sampler config, unify init timeout (4bbf042)
  • fix(chat): scroll to last message when keyboard opens (fde2aba)
  • fix: resolve lint and type errors blocking push (cad3920)
  • fix(litert): fix read_url colon-arg parsing, track context fill, and extend reload detection to context length (5b0169c)
  • fix(litert): tool call parsing, regeneration, and context stability (6b8703c)
  • fix(litert): production fixes - stopGeneration, multi-turn tracking, memory budget, BenchmarkInfo wiring (a8aa88b)
  • fix(android): add BenchmarkInfo stats, getMemoryInfo, and sampler params to LiteRTModule (dcf40c8)

Refactors

  • refactor(tests): consolidate test duplication and update litert bundle ID (ac0100c)
  • refactor(generation): extract runLiteRTResponseImpl and use named handler objects (f51fbab)

Chores

  • chore: bump version to 0.0.95 [skip ci] (b3ccf77)
  • chore:delete unwanted files nd comments (deb6b1f)
  • chore(android): increase JVM Metaspace limit to 1024m for LiteRT compile overhead (ecd3bf6)
  • chore(android): align build config with main, migrate kapt to KSP, add LiteRT (642146f)
  • chore(litert): remove debug logging from compaction and token tracking (0f84cee)
  • chore(debug): strip debug store writes and remove debug logs panel (1a9148d)
  • chore(ui): remove ContextRing from chat input (6fdfcc7)
  • chore: remove DebugLiteRTScreen, DeviceStatsChip, and LiteRT debug button (7b2a790)

Tests

  • test: push branch coverage to 80% with tests for recent changes (8e2850a)
  • test(debug): update tests after debug store removal (70f25d0)
  • test(coverage): add unit tests for liteRTCompaction and proPrompt (57c1b12)
  • test: fix TypeScript discriminated-union errors in test fixtures (2909ec8)
  • test: fix stale assertions across unit and RNTL tests (c0d9103)
  • test(factories): default engine to 'llama' in createDownloadedModel (e5ffeb2)
  • test: add LiteRT service tests and improve existing coverage (d560373)

Other

  • fix sonar errors (1715831)
  • fix test (e9ec787)
  • fix test (1a80c41)
  • fix lint (ff16147)
  • add one more test (3dca3df)
  • fix tests (5ed5743)
  • perf(chat): fix ChatsListScreen re-renders and add OpenCL warning banner (78ad252)
  • perf: remove high-frequency debug logs from hot paths (bc4204d)
  • test: disable React Compiler for Jest (5ffdd19)
  • for new users allow set 3 tools as default (7b5316a)
  • style(litert): drop glow shadow and right stripe from recommended card (91884ce)
  • fix tests (789adec)
  • Add multi-image support to LiteRT direct and tool-based generation paths, update the JS and Android native LiteRT bridges to forward all image attachments instead of only the first image, and expand LiteRT generation tests to cover multi-image forwarding behavior (2b513de)
  • temp care for lint (561d699)
  • delete debug files (4523225)

Full Changelog: v0.0.94...v0.0.95

Off Grid v0.0.94

25 May 11:48

Choose a tag to compare

What's Changed

  • chore: bump version to 0.0.94 [skip ci] (2f38389)
  • fix(pro): fix iOS layout of Pro detail banner and MCP card (d40373f)
  • fix lint (1146253)
  • chore(pro): remove dead footer styles and fix feature grid layout (dfee07e)
  • feat(pro): add crown icon to home screen header and settings nav (a21887a)
  • feat(pro): redesign Pro detail screen and settings banner (c637a2c)
  • fix(lan-discovery): restore IPv6 fallback subnet scan broken in 56790cf (00def5a)
  • test: add coverage for Wednesday URL in OnboardingScreen (61debb8)
  • fix(ios): prevent main-thread hang in download progress polling (93399bf)
  • throttle ios events change freq from 0.5 s to 1.5s (7ee3b91)
  • fix: address review comments - move URL and features to constants, fix duplicate import (9a65396)
  • fix: revert stray imageUseOpenCL default back to true (200b395)
  • feat(pro): set hasRegisteredPro on CTA tap, add UTM params to PRO URL (8b725e7)
  • fix: decouple pro prompt from share prompt gate, fix duplicate animation index (64a195e)
  • chore: remove unused babel-plugin-transform-inline-environment-variables (db22a63)
  • test (57b8def)
  • fix lint and tests (03e5e05)
  • remove debug buttons and 10 dollar pro (4cba206)
  • feat(pro): simplify PRO flow to website redirect, fix aha trigger logic (0fb8899)
  • feat(pro): add PRO pre-order flow, about screen, and debug state tooling (719bc9b)
  • change email address to support@offgridmobile.co from work@wednesday.is (e6a1a56)
  • fix(ios): cancel stale native row before retrying image zip download (41f116d)
  • git commit -m "fix(android): add Log.w in interrupted join catch to address review feedback" (e1554fb)
  • fix ts (a2b6dfc)
  • reduce duplication (d3056c2)
  • sonar fixes (b3e38d8)
  • add tests (3baedc2)
  • fix ts error (ae1cad0)
  • add tests and reduce (aa9ca8e)
  • address sonar issues (dd3df74)
  • reduce lines (67fb329)
  • fix(ios): address Gemini review comments and fix multifile image re-hydration bug (7d34c28)
  • fix lint (9dac0d7)
  • fix(ios): add retry button for failed downloads on iOS (81bee0d)
  • fix(android): join whisper threads before freeContext to prevent SIGSEGV (b41dc0e)
  • fix(ios): address Gemini review -thread-safe downloadId, consistent modelType default, add createdAt (a786187)
  • chore(ios): bump llama-rn from rc.5 to rc.9 (1c75718)
  • fix(ios): align native download contract and fix downloadId mapping (91d7911)
  • chore(readme): add UTM params to Wednesday CTAs for traffic attribution (8ac14cf)
  • fix(readme): show Wednesday logo in light mode via picture tag (37f8776)
  • Update README.md (f6355d3)
  • Update README.md (6b44f2b)
  • docs(readme): [OPTIONAL] add 100% money-back stat + reword 10x claim (ce33bc7)
  • docs(readme): trim Wednesday section copy and update CTA (9a37fc4)
  • fix(readme): add white background to Wednesday SVGs for dark mode (aad0f4f)
  • docs: add Wednesday Solutions section to README (a441da4)
  • fix(android): prevent NullPointerException crash in react-native-zip-archive (869ddd9)
  • fix(patch): prevent NullPointerException crash in react-native-zip-archive (7a19c40)
  • fix whisper size verification (aeebff7)
  • Fix gradle wrapper + add Fastlane metadata for F-Droid/IzzyOnDroid (1efbb68)
  • test: update image model loader assertions for auto backend (995a99a)
  • fix(image-model): correct backend detection and loading for NPU models (90f9711)
  • fix ts (92a3ef0)
  • test: fix mock resets and add coverage for image download resume paths (c23714e)
  • fix test (ee6e035)
  • fix tests (ddcba69)
  • fix(android): harden image model download recovery after restart (773fa7b)
  • Refine Pro section: typographic header, remove payment-link mention (aadcffd)
  • fix lint ,(disable temp for this file) (86a6308)
  • add some tests (8a395d7)
  • fix: correct mmproj retry finalization and persist already-downloaded models (394453e)
  • fix: catch mmproj completed before onComplete listener registered (b9926a3)
  • fix: resolve vision model download failures on network-drop + retry (8a51269)
  • Add Founding Supporter banner + Coming in Pro section (71c1769)
  • add some tests (e5a5317)
  • fix vision and mmproj downlaod (478efa4)
  • fix test //ps (0bd5071)
  • fix(models): resume restored image downloads that enter processing after relaunch (bbf905a)
  • feat(chats): open model selector from disabled New button when models are available (66a4bc4)
  • on network failure dont remove progress from models screen (5c4f7bf)
  • add some more tests (fee2106)
  • fix erores (2496775)
  • add testsimprove vision repair (52ba7bd)
  • fix lint (f09b2cb)
  • test: add coverage for size-mismatch filter in model downloads (028b6b7)
  • temp (506754e)
  • filter paritla files here as well (604608d)
  • fix sonar errors (736efe7)
  • fix(model-recovery): filter suspicious recovered text models during scan (5cd30ec)
  • add filter for corrupted recovered fiels in downlaod mangaer ui as awell and (b493e01)
  • fix sonar errors (d6e47fd)
  • fix tests (6202199)
  • fix(downloads): resolve image download vanish bugs and lint errors (ffd05c1)
  • fix(image-downloads): restore interrupted finalizations on restart and fix lifecycle gaps (cd68f0f)
  • disable htp in chat generation settings for users with npu backend (406875c)
  • feat(android-downloads): replace auto-retry with manual resume on failure (038c806)
  • fix test (6c1ba5a)
  • perf(android-downloads): remove hot-path progress DB reads and raise update interval to 1500ms (bdd1002)
  • fix test (20e7d8b)
  • improve repairing model ui (9423c59)
  • • fix(downloads): narrow mmproj hydration filtering to explicit linkage and mmproj names (504e33c)
  • fix(downloads): harden recovery and hide orphaned mmproj repair rows on restart (6c260ec)
  • fix(downloads): harden startup hydration and restore recovery (0239617)
  • • fix(ios): align download manager downloadId contract with JS string IDs (3f6bcae)
  • fix download progress on app kill and start (a8c6e70)
  • docs: remove stale lastProgressAt and stuck detection from architecture doc (886fe27)
  • fix(sonar): fix Promise-in-boolean and remove non-null assertion (dfb1a48)
  • fix(sonar): reduce cognitive complexity and address remaining warnings (d996854)
  • fix(sonar): address code quality warnings on PR 322 (c3e49d1)
  • fix ts errors (372bc42)
  • fix lints (20f07a5)
  • reduce file lines (5469ed7)
  • adress gemini comments and sonar errors (c1c23b4)
  • fix test (1d63bad)
  • fixts errors (7e26095)
  • fix lints (550ee70)
  • test(downloads): update tests for single-source-of-truth download architecture (ec7c0a8)
  • refactor(downloads): finish image migration - phase 3+4+5 (0051d31)
  • refactor(downloads): image-side phase 1+2 - UI reads via store, dead code deleted (b858153)
  • feat(downloads): finish migration — durable retry states, strict add, mmproj-tolerant flow (e2ed2e6)
  • fix(downloads): hydration preserves in-flight progress instead of overwriting (5204554)
  • feat(downloads): stuck detection + restart button + better vision-repair signals (e17298d)
  • fix(downloads): vision-icon visibility + completion cleanup + hydration (d995d0a)
  • temp (958d055)
  • upgrade packages (8227f3a)
  • • fix(android): guard OpenCL llama init and upgrade llama.rn to rc.9 (3441f25)
  • fix tests (d70e485)
  • fix(downloads): include downloadId in progress updates and restore functions (617d6fb)
  • fix(downloads): exclude failed entries from active download count, preserve downloadId on failure (9273743)
  • dont count comple or failed downloads as active (d24c6c5)
  • fix(downloads): remove refresh, guard concurrent limit, fix mmproj file collision, persist failed state, improve quant matching (39f2fd0)
  • fix: address gemini review — add download handler tests, remove log file (8bad738)
  • fix(android): remove unnecessary notification permission request (13e6369)
  • fix test (101b4f0)
  • fix test (c828ca4)
  • fix: sync cpuThreads label fallback with slider value (e2622e9)
  • fix(android): patch react-native-zip-archive 7.1.0 switch on double compile error (f401199)
  • fix(threads): remove runaway nThreads migration and show resolved Auto count (366b61e)
  • address gemini comments (fb03d18)
  • fix(android): delete orphaned foreground service test; bump zip-archive to 7.1.0 (9d9e8f7)
  • fix(android): remove DownloadForegroundService to eliminate foreground service crashes (bbe867c)
  • fix(whisper): migrate model download to WorkManager via backgroundDownloadService (9c0e7f4)

Full Changelog: v0.0.89...v0.0.94

Off Grid v0.0.89

17 Apr 14:11

Choose a tag to compare

What's Changed in v0.0.89

Chores

  • chore: bump version to 0.0.89 [skip ci] (1fdda0b)

Other

  • fix: restrict DownloadRetrying event listener to Android only (f28d9af)

Full Changelog: v0.0.88...v0.0.89

Off Grid v0.0.88

17 Apr 13:14

Choose a tag to compare

What's Changed in v0.0.88

Features

  • feat(website): add essay 'It's Not About Productivity. It's About the 35 Tabs.' (b240c6f)
  • feat(website): add Vision page under Mission accordion (b39cce5)
  • feat(website): rewrite mission page as manifesto — revolutionary framing (85c5169)
  • feat(website): content audit pass — remove company/country names, add mission page and 3 new VA essays (0fd3515)
  • feat(website): cross-link early access and Perspectives essays (8b513c1)
  • feat(website): add plan preference text links to early access form (57a3427)
  • feat(website): cleaner early access form - pricing caption + text platform links (57f52be)
  • feat(website): add explicit pricing and plan preference to early access (ca40fda)
  • feat(website): make reactions a fixed floating pill bottom-right (250e434)
  • feat(website): rewrite early access as conversion-focused waitlist (3cf635c)
  • feat(website): move reactions to top-right of content area (dad28f6)
  • feat(website): add early access page styles (285e4b6)
  • feat(website): toggle sidebar accordion closed on click when open (ccec65a)
  • feat(website): show reactions on all pages, not just Perspectives (5afd49a)
  • feat(website): add essay reactions, rewrite all essays to brand voice (19718b3)
  • feat(website): full guide expansion with accurate model and feature data (9de3ac1)
  • feat(website): add cover image as hero and OpenGraph image (f7c2754)
  • feat(website): add logo, App Store/Play Store/Slack icons to buttons (55ebfa5)
  • feat(website): add Jekyll docs site with SEO-optimised guides and GH Pages deploy (5c50bb8)
  • feat(android): add production-grade download safeguards (0f0d7be)
  • feat: show 'Needs repair' badge for vision models with broken mmproj link (57abb3d)
  • feat(android): add explicit inference backend selector (CPU/OpenCL/HTP/Metal) (d7bae0e)
  • feat(android): enable Hexagon HTP/NPU acceleration for text LLMs (f1c30cb)
  • feat(android): migrate download layer to Room + WorkManager, fix security issues (781398f)
  • feat(android): switch model downloads to WorkManager + OkHttp (bdd8d5b)
  • feat: allow image generation without a text model (54c5856)
  • feat: add API key support for remote servers (c5c706c)

Bug Fixes

  • fix: cancel from Models screen now dismisses foreground notification (c91be26)
  • fix(android): address SonarCloud reliability issues in download worker (92dc134)
  • fix: repair concurrent download lifecycle and stale-progress bugs (a0f78da)
  • fix(website): restore separate button for accordion, fix a11y and hit area (2ebb268)
  • fix(website): use chevron span inside link for reliable accordion UX (6bf4d9e)
  • fix(website): fix accordion chevron alignment in sidebar (2c7f999)
  • fix(website): separate accordion toggle from nav link for Ethos (b23a9a7)
  • fix(website): allow navigation to accordion parent pages on second click (8872991)
  • fix(website): resolve subscription contradiction + vision/current-state framing (a69b843)
  • fix(website): content audit fixes across guides and essays (84a50c0)
  • fix(website): expose openSearch on window to fix ReferenceError in mobile script (a55604e)
  • fix(website): place App Store and Google Play buttons side by side (db96470)
  • fix(website): always preventDefault on accordion nav items to fix toggle (6594b5a)
  • fix(website): deep brand voice pass - remove all remaining violations (e341b24)
  • fix(website): fix Google Play icon, remove all em dashes, brand voice ethos (4149900)
  • fix(website): correct Google Play SVG icon and widen newsletter input (56de6f3)
  • fix(website): use Inter font for visual consistency across all sizes (958ec9e)
  • fix(website): theme toggle position - sidebar-logo needs display:flex (2c6248f)
  • fix(website): App Store button text invisible due to .content a specificity override (e661535)
  • fix(website): replace broken Apple SVG (814x1000 viewBox) with correct 24x24 path (401eb6e)
  • fix(website): address Gemini review comments (539c1c9)
  • fix(ios): debounce document picker entry points (e74a436)
  • fix(android): address remaining SonarCloud issues (6252bfc)
  • fix(android): re-enqueue downloads stuck in PAUSED_WAITING_TO_RETRY with fresh URLs (dbee6ec)
  • fix(tests): align defaults and assertions with 4096 context and shortened tool descriptions (45a87af)
  • fix(llm): respect RAM-based GPU layer caps for HTP and OpenCL backends (2ee9746)
  • fix(android): revert windowSoftInputMode to adjustResize (461be1c)
  • fix: restore flash attention for Android CPU — only disable for OpenCL/HTP backends (2911054)
  • fix(android): set windowSoftInputMode to adjustNothing (da005f5)
  • fix(android): remove f16 KV cache forcing for HTP (8b3c076)
  • fix(android): respect GPU settings for HTP and update UI labels (107a37e)
  • fix(android): increase HTP init timeout from 8s to 30s (ff95e75)
  • fix(ci): gracefully skip local Sonar scan when automatic analysis is enabled (c70a375)
  • fix: allow viewing old chats without an active model (fixes #201) (2969a0a)
  • fix(android): extract progress reporting to reduce streamToFile cognitive complexity (SonarCloud) (6ad49bc)
  • fix(android): handle WorkManager retry state and surface reconnecting status in UI (3fc4e8b)
  • fix(android): correctly handle WorkManager retry — show reconnecting state instead of false error (d13630d)
  • fix(android): resolve compilation conflicts and SonarCloud reliability issue (5e9b2f1)
  • fix(android): reduce doWork cognitive complexity from 39 to ~12 (SonarCloud) (911c66f)
  • fix(android): resolve compilation conflicts and SonarCloud reliability issue (a3d4d0f)
  • fix(android): address Gemini and SonarCloud findings in download layer (bd64b7f)
  • fix: address Gemini code review on remote server API key form (fcebdd3)

Refactors

  • refactor(threads): use 0 as sentinel for auto thread count instead of matching default 4 (7d1070d)
  • refactor: replace InferenceBackend string literals with INFERENCE_BACKENDS constants (e2dbb3e)

Chores

  • chore: bump version to 0.0.88 [skip ci] (61771d8)
  • chore(website): eliminate prose dashes across all 13 essay files (af8dcd8)
  • chore(website): eliminate dashes by restructuring sentences throughout new content (f2d6e68)
  • chore(website): replace -- with - across all new content (45ecadd)
  • chore(website): restructure accordion — Ethos as parent, Vision + Mission as children (432a836)
  • chore(website): group Mission + Ethos under one sidebar accordion (18ede02)
  • chore(website): update Slack invite link sitewide (70f8a80)
  • chore(website): reorder sidebar nav - ethos, early access, guides, perspectives (d078988)
  • chore(website): set custom domain to docs.offgridmobileai.co (1760528)

Tests

  • test: update GPU tests for inferenceBackend architecture (e12b631)
  • test(android): add unit tests for Hexagon HTP NPU activation (f7bd711)
  • test(android): replace legacy download tests with WorkManager-layer tests (cedcedc)

Documentation

  • docs: update CLAUDE.md em dash rule to use single hyphen (e91a7c2)
  • docs(website): enforce brand voice compliance across new content (d6a39da)
  • docs(website): rewrite 'A Day With a Personal AI OS' essay (9b84102)
  • docs: add brand tone and voice guidelines (258f911)
  • docs(website): add final 2 context-gap essays and complete index (962a4f4)
  • docs(website): complete Perspectives section - 19 essays across all 5 tiers (a8fa93f)
  • docs(website): add Perspectives section with 5 thought leadership essays (3282923)
  • docs(website): add ethos page with Off Grid vision and manifesto (23ed637)
  • docs(website): guides index page with categorised card grid (27b051a)
  • docs(website): dark/light mode, system font, logo in heading, button polish (d48dd46)
  • docs(website): add UTM params to sidebar GitHub link (862baa2)
  • docs(website): add newsletter email capture, favicons, brand tone fixes, and expanded guides (c97f4fb)

Other

  • flag phi is not supported yet (e109c56)
  • put htp in beta now (82e898d)
  • add back button in download manager (22f1e32)
  • fix test (d800bfc)
  • fix sonar comment (8481f64)
  • remove logs fix lint and tests (61419ce)
  • fix this isue (ad5eb57)
  • adress sonar commens reduce complexity and duplication (d46dd47)
  • fix model settings ui cpu threads used to show 0 (8c69fc9)
  • fix tests (5a09019)
  • remove DownloadLogs navigation button (c4f13fd)
  • fix tests (95cc1f5)
  • fix(downloads): improve retry handling and error messaging (d685644)
  • improve remote server ui (8556f0c)
  • fix hcl support for npu based devices force kv cache f14 for precision (5e4d2d3)
  • fix test (7c86163)
  • addres gemini comments (4a6747d)
  • fix lint and improve remote server ui (f097a16)
  • show mic icon instead of send button when nothing is typed (99816ef)
  • placeholder text Load a model when in read mode only insteadof loading model ... (e1de57f)
  • Fix image download cancellation and progress sync between Models and Download Manager (9358198)
  • fix: Correct download progress desync on 5xx errors & add manual cancel (bf3952c)
  • fix test (64d4320)
  • fix test (111eb7f)
  • Enhance remote server connection handling with API key support and improved URL formatting (e0a2549)
  • add stale tests (de72723)
  • fix test cases (0dd4d5c)
  • reduce duplicaion in the test codee (3056934)
  • chore(android): improve download layer architecture and planning (ca2eb54)
  • Make tool calls heuristic based rather then pass on every msg to improve ttft (b9d0b2e)
  • add test cases for pickerutil (1bd7c54)
  • address gemini comments make common util for picker add debouncer to chat attachment as well (3b83473)
  • perf(tools): skip text hint when model supports native Jinja tool calling (c307362)
  • perf(tools): trim tool schema descriptions to reduce prompt token overhead (257a990)
  • perf: raise default context to 4096 — eliminates double model init on load (2cb2190)
  • perf: upgrade llama.rn params and dynamic thread scaling for faster inference (b1480b1)
  • git commit -m "fix(android): resolve SonarCloud...
Read more

Off Grid v0.0.87

10 Apr 12:33

Choose a tag to compare

What's Changed in v0.0.87

Bug Fixes

  • fix(chat): project selection doesn't stick on new conversations (d0d24bc)
  • fix(android): restore keepLocalCopy for knowledge base document picker (e37fdd7)
  • fix(android): throw on keepLocalCopy failure instead of falling through (7b88300)
  • fix(android): extract resolvePickedFileUri to fix Sonar duplication and add tests (a0fb0b1)
  • fix(chat): address Gemini review comments on pendingProjectId (aff7fc2)

Other

  • make projects sticky across chat (0faddc8)

Full Changelog: v0.0.86...v0.0.87

Off Grid v0.0.86

08 Apr 06:37
793c41e

Choose a tag to compare

What's Changed in v0.0.86

Bug Fixes

  • fix: use best-fit scoring for trending models on onboarding screen (#242)

Features

  • feat: add SmolVLM2 500M and SmolLM2 360M for ≤6GB devices (#243)

Chores

  • chore: bump version to 0.0.86 [skip ci]

Full Changelog: v0.0.85...v0.0.86

Off Grid v0.0.85

07 Apr 17:08

Choose a tag to compare

What's Changed in v0.0.85

Bug Fixes

  • fix: new chats no longer show the previous conversation's messages — opening New Chat now always starts a clean session

Full Changelog: v0.0.84...v0.0.85

Off Grid v0.0.84

07 Apr 15:19

Choose a tag to compare

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

Off Grid v0.0.83

06 Apr 21:08

Choose a tag to compare

What's Changed in v0.0.83

Features

  • feat: add Gemma 4 model support (339b58d)

Bug Fixes

  • fix: address Gemini review — filename sanitization and stat fallback (64dc58b)
  • fix: improve local model import for iOS and Android (1c0329f)

Chores

  • chore: bump version to 0.0.83 [skip ci] (861266e)
  • chore: fix tests and lint regressions from Gemma 4 and import changes (9045c7d)

Full Changelog: v0.0.82...v0.0.83