What's Changed
- feat: add MiniMax as a predefined cloud provider with M2.7 default by @octo-patch in #7738
- feat: replace Foundation Models Swift HTTP server with direct Rust FFI via fm-rs by @dev-miro26 in #7781
- fix: add pointer cursor to tool header when hovering by @bytrangle in #7785
- docs: changelog for v0.7.9 by @Vanalite in #7795
- chore: resolve conflict of main & release v0.7.9 by @Vanalite in #7797
- chore: merge release v0.7.9 to main by @Vanalite in #7798
- fix: Making Makefile compilable from powershell Windows by @thewulf7 in #7771
- Chore/update template windows ci by @Minh141120 in #7805
- fix: resolve MCP stdio transport disconnect and add auto-reconnect by @dev-miro26 in #7791
- feat: add assistant chat button and fix random assistant issue by @markmehere in #7750
- fix: latest model toast check with better logic by @Vanalite in #7806
- feat: add /v1/orchestrations for server-side MCP tool execution by @claytonlin1110 in #7800
- feat: add GUI toggle for server-side tool execution on /chat/completi… by @claytonlin1110 in #7808
- fix: auto-approve internal RAG tools for embedded documents by @claytonlin1110 in #7809
- docs: require screenshot or video record by @Vanalite in #7811
- fix: prevent data loss on app reload by @linuxid10t in #7810
- Fix OpenAI chat crash in web runtime (
invokeundefined) by @dataCenter430 in #7815 - feat: paragraph-level Edit with AI for assistant markdown by @claytonlin1110 in #7812
- Update README to fix build commands by @SuperCowProducts in #7829
- Add Korean localization by @hooray804 in #7767
- Add translation to Catalan language by @anebot in #7319
- fix: missing redirects by @louis-jan in #7837
- feat: orchestrate MCP tools - route servers, avoid loading all tools by @dataCenter430 in #7793
- feat: auto-summarize thread titles after first response with cancellable background inference by @statxc in #7816
- fix: align KV cache default settings with actual runtime behavior by @linuxid10t in #7832
- feat: add configurable token limits and auto-compact for remote model providers by @dev-miro26 in #7799
- feat: enhance Tauri opener service for Linux file exploration by @Dexterity104 in #7827
- feat(gguf): fix model compatibility heuristic for Apple Silicon unified memory by @dataCenter430 in #7842
- Update Settings sidebar grouping and rename MCP to Connectors by @claytonlin1110 in #7839
- feat/fix: add regenerate button on failed message responses by @linuxid10t in #7844
- Updated Arm64 linux build instructions for latest app release + GPU acceleration by @SuperCowProducts in #7841
- fix: let users scroll and read thinking content during streaming without being interrupted by @bittoby in #7843
- chore: update icon privacy and code claude by @urmauur in #7853
- fix: improve model selection bar usability by @claytonlin1110 in #7852
- fix: model capability toggles resetting after restart in edit model settings by @EndlessLucky in #7819
- chore: take back hardware setting menu by @urmauur in #7860
- feat: add highlight on dragabble area and also add cursor change by @corevibe555 in #7830
- feat: add optional health check auto-restart for crashed model sessions by @claytonlin1110 in #7855
- feat: clarify that models are stored in appdata too by @abitrolly in #7866
- feat(mcp): optional lightweight router model for MCP tool routing by @dataCenter430 in #7846
- docs: update notes for the openclaw discontinuation by @Vanalite in #7873
- fix: show message timestamps by @corevibe555 in #7872
- fix: display message timestamps in local timezone by @urmauur in #7876
- feat: queue messages during streaming with auto-send, two-stage stop and editable pending chips in input area by @statxc in #7836
- feat: allow retrieving last typed message by pressing up arrow key by @bittoby in #7867
- feat: add API key fallbacks with automatic rotation by @claytonlin1110 in #7877
- fix: ctx_size overflow causing model load failure after reopening chat by @EndlessLucky in #7879
- docs: update cli doc with correct commands by @Vanalite in #7887
- fix: configurable toast placement by @claytonlin1110 in #7886
- feat: store all user settings in local files instead of browser localStorage by @bittoby in #7821
- fix: normalize tool parameter schemas missing type by @smartcoder0777 in #7854
- Create .gitattributes to suppress local Cargo.lock diffs by @DuncanBetts in #7884
- feat: add options to preserve user data during factory reset by @dev-miro26 in #7858
- feat(mcp): routing telemetry, locale strings, and telemetry docs by @dataCenter430 in #7875
- feat: implement initial Chain of Thought by @qnixsynapse in #7897
- fix: avoid CoT wrapper when group has no reasoning parts by @qnixsynapse in #7899
- feat: expand supported file types for document attachments to include many other extensions by @T03N in #7859
- fix: hide llama.cpp backend update prompt when provider is disabled by @smartcoder0777 in #7906
- fix: responsive setting by @urmauur in #7909
- fix: verify stdio MCP tools/list before emitting ready event by @jdmills-edu in #7892
- fix: handle pdf parser panic and enforce file size limit by @github-roushan in #7157
- fix: remove font style last used assistant options by @urmauur in #7910
- fix: add Flatpak CUDA library path discovery and GL extension support for NVIDIA GPU access by @bittoby in #7905
- fix(desktop): persist app config in Tauri app data dir by @EndlessLucky in #7903
- chore: Fix warnings and move foundation models to MacOS only by @qnixsynapse in #7923
- fix: don't select CUDA backend if GPU has insufficient memory by @abitrolly in #7894
- fix: restore no-mmproj-offload flag wiring for multimodal models (#7924) by @owldev127 in #7925
- docs: add Chinese translation (README.zh.md) by @JasonYeYuhe in #7745
- fix: improve llama.cpp context meter for tool-heavy chats by @smartcoder0777 in #7913
- fix: centralize Jan data folder path resolution (#7522) by @owldev127 in #7929
- fix: remove core default permissions to unblock Tauri dev build by @EndlessLucky in #7902
- fix: restore Gemini SDK adapter for MCP tool calls (#7535) by @owldev127 in #7927
- refactor: extract duplicated window instance object into helper by @bitcompass in #7938
- feat: File attachment progress bar by @dataCenter430 in #7942
- fix: embeddings/inline inject ux by @qnixsynapse in #7963
- CI: Add Rust coverage job to CI workflows by @qnixsynapse in #7964
- fix(web): detect real Tauri runtime on localhost by @EndlessLucky in #7962
- fix: prevent long non-breaking URLs from overflowing project view (#7… by @web-dev0521 in #7961
- test: add comprehensive JS test coverage by @qnixsynapse in #7970
- Hide Gemma models reasoning tags by @kirsenn in #7948
- fix: normalize MCP tool schemas for strict provider validation (#7017) by @owldev127 in #7941
- fix: restore MCP startup error dialog (#7038) by @owldev127 in #7940
- fix: prevent CUDA paths from being overwritten by library path setup by @qnixsynapse in #7978
- docs: add Japanese README by @eltociear in #8001
- fix: prevent dual download toast and "stuck at Initializing" symptom by @qnixsynapse in #7994
- docs: remove Connectors section from landing page by @qnixsynapse in #7989
- fix(server): allow any host when binding to 0.0.0.0 by @web-dev0521 in #7979
- feat: add support for Hindi language by @tejasashinde in #8009
- fix(sidebar): reduce left sidebar max width to prevent content cramping by @octo-patch in #7990
- refactor: extract model transformation helpers in threads service by @bitcompass in #7955
- chore: remove unused thread-scroll default constant and type guard by @bitcompass in #8022
- test: add more test coverage by @qnixsynapse in #7988
- refactor: deduplicate Tauri invoke_handler command registration #7976 by @enjoyandlove in #7977
- fix: manual install backend by @qnixsynapse in #8062
- feat: move backend download/management logic to Rust plugin and add deps verification by @qnixsynapse in #8026
- chore: remove commented-out toast notification code in chat-session-store by @dev-miro26 in #8079
- feat(llamacpp): expand server flags + wire llamacpp-only sampling params by @qnixsynapse in #8099
- refactor: add formatBytes helper by @mykh-hailo in #7982
- refactor: consolidate CUDA download logic in llamacpp backend by @bitcompass in #7954
- test: fix flaky SecurityConfigDialog tab/content races by @qnixsynapse in #8101
- chore: remove Apple Foundation Models integration by @qnixsynapse in #8120
- feat: split provider list into local and remote sections by @qnixsynapse in #8126
- feat: add tooltip and bulk delete for downloaded models by @qnixsynapse in #8119
- fix: ship mlx-swift Cmlx bundle with default.metallib by @qnixsynapse in #8132
- fix: restore pre-CoT reasoning duration + prevent action flicker during tool calls by @qnixsynapse in #8133
- ci: increase timeout to fix some failing tests on Windows runner by @qnixsynapse in #8134
- Feat: llamacpp router mode by @qnixsynapse in #8130
- fix: keep in-flight work alive across thread navigation by @qnixsynapse in #8137
- feat: prompt user on llama-server shutdown when models are busy by @qnixsynapse in #8139
- feat: inline MCP approval, citation cards, and RAG grounding markers by @qnixsynapse in #8140
- feat: clearer variants, local fit check, and download lifecycle fixes by @qnixsynapse in #8141
- chore: upgrade Vercel AI SDK to v6 and harden remote provider workflow by @qnixsynapse in #8142
- fix: vision-aware attachments, orphan tool-call recovery, Groq reasoning fix, table export polish, etc by @qnixsynapse in #8150
- fix: strip identity preamble on upgrade from v2 default prompt in assistant by @qnixsynapse in #8155
- revert: default KV cache K/V type back to f16 by @qnixsynapse in #8151
- fix: restore hub fit badge, bump mlx-swift, fix stuck download UI in mlx provider by @qnixsynapse in #8153
- fix: repair llamacpp/hardware ACL by @qnixsynapse in #8158
- fix: humanize project file upload errors by @qnixsynapse in #8161
- fix: persist file ingestion progress + cleaner citations and spell check by @qnixsynapse in #8162
- fix: tool-call schemas, predefined provider base_url, i18n by @qnixsynapse in #8166
- chore: update llamacpp settings by @qnixsynapse in #8168
New Contributors
- @octo-patch made their first contribution in #7738
- @thewulf7 made their first contribution in #7771
- @claytonlin1110 made their first contribution in #7800
- @linuxid10t made their first contribution in #7810
- @hooray804 made their first contribution in #7767
- @anebot made their first contribution in #7319
- @Dexterity104 made their first contribution in #7827
- @EndlessLucky made their first contribution in #7819
- @corevibe555 made their first contribution in #7830
- @abitrolly made their first contribution in #7866
- @smartcoder0777 made their first contribution in #7854
- @DuncanBetts made their first contribution in #7884
- @T03N made their first contribution in #7859
- @jdmills-edu made their first contribution in #7892
- @owldev127 made their first contribution in #7925
- @JasonYeYuhe made their first contribution in #7745
- @bitcompass made their first contribution in #7938
- @web-dev0521 made their first contribution in #7961
- @kirsenn made their first contribution in #7948
- @tejasashinde made their first contribution in #8009
- @enjoyandlove made their first contribution in #7977
Full Changelog: v0.7.9...v0.8.0