Skip to content

0.8.4

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Jul 06:29
5f30aee

Migration

Settings and credentials now live in a backend-managed store.

Provider settings and credentials previously persisted in the webview's localStorage. In 0.8.4, Jan reads and writes them from a backend-managed store instead (secrets go to the OS keyring). Your existing settings and API keys are copied over automatically on first launch - no manual action is needed, and from this version on all new changes are saved to the backend store.

Your old localStorage data is not deleted - it's kept as a snapshot so you can downgrade to a pre-0.8.4 build and still have your previous settings. Any changes you make in 0.8.4+ live only in the backend store, so a downgrade sees the older snapshot, not your latest settings.


What's Changed

  • chore(flatpak): add 0.8.3 release notes to appdata by @qnixsynapse in #8343
  • docs: update changelogs for v0.8.3 and update documentation by @qnixsynapse in #8336
  • Merge release/v0.8.3 to main by @qnixsynapse in #8344
  • i18n(ja): update Japanese translations (#8264) by @mahirhir in #8348
  • i18n(ja): complete common.json translations and fix terminology (#8264) by @mahirhir in #8349
  • i18n(ja): complete settings.json translations (#8264) by @mahirhir in #8352
  • fix(markdown): force code blocks LTR in RTL language context by @qnixsynapse in #8350
  • feat(chat): add toggle for folding interim text into reasoning trace by @qnixsynapse in #8363
  • fix(rag): repair embeddings, stop chat-model reloads, and parse more PDFs by @qnixsynapse in #8360
  • ci: close issues inactive for over 180 days by @qnixsynapse in #8366
  • ci: grant actions:write to stale workflow for state persistence by @qnixsynapse in #8377
  • fix(chat): stop persisting detached assistant replies in branched threads by @qnixsynapse in #8376
  • feat(settings): move settings/credentials off localStorage to backend store by @qnixsynapse in #8388
  • fix(params): coerce numeric assistant params from string to number by @qnixsynapse in #8386
  • fix: use snake case for ADL enum in get_gpu_usage by @nkulshre-amd in #8390
  • fix(chat): stop MCP tool-approval popup from hanging; move transient approval state off disk by @qnixsynapse in #8391
  • API key rotation for Gemini by @jjchen01 in #8408
  • fix(security): bump handlebars to 4.7.9 to clear RCE advisory by @qnixsynapse in #8395
  • fix(chat): ignore custom SSE event types in OpenAI-compatible streams by @qnixsynapse in #8392
  • feat: OpenAI-compatible translating gateway + Responses API + unified reasoning by @qnixsynapse in #8423
  • fix: Stabilize chat prefix caching, restore cloud providers, unify logging (v0.8.4) by @qnixsynapse in #8425
  • fix(mcp): guard against duplicate serve() on streamable-http MCP servers by @thinhlpg in #8435
  • fix(providers): send anthropic-version on model-list fetch by @qnixsynapse in #8433
  • fix(desktop): macOS hide-on-close; hide-to-tray when Local API Server runs by @qnixsynapse in #8436
  • feat(extensions): bundle built-in extensions into the app binary and update tests by @qnixsynapse in #8437
  • feat(llamacpp): per-model chat template kwargs by @qnixsynapse in #8441
  • feat: token counter for remote/MLX providers + chat & inference fixes by @qnixsynapse in #8456
  • fix(chat): preserve AbortError identity when stopping mid model-load by @thinhlpg in #8443
  • fix(chat): stop hiding the llama.cpp token counter during chat by @qnixsynapse in #8461
  • feat(web-search): native web_search/web_fetch via tauri-plugin-websearch by @qnixsynapse in #8464
  • fix: persist chain-of-thought duration in thread metadata by @qnixsynapse in #8474
  • refactor: centralize llamacpp extension lookup with scoped-name fallback by @qnixsynapse in #8487

New Contributors

Full Changelog: v0.8.3...v0.8.4