v0.8.4

janhq/janv0.8.4Jul 23, 2026by github-actions[bot]

AI Summary

This release introduces a major architectural shift by migrating settings and credentials to a backend-managed store for improved security. It includes native web search support, enhanced chat reasoning trace visibility, and various bug fixes and desktop enhancements for macOS.

Key Highlights

  • Settings and credentials migrated from localStorage to a backend-managed store with automatic migration.
  • Native web search and web fetch capabilities added via Tauri plugin integration.
  • New toggle to fold interim text into the reasoning trace for cleaner chat views.
  • macOS desktop enhancements including hide-on-close behavior and tray integration improvements.
  • OpenAI-compatible translating gateway and Responses API support.

Breaking Changes

  • Settings and credentials persistence mechanism changed from webview's localStorage to a backend store.

New Features

  • Toggle for folding interim text into reasoning trace.
  • Native web search and web fetch via tauri-plugin-websearch.
  • OpenAI-compatible translating gateway + Responses API + unified reasoning.
  • Token counter for remote and MLX providers.
  • Per-model chat template kwargs for llamacpp.
  • Bundle built-in extensions into the app binary.

Full Release Notes

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

## New Contributors
* @mahirhir made their first contribution in https://github.com/janhq/jan/pull/8348
* @nkulshre-amd made their first contribution in https://github.com/janhq/jan/pull/8390

**Full Changelog**: https://github.com/janhq/jan/compare/v0.8.3...v0.8.4