Releases: off-grid-ai/OGAM
Releases · off-grid-ai/OGAM
Release list
Off Grid v0.0.73
What's Changed in v0.0.73
Bug Fixes
- fix: detect thinking capability from APIs instead of hardcoding true (cb35757)
- fix: reset checklistDismissed for existing installs with incomplete onboarding (518a004)
- fix: keep onboarding blinking dot visible, stop auto-opening sheet on launch (a3df201)
- fix: enable thinking mode for remote models in discovery and provider defaults (47712b3)
Chores
- chore: bump version to 0.0.73 [skip ci] (87703f4)
Full Changelog: v0.0.72...v0.0.73
Off Grid v0.0.72
What's Changed in v0.0.72
Features
- feat: ModelPickerSheet — icon-only unload button, always-visible Add Remote Server (dce7d21)
Bug Fixes
- fix: use discovered capabilities for remote tool-calling/thinking instead of hardcoded true (f0d8bb3)
- fix: port-agnostic model capability detection — try both APIs, fall back to name-based (9952efb)
- fix(.gitignore): split corrupted .yarn exclusion into two lines (892ddac)
- fix(lint): remove unused OpenAIToolCall import, compact getGpuInfo to fit max-lines (aca15d6)
- fix(sonar): reduce cognitive complexity, duplication, and code smells (b872289)
- fix: commit all pending changes — httpClient test signatures, removed eslint-disables, warning fixes (e6e3513)
- fix: don't overwrite server-API vision metadata with name-pattern heuristics (0c6e7a4)
- fix(lint): remove unused manager variable in remoteServerManager tests (1b04010)
- fix(ts): resolve tsc --noEmit errors (5729cf1)
- fix(lint): resolve max-lines in ChatMessage, fix barrel imports in remoteServerManager (604416d)
- fix(lint): split httpClient into httpClientSSE+httpClientUtils, bundle streaming params into StreamRequestConfig (ca351b6)
- fix(lint): bundle callbacks+buildMeta into ctx param, reduce localProvider max-params to ≤3 (92c0d36)
- fix(lint): extract RemoteServerModal styles/form-hook/subcomponent, reduce to 166 lines (49647d2)
- fix(lint): extract LAN discovery and remote model handlers, reduce useHomeScreen arrow fn to ≤250 lines (7b62999)
- fix(lint): extract RemoteServersScreen styles to own file, reduce to 249 lines (0ba9fd2)
- fix(lint): extract TextTab/ImageTab and remoteStyles, fix inline styles, reduce ModelSelectorModal to 219 lines (2387533)
- fix(lint): extract spotlight logic to useHomeScreenSpotlight, reduce HomeScreen arrow fn to ≤250 lines (68e00c7)
- fix(lint): extract KnowledgeBaseSection to own file, reduce ProjectDetailScreen to 270 lines (4a106ef)
- fix(lint): reduce handleAddDocument complexity from 16 to 15 (98f9872)
- fix(lint): compact single-prop style and add missing useMemo dep (9d22c6e)
- fix(lint): split useChatScreen — extract handlers and effects to reduce arrow fn to ≤250 lines (7f0ed04)
- fix(lint): extract ChatMessageArea to own file, reduce index.tsx to 232 lines (d74cac9)
- fix(lint): reduce llm.ts to ≤350 lines (1ac183c)
- fix(lint): reduce types/index.ts to ≤350 lines (f3e5ccc)
- fix(lint): reduce appStore.ts to ≤350 lines (27d94c8)
- fix(lint): resolve max-params and max-lines in generationToolLoop (30e3a9b)
- fix(lint): split remoteServerStore — extract helpers to reduce file to <350 lines (269a798)
- fix(lint): move ensureRemoteServerStoreHydrated to module scope in App.tsx (145d913)
- fix(lint): resolve ESLint errors in ModelPickerSheet (274ac38)
- fix: emit fallback message when model returns empty response after tool calls (287f319)
- fix: refresh KB doc list after each file during multi-file indexing (0212564)
- fix: hydrate remote server store before initializing providers on app start (e15e56b)
- fix: derive supportsVision from remote model capabilities in ChatScreen (165cba6)
- fix: detect remote model vision capability via server API, not name patterns (89ace7a)
Refactors
- refactor(llm): extract resolveGpuBackend to eliminate nested ternary (e5e20e8)
- refactor: rename OllamaModelInfo to RemoteModelInfo, reduce cognitive complexity (ae3f20a)
- refactor: remove dead code — tempProvider in discoverModels, enrichModelsWithCapabilities (d4e0313)
- refactor(openAICompatibleProvider): split file to fix 5 lint errors (26f684c)
- refactor(generationService): split into helpers file to fix file-too-long lint error (2cd4488)
Chores
- chore: bump version to 0.0.72 [skip ci] (b9ae5e7)
- chore: remove LocalAI from LAN discovery — support Ollama and LM Studio only (c1f4383)
Tests
- test: fix remoteServerManager tests after detectVisionCapability extraction (3929f9f)
- test: update and add tests for remote vision, Ollama images, LocalAI removal (d11b62d)
Full Changelog: v0.0.71...v0.0.72
Off Grid v0.0.71
What's Changed in v0.0.71
Features
- feat: remote model thinking, tool loop fixes, and LAN discovery improvements (ffc4653)
- feat: wire up LAN auto-discovery to Remote Servers screen (5734130)
- feat: tap pending-settings banner to reload text model (fe64537)
- feat: show active project badge in chat header; fix project selector not opening from settings (4f27cb2)
- feat: pass generation options to OpenAI-compatible API requests (e05f3ff)
- feat: initialize remote server providers on app startup (6985720)
- feat: add remote model selection to ModelSelectorModal (a3fa8b2)
- feat: enable remote model usage in chat (de25602)
- feat: add remote model selection to homescreen (31c09d9)
- feat: add remote server management UI (f657cc7)
- feat: integrate remote providers into generation service (ce56d40)
- feat: integrate remote providers into generation service (bc142a9)
- feat: add provider infrastructure and remote server manager (1356a70)
- feat: add HTTP client with XHR streaming for React Native (c1f2200)
- feat: add remote server types and store (66e1583)
- feat: add KnowledgeBaseScreen with document preview (4ed7d12)
- feat: update ProjectDetailScreen with 50/50 layout (7d8a3fd)
- feat: add ProjectChatsScreen and DocumentPreviewScreen (90025b3)
- feat: replace FTS5/BM25 keyword search with semantic embedding search (6aa8688)
- feat: initialize RAG database on app startup (1b2a9f4)
- feat: add Knowledge Base UI section to ProjectDetailScreen (9dc9f21)
- feat: inject RAG context into project conversation prompts (6183741)
- feat: extend Project type and store with RAG support (4450bc7)
- feat: add core RAG services for project-scoped knowledge base (a6bc9bc)
- feat: add op-sqlite dependency and jest configuration for RAG (6cbcb62)
Bug Fixes
- fix: revert modelDeps to settings dep in handleReloadTextModel — avoids new lint warning (b37a667)
- fix: address all PR review comments — remove debug logs, tighten LAN discovery, gate LM Studio kwargs (4a655fd)
- fix: replace ReDoS-vulnerable regex in remoteServerManager endpoint dedup (0546fef)
- fix: scope HTTP allowances — remove NSAllowsArbitraryLoads from iOS, clarify Android base-config (f3a3f18)
- fix: resolve all test failures across 4 test suites (ed57d31)
- fix: compact discovered model list items further, drop empty capabilities row (46fa3d7)
- fix: reduce discovered model list item size and padding (ebd8eff)
- fix: make discovered models list scrollable, cap at ~3 visible, reduce margins (08fb4d4)
- fix: show discovered models above action buttons in remote server modal (84b7caf)
- fix: show Test Connection and Add Server buttons side by side (26d265e)
- fix: auto-test connection when manually adding a remote server (c02f356)
- fix: scroll-to-bottom button overlapping chat input on Android (4c91603)
- fix: keyboard input, stop button, pre-tool text, server deduplication, LAN discovery improvements (e189ef1)
- fix: fallback (143ad34)
- fix: test failures and wifi icon overflow in model card (1d7bcbd)
- fix: add reasoning and thinking fields to OpenAI delta type (d61cecb)
- fix: resolve test isolation issue in tools/handlers.test.ts (8f98c45)
- fix: use correct probe paths and validate private IP for LAN discovery (789b5d5)
- fix: allow HTTP to LAN servers on Android and iOS (c7467b0)
- fix: update Podfile.lock to sync with upgraded node_modules (43b5470)
- fix: use explicit path for AndroidManifest.xml Sonar exclusion (c272746)
- fix: exclude AndroidManifest.xml from SonarCloud analysis (5cecb94)
- fix: move NOSONAR to permission line in AndroidManifest (cb6a8ab)
- fix: suppress SonarCloud hotspot for CAMERA permission in AndroidManifest (2c470af)
- fix: remove unused activeRemoteTextModelId destructure in generationService (4053698)
- fix: address Gemini review — debug logs, Android camera, timer sync (de81c5e)
- fix: remove duplicate test and reduce SonarCloud duplication below 3% (5a0c24c)
- fix: resolve remaining SonarCloud hotspots and reduce duplication (b80d223)
- fix: resolve SonarCloud reliability bug and reduce test duplication (1c93193)
- fix: suppress SonarCloud security hotspots in test files (c09a1c2)
- fix: add settings to handleReloadTextModel useCallback deps (4ee299c)
- fix: resolve TypeScript errors in test files (4ff963b)
- fix: resolve lint errors in test files (ca70771)
- fix: resolve remaining lint errors (a923742)
- fix: resolve lint errors in ChatScreen files (86a0e92)
- fix: add NSCameraUsageDescription to Info.plist (27af829)
- fix: force unload before reload so setLoadedSettings always runs (746074e)
- fix: truncate long model names in header; hide local-only UI for remote models (d5d664e)
- fix: move project indicator to subtitle row in chat header (f01e952)
- fix: persist loadedSettings so pending-settings warning survives app restart (9666446)
- fix: always show project badge in chat header (show Default when no project) (416a474)
- fix: enable tool calling for remote models via OpenAI-compatible API (69d48d6)
- fix: handle server IP change across networks + fix stale checkmark in model picker (e3d223f)
- fix: enable tool calling for remote models and remove API key from server setup (dce5dce)
- fix: remote server routing, health status, LAN discovery (c79863e)
- fix: abort XHR on stream error (B2) and filter partial tool calls (B1 gap) (0898a65)
- fix: resolve lint errors in test typecheck fixes (348a428)
- fix: resolve typecheck errors in test files (041d672)
- fix: address PR review comments (B1, B4, B5, CQ1, CQ2) (842e244)
- fix: guard against out-of-order channel markers in parseThinkingContent (e7edf71)
- fix: remove unused eslint-disable annotation for XMLHttpRequest (1a0b1c7)
- fix: suppress SonarCloud http hotspots in test fixtures (cbb35a2)
- fix: resolve SonarCloud security hotspots for ReDoS and weak-cryptography (53ea9c2)
- fix: resolve security hotspot issues in PR (b03aa65)
- fix: resolve security hotspot issues in PR (28e46ea)
- fix: fix TypeScript type errors in KnowledgeBaseScreen test (ab51f0b)
- fix: remove unused waitFor import in KnowledgeBaseScreen test (0ecf07b)
- fix: add timeouts and use findByTestId to prevent test timeouts (47075a8)
- fix: add non-null assertions for alert button callbacks in tests (4baca1b)
- fix: use valid providerType in RemoteServersScreen tests (fddfb6b)
- fix: use undefined instead of null and return string in test mocks (a000541)
- fix: use proper types in useModelsScreen test (035d0e6)
- fix: cast global to any when accessing crypto in tests (9b18f92)
- fix: add missing providerType to addServer test calls (7f613a1)
- fix: replace FrameRequestCallback with inline type in test (b462858)
- fix: simplify Blob mock in httpClient tests (d53f7a6)
- fix: remove invalid as const on null in ImageFilterBar test (8db4308)
- fix: resolve all eslint errors and warnings (e628bcd)
- fix: add Keychain.ACCESSIBLE mock for remoteServerManager tests (5c8ca3b)
- fix: correct thinking tag parsing regex (467cf45)
- fix: remove duplicate import in testHelpers (674d9cf)
- fix: update tests for remote model support and NoModelScreen behavior (cab5cbd)
- fix: resolve lint errors and warnings (fe831e7)
- fix: update tests for remote provider functionality (afcd8f6)
- fix: resolve lint and TypeScript errors (1a5635d)
- fix: improve remote model reliability and generation stats (ee86871)
- fix: add logging for remote generation debugging (2eba47d)
- fix: address Gemini review - batch transactions, type safety, Zustand pattern (fb05828)
- fix: resolve all remaining SonarCloud issues across entire codebase (7e86966)
- fix: replace regex with iterative tag stripping to resolve security hotspot (88824a0)
- fix: simplify estimateCharBudget and add zero-clamping (33f54b4)
- fix: resolve remaining SonarCloud issues and Gemini review comments (49a79ff)
- fix: resolve SonarCloud issues across codebase (7489ffa)
- fix: address Greptile and Gemini review comments (7efdbc2)
- fix: enable FTS5 module for op-sqlite on Android and iOS (0c2afaf)
- fix: resolve SonarCloud async/void type mismatch in onPress handler (5365a52)
- fix: address Gemini review comments on RAG PR (a8d88f0)
Refactors
- refactor: extract more test setup helpers to reduce duplication (efcf0cc)
- refactor: eliminate remaining SonarCloud duplication hotspots (cd8b396)
- refactor: extract duplicated tool loop handlers and loading state JSX (544aa03)
- refactor: extract repeated setup patterns to reduce test duplication (89c25f4)
- refactor: extract SSE parsing logic to eliminate duplication (397f9a4)
- refactor: move pdfExtractor mock to documentService test file (d282d7d)
Chores
- chore: bump version to 0.0.71 [skip ci] (f8533a0)
- chore: remove orphaned PDFExtractor duplicate files (debb238)
- chore: update iOS project for new dependencies (cbd1443)
- chore: minor updates for remote provider compatibility (3470666)
- chore: update tests and dependencies for remote providers (0242acf)
Tests
- test: update networkDiscovery probe test to match new status === 200 requirement (93e13d8)
- test: add scan network tests for RemoteServersScreen (4fde5f9)
- test: add unit tests and fix test suite failures (57d82be)
- test: update openAICompatibleProvider tests for AbortSignal param (f7a441e)
- test: add missing coverage to RemoteServersScreen tests (56a09b3)
- test: add branch coverage to useHomeScreen tests (23 tests) (2b9167e)
- test: add ChatMessage utils unit tests (19 tests) (7b2c5a0)
- test: add ModelPickerSheet component tests (47 tests) (8bc37ef)
- test: add useHomeScreen hook unit tests (1999579)
- test: add missing branch coverage to documentService tests (7f43070)
- test: add RemoteServerModal component tests (24d1802)
- test: refactor toolUsage tests to use test.each pattern (c8a63d2)
- test: add tests for KnowledgeBaseScreen, DocumentPreviewScreen, ProjectChatsScreen to fix branch coverage threshold (0f928db)
- test: add tests for generateId fallback paths (111ad36)
- test: improve remoteServerStore coverage with fetch t...
Off Grid v0.0.70
What's Changed in v0.0.70
Bug Fixes
- fix: chat input issues - keyboard-aware popover and always-on tools (93141ea)
Chores
Other
- Revert "chore: bump version to 0.0.70 [skip ci]" (1b61814)
Full Changelog: v0.0.69...v0.0.70
Off Grid v0.0.69
What's Changed in v0.0.69
Features
- feat: replace toolbar icons with quick settings and attach popovers (d463ea0)
- feat: add thinking mode toggle with /no_think support (954c8bd)
- feat: update recommended models to Qwen 3.5 lineup (9bf560b)
Bug Fixes
- fix: always strip think tags when model supports thinking (9d4edac)
- fix: append /no_think for image-only messages when thinking disabled (6425910)
- fix: use Dimensions for popover positioning instead of magic number (89e2ae8)
- fix: remove redundant Cancel button from image attach alert (7828e10)
- fix: exclude BF16 mmproj files when selecting F16 variant (9e19d59)
Refactors
- refactor: reduce cognitive complexity in QuickSettingsPopover (86c0c46)
Chores
Other
- Move quality gates to pre-push (913e9e7)
- Fix Sonar hotspot and review warnings (638d91a)
- Fix llama.rn thinking and tool streaming (b060c09)
Full Changelog: v0.0.68...v0.0.69
Off Grid v0.0.68
What's Changed in v0.0.68
Features
- feat: add Low RAM Core ML image model entries with original attention variant (f6dd14c)
Bug Fixes
- fix: resolve SwiftLint warnings in DownloadManagerModule (099a2a9)
- fix: remove low-mem iOS workarounds that cause crashes (a3a47b4)
- fix: extract nested ternary in LoadingOverlay into helper function (8959198)
- fix: resolve lint errors and refine low-memory image loading (04e5a98)
- fix: address PR review comments and fix CI failures (e13ca7d)
- fix: delay share prompt until second text generation (64fe518)
- fix: enable image model loading on low-memory devices (1c11e5c)
- fix: iPhone XS fixes (a4cabcb)
- fix: guard excludePathFromBackup call for Android compatibility (4444723)
Chores
- chore: bump version to 0.0.68 [skip ci] (c0ba42d)
Tests
- test: fix mock isolation in excludeFromBackup tests (54b701a)
Full Changelog: v0.0.67...v0.0.68
Off Grid v0.0.67
What's Changed in v0.0.67
GPU Acceleration (MNN OpenCL)
- Upgraded MNN binary from 3.2.1 to 3.4.0 with OpenCL GPU acceleration
- Image generation now uses GPU (OpenCL) instead of CPU — ~2x faster on supported devices
- Added GPU acceleration toggle and Clear GPU Cache button in image generation settings
- Reduced default image steps from 20 → 8 (DPM Solver produces good quality with fewer steps on MNN 3.4.0)
- First-run OpenCL kernel compilation takes ~60s, then cached for subsequent runs
| Metric | Before | After |
|---|---|---|
| Default steps | 20 | 8 |
| Time (Snapdragon 8s Gen 3) | ~90s | ~41s |
| Acceleration | CPU only | OpenCL GPU |
LLM Inference Performance
- GPU offloading for LLM inference with larger batches and KV cache reuse
- Auto-detect GPU capability, cap auto-context at 4096 for mobile
- Flash attention is now user-configurable with Android GPU layers guard
- Platform-aware GPU defaults and optimized thread count
Settings UI Overhaul
- Restructured settings with basic/advanced split, removed Performance tab
- GPU acceleration controls integrated into settings
- Hardened prompt enhancement
iCloud Backup Fix
- Downloaded model files no longer consume iCloud storage (previously 10+ GB)
- Added
isExcludedFromBackuphandling for all model directories on iOS - Existing users get retroactive fix on first app launch after updating
Bug Fixes
- Fixed thread leak: shut down executor on catalyst instance destroy
- Fixed download stuck at zero bytes on Android
Full Changelog: v0.0.66...v0.0.67
Off Grid v0.0.66
What's Changed in v0.0.66
Bug Fixes
- fix: shut down executor on catalyst instance destroy to prevent thread leak (df2f00e)
- fix: validate redirect host against allowlist to prevent SSRF bypass (eb50b7c)
- fix: address Gemini review — sanitize fileName, validate URL host, use executor (d0f86fe)
- fix: pre-resolve HuggingFace redirects to fix 0-byte downloads on Android (bf38e1a)
- fix: use explicit null check for pendingStop to satisfy SonarCloud (f029130)
- fix: address review — abort guard after drain, expand if blocks (03b678f)
- fix: resolve stop generation race conditions causing stuck UI (fd840b1)
Refactors
- refactor: extract shared pre-generation setup into prepareGeneration helper (65de213)
Other
Full Changelog: v0.0.65...v0.0.66
Off Grid v0.0.65
What's Changed in v0.0.65
Bug Fixes
- fix: compare raw float for mmproj size check, not rounded string (3604e36)
- fix: use explicit null check for activeCompletionPromise (5833a55)
- fix: remove redundant try-catch on always-resolving promise (e9b54b3)
- fix: address SonarCloud - log catch blocks, remove non-null assertion (f6548d8)
- fix: prevent SIGSEGV by draining active completion before context release (b531e1f)
Chores
- chore: bump version to 0.0.65 [skip ci] (1500143)
Full Changelog: v0.0.64...v0.0.65
Off Grid v0.0.64
What's Changed in v0.0.64
Features
- feat: stop showing share prompt after engagement, add community links to Settings (d92fca3)
- feat: add share prompt to encourage GitHub stars and X shares (0c90e0c)
Bug Fixes
- fix: make generation count increments atomic (23454d6)
- fix: add top padding to onboarding sheet progress bar (8d77bba)
- fix: prevent QNN image model failures on non-Qualcomm and older devices (#99) (05658e0)
- fix: ios builds should be triggerable through scripts/release.sh as well; (3d025e2)
Refactors
- refactor: reduce test duplication in SharePromptSheet tests (ea20948)
- refactor: address Gemini review - type safety, named constants, extract helper (1cda1bd)
Chores
- chore: bump version to 0.0.64 [skip ci] (e41b173)
Other
Full Changelog: v0.0.63...v0.0.64