Skip to content

Releases: esengine/DeepSeek-Reasonix

Reasonix desktop-v0.53.0

27 May 05:13

Choose a tag to compare

Highlights

Force-summary respects the active model (#1979) — context-guard and stuck-state recovery no longer hard-code deepseek-v4-flash. Sessions on third-party DeepSeek-compatible endpoints (mimo, self-hosted, Azure forks) that don't expose flash now recover cleanly instead of crashing the summary turn.

Brave Search backend for web_search (#1916) — alternative to the existing Bing / Tavily / Ollama-cloud paths.

Desktop — workspace switcher (#1908) — multiple project roots in the sidebar, no relaunch required.

Desktop fixes — per-tab hook firing (#1984), pending-assistant clears on error so the spinner stops (#1985), /skill and /skills slash commands wired (#1978), context token meter refreshes per turn (#1964), preserve context across abort (#1938), \[ \] / \( \) math delimiters render in markdown (#1923), Windows path separator normalization (#1914), settings allow clearing base URL / editor (#1905), 余额显示支持多币种 (#1930).

Networkingweb_fetch falls back to DNS-over-HTTPS when system DNS returns RFC1918 / link-local addresses (#1944); doctor accepts a custom /models endpoint (#1972).

Truncation / encoding — slice boundaries align to UTF-16 codepoints (#1976, includes #1970); truncated-result-saver falls back to ~/.reasonix when rootDir is the FS root (#1974); lone surrogates sanitized in chat payloads (#1939).

Other/qq defaults to markdown replies (#1941); CardStream measure→render→measure loop broken (#1958); structured errorDetail propagation through loop / transcript / ACP (#1965); ink runtime fully in-tree as a workspace package (#1947); config saveApiKey overrides stale env (#1982); dashboard session refresh (#1917); New Chat label on one line (#1924).

Full changelog: CHANGELOG.md

Reasonix desktop-v0.52.0

26 May 13:22

Choose a tag to compare

fix(desktop): bump app bundle version to 0.52.0

Reasonix desktop-v0.51.0

25 May 16:59

Choose a tag to compare

desktop-v0.51.0

Reasonix desktop-v0.50.0

24 May 14:14

Choose a tag to compare

desktop-v0.50.0

Reasonix desktop-v0.49.0

22 May 17:29
6ea352f

Choose a tag to compare

reasonix desktop v0.49.0

Reasonix desktop-v0.48.1

21 May 13:54

Choose a tag to compare

Reasonix Desktop 0.48.1 — see CHANGELOG.md for the full notes.

Reasonix desktop-v0.48.0

20 May 14:59

Choose a tag to compare

chore(release): 0.48.0 — NO_PROXY, code intelligence, lifecycle round…

Reasonix desktop-v0.47.1

19 May 13:02

Choose a tag to compare

Reasonix desktop v0.47.1

Reasonix v0.47.0

19 May 05:54

Choose a tag to compare

Desktop matures. The Tauri app picks up the polish it was missing —
About modal with one-click update check, KaTeX math rendering in chat,
window/tab/session/scroll restore across relaunch, /compact /retry /btw
/feedback slash commands, per-message copy + file-export actions, QQ
settings entry, platform-aware keyboard shortcut hints. The auto-updater
now reads latest.json from the R2 mirror so an npm-only v* release
can no longer brick the in-app update banner; the banner also surfaces
download progress while the bundle pulls. Universal Node is bundled on
macOS so Intel Macs stop blank-screening at launch.

TUI — composer round two. Composer keys and visuals re-align with
Claude Code: rounded border, status row at the bottom, input-box
background fill, left stripe on user card. ctrl+r toggles verbose
(reasoning + raw tool I/O); esc-esc opens a rewind picker over the
last 5s; u undo is now gated to the same 5s window so stale taps
can't revert. SGR mouse wheel is on by default again, IME cursor stays
glued to , WelcomeBanner centers vertically on empty chats.

Search hardening. Regex now runs in a worker thread so a ReDoS
pattern can be terminated cleanly; worker deadline 5s → 60s and walk
deadline 15s → 120s for legitimately large repos. Tavily added as a
web_search backend — escape hatch when Mojeek 403s. search_content
gets a walk-level deadline and ESC preempts queued tool calls.

Claude-ecosystem compat. Reasonix now reads .mcp.json and
.claude/skills/ from the repo so existing Claude Code setups work
without a second copy; common skill fields (type/context/agent)
are aliased.

Other:

  • feat(embedding) batch OpenAI-compat embedding requests to respect
    provider batch limits
  • feat(memory) inject ancestor AGENTS.md into list_directory,
    not only read_file
  • perf(session) skip cross-workspace jsonls + byte-scan line count
    — sidebar list ~10× faster
  • feat(config) support pricing overrides and per-model rpm limits
  • feat(dashboard) new / switch / delete sessions in-place, no CLI
    bounce
  • fix(mcp) runtime schema validation for MCP server responses; ESC
    aborts hung handshakes during startup; surface the real bridge-
    failure reason in the dashboard
  • fix(cli) preserve flash-preset auto-escalate semantics
  • ci split desktop + npm releases into separate tag namespaces:
    v* → npm, desktop-v* → Tauri bundles

Reasonix v0.45.1

17 May 15:40
fd06db5

Choose a tag to compare

fix(chat): rust TUI input — setup capture, paste burst, Ctrl+V (#1129)

* fix(chat): rust TUI input — setup capture, paste burst, Ctrl+V

- Setup: rust now owns the keystroke buffer while setup_pending is
  Some. Previously every event was dropped via `continue`, so Ink's
  MaskedInput (which receives a null keystroke reader in integrated
  mode) sat on a screen that ate every keypress — Windows users (and
  any Mac user after the rc.2 eager-spawn change) couldn't enter
  their API key. Buffer is forwarded to Setup.handleSubmit via a new
  `setup-submit` event and a submitRef on the Setup component.

- Composer paste: track last_key_at and treat an Enter that arrives
  within 15ms of the previous key as paste-as-keystrokes, inserting
  '\n' literally instead of submitting. Bracketed paste is the happy
  path, but Apple Terminal (macOS default) and cmd.exe pre-ConPTY
  don't speak it, so multi-line pastes used to submit on the first
  '\n'. The same guard short-circuits Enter inside prompt_input
  (single-line, can't accept '\n') so paste bursts don't submit
  half-pasted answers.

- Ctrl+V: explicit clipboard paste via arboard::get_text in both
  composer and prompt_input. The only working paste path when
  bracketed paste is unavailable.

* fix(test): normalize tmp cwd via realpath on macOS

mkdtemp in /var/folders/... but process.cwd() after chdir resolves
to /private/var/folders/...; the spy compared the unresolved tmp
path against the resolved one and bare-routing tests failed on
every Mac. Resolve at setup so the assertion sees one path.

* chore(release): 0.45.1

* chore: rustfmt + sync package-lock.json to 0.45.1

- rustfmt: one-line match arm in integrated.rs (CI fmt --check fixed it)
- package-lock.json: regenerate so optional-deps resolve to 0.45.1 instead
  of the stale 0.44.2-rc.4 lock that was blocking `npm ci` on main

---------

Co-authored-by: yhh <yhh@yhhdeMac-mini.local>
Co-authored-by: reasonix <reasonix@deepseek.com>