Skip to content

Releases: off-grid-ai/off-grid-ai-mobile

Off Grid v0.0.101

Choose a tag to compare

@alichherawalla alichherawalla released this 03 Jul 21:17

What's Changed in v0.0.101

Features

  • feat(chat): auto-send a standalone chat-mode voice dictation (2ed4fcb)
  • feat(chat): auto-send a standalone voice note in Chat mode (ffed564)
  • feat(chat): render voice-note transcription in the sent message (ba32700)
  • feat(downloads): single-source queued vs downloading classifier (fd3f731)
  • feat(app): top-level ErrorBoundary so a render error recovers instead of white-screening (d01869a)
  • feat(downloads): clock icon for the Queued state via one status->icon helper (F24) (9a4c720)
  • feat(device-info): show per-process memory — Available, Footprint, Process Limit (7dab9f1)
  • feat(downloads): show queued (capped) downloads as "Queued" in the Download Manager (a11eac5)
  • feat(downloads): cap concurrent downloads at 3 (FIFO queue) to stop the freeze (98fe071)
  • feat(home): copy-link action on the Off Grid AI Desktop card (d878f40)
  • feat(home): dismissable 'Off Grid AI Desktop' promo card (14d2ddb)
  • feat(downloads): shared startModelDownload action — onboarding + Models screen, one mechanism (a684d8d)
  • feat(chat): GenerationSession owns 'which conversation is generating' (refactor slice 1) (8453c4a)
  • feat(dev): persistent on-device log file sink for device debugging (2f958d7)
  • feat(chat): Eject All on the chat models sheet (was stubbed) via shared projection (45d1146)
  • feat(models): single ejectAll side-effect owned by activeModelService (88b6199)
  • feat(routing): log every intent-classifier verdict ([ROUTE-SM]) (eccd198)
  • feat(routing): permanent [ROUTE-SM] logs on the image-vs-text decision (2d8bb73)
  • feat(downloads): useModelDownloads — one reactive hook for every screen (749d72d)
  • feat(downloads): register core providers + reconcile on boot (5accce5)
  • feat(downloads): image provider — service-level list/remove/reconcile, injected cancel/retry (c08042e)
  • feat(downloads): text provider — service-level wrap (incl. platform-branched retry) (89833a3)
  • feat(downloads): STT provider — UI-free reference wrapping the working bridge (bbd580d)
  • feat(downloads): downloadStore→ModelDownloadStatus mapper (single source) (c082c42)
  • feat(downloads): app-kill reconciliation in the download state machine (cbba6ea)
  • feat(downloads): ModelDownloadService — single owner + [DL-SM] state machine (8382c91)
  • feat(recording): single owning record controller (fixes hero tap-to-stop) (aedb487)
  • feat(audio): voice mode speaks the image-gen result (turnSpeech tests + pro bump) (c351f9f)
  • feat(home): big per-type model count to the right of icon+label (c8d6476)
  • feat(image): show the ~120s first-run warm-up notice on iOS too (9e4aeb2)
  • feat(failures): dismissible ModelFailureCard surface (763e545)
  • feat(failures): single owner for model failures (store + handler) (ef7d324)
  • feat(diag): [IMG-SM] + [MEM-SM] state-machine traces (kept forever) (47650a0)
  • feat(downloads): show in-progress voice downloads as active items in the Download Manager (987d996)
  • feat(memory): kill-apps prompt + retry when eviction still can't fit a model (5b5636a)
  • feat(home): per-type model counts in the Models card, chat count by See all (75d8fbe)
  • feat(memory): smart-routing residency — co-residency, priority eviction, no OOM (48bdf3d)
  • feat(memory): real per-process device budget (os_proc_available_memory), not a guess (a0ec55d)
  • feat(llm): surface llama.cpp's real load error via native-log passthrough (571de95)
  • feat(memory): strict-sequential model residency on ≤4GB (one heavy model at a time) (d6d713d)
  • feat(residency): own the memoryWarning + a canEvict veto for in-use models (7f86ffc)
  • feat(audio): add AudioSessionManager — single owner of the iOS AVAudioSession (757fec0)
  • feat(image): honor preferGpu in CoreMLDiffusionModule (GPU<->ANE) (df6d39b)
  • feat(image): pass the RAM-tier compute choice to the Core ML loader (bd30278)
  • feat(image): pick iOS Core ML compute path by RAM tier (bea0e1b)
  • feat: cross-platform showToast util + bump pro (voice-note streaming gate) (13eee9c)
  • feat: faster iOS downloads, gateway discovery, STT-retry, model-switcher + Desktop links (27884cd)

Bug Fixes

  • fix(downloads): route in-flight voice downloads to Active, not Downloaded Models (b07f673)
  • fix(chat): make tool accordion tappable during active streaming (#37) (830c105)
  • fix(image-download): publish queued store row before native start so the card shows queued (#33) (d8f2dfb)
  • fix(kokoro): live-lifecycle download state (supersedes sentinel) + bump pro pointer (4895e0c)
  • fix(chat): persist tool-accordion expand state across streaming→finalized remount (cf40369)
  • fix(downloads): route every model-list surface through the shared classifier (51b4062)
  • fix(downloads): mmproj sidecar no longer consumes a concurrency slot (single-download bug) + icon-only Queued (2f4e645)
  • fix: address CodeRabbit review on #425 (stability hardening batch) (49a43d8)
  • fix(android): declare dataSync foregroundServiceType on WorkManager's FGS host (F8) (54061a4)
  • fix(remote): LM Studio always accepts enable_thinking (decouple from probe) (1a125a9)
  • fix(litert): adopt the native-clamped context budget in JS (F20) (8bd20a6)
  • fix(android): run model downloads as a foreground service so they survive backgrounding (F8) (78d77a2)
  • fix(pro): make the Settings section registry reactive so Pro unlocks live (F6) (03c8392)
  • fix(remote): address Qodo review of /props probe (dedup, timeout, logging) (0656a68)
  • fix(audio): restore playback after realtime STT stop so TTS isn't silenced (F4) (ba13aa8)
  • fix(remote): detect Gateway vision/thinking via /props and send thinking flag (ffb00ec)
  • fix(chat): resume the turn after 'Load Anyway' on insufficient memory (F16) (8f0c7c4)
  • fix(remote): trust gateway kind:'vision' so remote vision models read images (F7) (f8bd7d9)
  • fix(models): serialize STT reclaim + memory-warning through the residency lock (F3) (710347e)
  • fix(chat): open the model selector on the tab the manager row selected (F-SHEET) (c41c28c)
  • fix(models): budget LiteRT text models as dirty memory to avoid OOM (F9) (26d34c8)
  • fix(chat): skip the image classifier when no image model is selected (F12) (1fb969f)
  • fix(downloads): purge finalized native record without a synthetic error (F2) (f6fa536)
  • fix(downloads): re-reserve the concurrency slot on Android retry (F1) (7dcf708)
  • fix(downloads): self-heal leaked concurrency slots so downloads don't collapse to 1 (F-SLOT-LEAK) (00f6072)
  • fix(downloads): drop the obsolete 'Starting more can affect performance' gate (F24) (eba11f6)
  • fix(downloads): route queued-cancel on the modelKey-derived id (F24) (11e05ff)
  • fix(chat): show 'No Model Selected' alert on resend/edit when no model is loaded (94df143)
  • fix(chat): treat an undefined snapshot field as 'not changed' (kills the residual false banner) (8dfca14)
  • fix(llm): don't retry-without-tools if the failed attempt already streamed (7eb04aa)
  • fix(downloads): address review — queued-cancel, mmproj name, list-card queued state (5f03685)
  • fix(llm): recover from a remote tool-grammar 400 (retry without tools) + surface the error body (3297394)
  • fix(downloads): show queued state everywhere + dedup double-tap (6eb2a39)
  • fix(chat): stop the false reload banner on LiteRT model load (4a05af5)
  • fix(chat): address qodo review — drop the duplicated reload memory gate (a0ac8d4)
  • fix(chat): reload model without stranding the chat on OOM (5147946)
  • fix(chat): tell the model not to comment on the injected date/time (1e9a8d6)
  • fix(android): apply subproject NDK via plugins.withId, not afterEvaluate (adc3a2c)
  • fix(remote): only basename-strip a model id when it is a real path (124b4b3)
  • fix(downloads): unify the text download id on the modelKey (one identity per model) (e6c4f18)
  • fix(remote): show a clean model name, not the raw file path (45fa624)
  • fix(chat): memoize MessageRenderer to stop the chat-screen freeze (Bugs 1 + 4) (f503172)
  • fix(chat): single now() snapshot so system date + exact-time note never disagree (34beecc)
  • fix(downloads): idempotent finalize breaks the every-foreground re-finalize loop (bb8fed8)
  • fix(downloads): classifier download clears its in-flight row (phantom "100%" fix, Bug 5) (5936d4a)
  • fix(downloads): address qodo review on failed Kokoro voice items (7f16a53)
  • fix(tools): validate hydrated embedding vectors, not just that they are arrays (515f113)
  • fix(memory): register the embedding model inside the load lock (no unbudgeted window) (e6c2aa2)
  • fix(image): cpuOnly maps to .cpuOnly, not .cpuAndGPU (CoreML compute-unit contract) (294b6ae)
  • fix(ios): correct the DownloadInfo initializer in tests (iOS build was red) (056634d)
  • fix(downloads): surface + retry failed Kokoro voice downloads (e9d5a7d)
  • fix(downloads): STT retry restores a failed row if the re-download fails before registering (4110ecb)
  • fix(memory): hydrate real device RAM before the image compute-path decision (18ecba3)
  • fix(llm): memory guard uses the EFFECTIVE f16 cache + full dynamic context step-down (4090301)
  • fix(chat): input controls no longer sit under the Android nav bar (22bfb84)
  • fix(downloads): start the mmproj sidecar before the main to close the vision finalize-hang (73eace7)
  • fix(image): cancel a queued multi-file image part immediately, and type it as image (36eb775)
  • fix(chat): stop TTS when the user hits Stop, not just the LLM (d6f2b19)
  • fix(downloads): cancellable queued downloads via the single queue owner (74ff0e9)
  • fix(downloads): unified completion catch-up covers main GGUF, not just mmproj (fd3b413)
  • fix(downloads): adopt only in-flight restored downloads (completed = permanent slot leak) (bfdc4cf)
  • fix(memory): register image model as dirtyMemory so the resident-dirty gate fires (08acaf3)
  • fix(image): "Free memory & Retry" actually frees memory before retrying (1dd64cd)
  • fix(memory): gate every load on live os_proc RAM under dirty-memory pressure (OOM/jetsam) (8c349f...
Read more

Off Grid v0.0.100

Choose a tag to compare

@alichherawalla alichherawalla released this 26 Jun 16:37

Full Changelog: v0.0.99...v0.0.100

Off Grid v0.0.99

Choose a tag to compare

@alichherawalla alichherawalla released this 26 Jun 15:55

Full Changelog: v0.0.98...v0.0.99

Off Grid v0.0.98

Choose a tag to compare

@alichherawalla alichherawalla released this 26 Jun 15:31

What's Changed in v0.0.98

Bug Fixes

  • fix(downloads): settle awaiting promise on cancel so screens update (b91f405)
  • fix(whisper): per-model download progress + skip strict size check for STT models (540fd52)
  • fix(pro): make registered Pro screens reactive so Pro Tools works on activation (7aa6da1)
  • fix(whisper): repair Android download verification and live Download Manager visibility (133975f)

Chores

  • chore: bump version to 0.0.98 [skip ci] (e6fa232)

Full Changelog: v0.0.97...v0.0.98

Off Grid v0.0.97

Choose a tag to compare

@alichherawalla alichherawalla released this 26 Jun 12:37

What's Changed in v0.0.97

Features

  • feat(chat): collapsible list of tools sent to the model (29344bb)
  • feat(mcp): max out context window when MCP tools are enabled (7e9d7d2)
  • feat(tools): route MCP tools via on-device embedding model (ea127b1)
  • feat: Pro Tools page + chat quick-settings Pro Tools entry (7658d6b)
  • feat(pro): explain monthly cancellation via email, drop unused portal URL (1b49b07)
  • feat(models): keep STT/TTS co-resident, evict only as a last resort (78145bf)
  • feat(pro): ambient framing, July-flip pricing, management card, settings (404fbff)
  • feat(pro): reactive activation, DEV pro toggle, app-root wiring (81090bb)
  • feat(pro): Keygen license-key activation with a hard device cap (d6421e5)
  • feat(models): show Pro upsell in Home voice sheet for free builds (e52e839)
  • feat(components): add centered alert dialog (3b13dd4)
  • feat(mcp): wire MCP SDK OAuth — URL polyfill, deps, submodule bump (af5e596)
  • feat(audio): bump pro to audio-mode progress captions (60d0303)
  • feat(tools): two-pass tool routing for on-device models (iOS llama + LiteRT) (319c348)
  • feat(litert): direct audio input for LiteRT models on Android (22e486b)
  • feat(litert): surface curated LiteRT models in onboarding (d460cd1)
  • feat(pro): Get Pro opens web pay page directly; modal is verify-only (db231bf)
  • feat(audio): larger voice mic + taller chat input (ab319e3)
  • feat(chat-input): header Chat/Voice toggle, drop thinking bar icon, pass onSend to audio (39e2ddb)
  • feat(audio): render the voice empty-state hero slot (aa0b31c)
  • feat(litert): two-pass tool selection for large tool sets (7d917e4)
  • feat(pro): reframe unlock copy around 'membership' / Get Pro (3e83836)
  • feat(home): animated load progress + rotating tips on the loading overlay (1db5d14)
  • feat(settings): release-visible Debug Logs button + MCP OAuth browser log (34bec91)
  • feat(mcp): native OAuth adapters, boot wiring, and redirect scheme (dab716b)
  • feat(transcription): multi-model — select/download/delete per model (514202a)
  • feat(settings): remove Voice Transcription + Text to Speech settings screens (b4ab879)
  • feat(chat): Models selector in chat header → shared manager sheet (2cd681e)
  • feat(home): collapsed Models control + per-type pickers; bump pro (66842eb)
  • feat(audio): wire streaming TTS + chat-mode select-text; bump pro (ae5eeb9)
  • feat(routing): warm selected models at boot (text -> image -> TTS -> STT) (cf1605b)
  • feat(routing): auto-provision the default SmolLM2 classifier (a328699)
  • feat(routing): use the SMOL LLM classifier for image-only routing (19130b4)
  • feat(routing): differentiate text vs image + load text model on demand (7ce42ae)
  • feat(routing): remember last text model + preload it on chat open (2159ba3)
  • feat(routing): make residency manager authoritative for model memory (0bde2b9)
  • feat(image): disable prompt enhancement when no text model is available (46b384c)
  • feat(routing): add model residency manager (memory budget + eviction) (ccd6bbe)
  • feat(downloads): show voice + transcription models in Download Manager (e1e2f98)
  • feat(models): add Transcription Models (speech-to-text) tab (e9cdb00)
  • feat(models): add Voice Models tab with pro panel + non-pro upsell (4c3cc32)
  • feat(chat-input): inline Chat/Audio toggle slot + fix clipped pill icons (1d16749)
  • feat: pro unlock modal polish (dismiss, border, input-gated CTA) (48bfd36)
  • feat: add RevenueCat config key placeholders (66ff0c4)
  • feat: pro-gated email/calendar tools via ToolExtension (fcbc9c9)
  • feat: in-app debug log viewer (99718d6)
  • feat: RevenueCat pro license service + unlock modal (3d5613b)
  • feat: tool extension seam + MCP wiring into the generation loop (26db7c0)
  • feat: pro feature registry, license seam, and submodule (d300dbb)
  • feat: pluggable TTS engine interface with Kokoro + OuteTTS adapters (609ddd5)
  • feat: seekbar overlaid on waveform, visible on both user and AI bubbles (c26d7cc)
  • feat: WhatsApp-style waveform progress + increase voice change cooldown (a2b41ea)
  • feat: word highlighting in transcript, stop TTS on record, fix multi-click play (097286e)
  • feat: draggable seekbar — tap or drag to seek (a3c5891)
  • feat: seekable progress bar — tap to jump to position in audio (d8c9e00)
  • feat: rename voices to mood personas with pre-configured speeds (996b986)
  • feat: audio mode system prompt for conversational voice responses (ac6de63)
  • feat: ChatMessage speak action, test fixes, and TTS plan update (11f099b)
  • feat: TTS store, service, TTSButton, KokoroTTSManager, and App wiring (908af16)
  • feat: multimodal audio input — pass WAV directly to audio-capable models (ff834e1)
  • feat: VoiceSettingsScreen — HuggingFace model search (c072873)
  • feat: expand Whisper model catalogue and add downloadFromUrl (9f5ad0d)
  • feat: add TTS accordion to GenerationSettingsModal (6b337f3)
  • feat: VoiceRecordButton — inline download prompt instead of navigation (3d1eb33)
  • feat: Audio Mode full voice conversation — user audio bubbles + auto-send (bb4ff1f)
  • feat: audio attachment type — duration, format, and recorder service (ef9b973)
  • feat: replace sliders with NumericStepper in all settings screens (ce920a4)
  • feat: add NumericStepper component (8ab6a50)
  • feat: add Voice mode toggle to quick settings popover (78e40d5)
  • feat: trigger TTS generation automatically after streaming in Audio Mode (6d269de)
  • feat: add TTS with Audio Mode and Chat Mode (767e0b9)

Bug Fixes

  • fix(ci): exclude pro-importing MCP test suites from open-core CI (38d4133)
  • fix(models): stop Whisper STT models showing under Text models (b23dafe)
  • fix(downloads): tag Whisper downloads as STT so they file under Voice (73eea0d)
  • fix(voice): Kokoro iOS playback + recognize installed Whisper models at boot (1923a53)
  • fix(whisper): seed totalBytes so transcription download shows progress (b0fea62)
  • fix(pro): keep license-key activation reachable above the keyboard (b2e59e2)
  • fix(share): one-tap X compose via x.com/intent/post, ambient copy, org links (2890daf)
  • fix(ci): exclude KokoroTTSBridge test from tsc (imports the pro submodule) (07c357f)
  • fix(deps): resolve react-dom override conflict so npm ci accepts the lock (2ec61dc)
  • fix(deps): pin react/react-dom to 19.2.0 so npm ci stays in sync (9303dfa)
  • fix(voice): keep the voice note on the user message in image mode (62e75d6)
  • fix(voice): speak only the answer aloud, not the thinking process (e6953fe)
  • fix(pro): reflect Pro activation in the Voice tab/sheet without a restart (31bc750)
  • fix(voice): show a spinner while the STT model downloads + carry progress to Models (0229cde)
  • fix(voice): recommend Whisper Base (142MB) instead of Small (466MB) (f98cda6)
  • fix(chat): anchor quick-settings popover correctly after keyboard dismiss (e0973ec)
  • fix(android): status bar icons follow the app theme via SystemBars (7d1599e)
  • fix(chat): image-mode gate accepts a downloaded model (cbb2170)
  • fix(models): Home selection marks active, loads lazily on send (f2fbc37)
  • fix(android): edge-to-edge status bar follows the app theme (510a0c8)
  • fix(chat): keep Qwen3 reasoning block on completion (386ef3d)
  • fix(chat): remove keyboard whitespace under edge-to-edge (3aa9468)
  • fix: point Wednesday links to wednesday.is (51b8519)
  • fix(share): open X via deep link with web fallback (989dbdf)
  • fix(stt): remove HuggingFace Whisper search, keep the built-in catalogue (13ddf6d)
  • fix(downloads): keep Whisper download state in sync across surfaces (8602aac)
  • fix(lint): baseline NotificationPermission (unused audio-api playback notification) (9b280c9)
  • fix(deps): remove unused react-native-background-downloader (c9cfdc9)
  • fix(lint): use template literal in audioRecorderService (prefer-template) (aa13b25)
  • fix(ios): activate the AVAudioSession before recording (cd7b947)
  • fix(deps): pin react-native-zip-archive to 7.1.0 so patch-package applies (a83e465)
  • fix(deps): pin react-native-zip-archive to 7.1.0 so patch-package applies (b54aa1b)
  • fix(lint): drop unused loop var left by the log strip (1acba96)
  • fix(navigation): dedupe screen registration by name (47dd59c)
  • fix(audio): wire MCP sheet into the audio-mode quick settings (94dc271)
  • fix(lint): resolve pre-existing inline-style and complexity errors (013ac5e)
  • fix(chat): honour the Tools 'N/A' gate during generation (3b08ce2)
  • fix(whisper): keep transcription model list in sync with disk (1fc39bf)
  • fix(chat): update OpenCL warning message for clarity on GPU support options (96ad679)
  • fix(audio): clear attachments after a keyboard send in audio mode (380d20b)
  • fix(litert): send image and audio together in one turn (094dfef)
  • fix(ui): open the next sheet only after the Models manager fully closes (2431011)
  • fix(audio): bump pro for TTS low-RAM + react-native-fs shim (a890f7e)
  • fix(ios): consolidate react-native-fs onto the @dr.pogodin fork (3780e72)
  • fix(models): engine-aware loaded check so LiteRT models don't reload (7c97849)
  • fix(chat): restore KeyboardAvoidingView keyboard avoidance (6d00bf2)
  • fix(litert): recover from native tool-call parse failures instead of crashing (9e20444)
  • fix(logging): re-wire in-app debug viewer dev-only after taking main's logger (0a4aca2)
  • fix(pro): open unlock modal in verify mode from "Already paid?" (3d036cb)
  • fix(android-test): relax bytecode verification for unit tests (Amazon IAP VerifyError) (57d5caf)
  • fix(settings): keep Debug Logs dev-only; bump pro pointer (7b43df5)
  • fix(ci): move pro-source tests into the pro submodule (35f00e6)
  • fix(tools): inject MCP hint once, and only when no native tool calling (c48f671)
  • fix(audio): bump pro — cumulative seekbar position across streamed sentences (3047ba2)
  • fix: detect Ollama vision capability from capabilities array (cd729ce)
  • fix: disable persistent file logging to stop UI stalls/ANRs (f8c5719)
  • fix(routing): don't lose the message when the model selector...
Read more

Off Grid v0.0.96

Choose a tag to compare

@bhaveshpawar07 bhaveshpawar07 released this 09 Jun 06:52

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

Choose a tag to compare

@bhaveshpawar07 bhaveshpawar07 released this 04 Jun 05:37

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

Choose a tag to compare

@github-actions github-actions released this 25 May 11:48

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

Choose a tag to compare

@alichherawalla alichherawalla released this 17 Apr 14:11

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

Choose a tag to compare

@alichherawalla alichherawalla released this 17 Apr 13:14

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