github esengine/DeepSeek-Reasonix desktop-v1.0.0
Reasonix Desktop v1.0.0

5 hours ago

What's Changed

  • fix: skip saving empty conversations to history when switching workspace/model by @AtmoOmen in #2401
  • [v2] Stabilize tool schema ordering for prompt cache reuse by @SivanCola in #2402
  • [v2] Canonicalize MCP JSON schemas for stable cache prefixes by @SivanCola in #2403
  • fix(gitignore): update v2 build ignores by @PorunC in #2415
  • test(event): add comprehensive unit tests for event package by @HUQIANTAO in #2417
  • docs: add CONTRIBUTING.md and update .gitignore by @HUQIANTAO in #2427
  • feat(glob): add ** recursive pattern support by @HUQIANTAO in #2423
  • fix(serve): gate CORS behind explicit origin, wire RunGraceful with signal handling by @HUQIANTAO in #2459
  • fix(openai): drain error response body for HTTP connection reuse by @HUQIANTAO in #2450
  • feat(desktop): add release pipeline and self-updater by @esengine in #2466
  • fix(plugin): log prompt/resource listing failures in Host.Add by @HUQIANTAO in #2448
  • fix(subagent): tighten inherited tool boundaries by @paradoxSCH in #2434
  • feat(desktop): use a fresh signing key; add genkey/verify by @esengine in #2467
  • fix: replace silent error discards with structured logging by @HUQIANTAO in #2421
  • test(hook): add comprehensive runner, format, and payload tests by @HUQIANTAO in #2430
  • test(memory): add tests for splitFrontmatter, slug, oneLine, render, and store edge cases by @HUQIANTAO in #2437
  • test(diff): add edge case tests for splitLines, isBinary, CRLF, large files, and helpers by @HUQIANTAO in #2438
  • test(billing): add edge case tests for symbol, Display, and Fetch error paths by @HUQIANTAO in #2439
  • test(permission): add edge case tests for ParseDecision, matchGlob, Subject, and rememberRule by @HUQIANTAO in #2440
  • test(jobs): add timeout, edge case, and helper tests by @HUQIANTAO in #2441
  • test(command): add edge case tests for splitFrontmatter, Render, and Load by @HUQIANTAO in #2442
  • test(desktop): add wire.go and sessions.go tests by @HUQIANTAO in #2452
  • test(serve): add endpoint tests for cancel, approve, new, compact, index, malformed input by @HUQIANTAO in #2453
  • test(agent): add comprehensive session, save, load, and preview tests by @HUQIANTAO in #2454
  • test(builtin): add dedicated tests for read_file, ls, glob, and grep tools by @HUQIANTAO in #2432
  • test(builtin): add dedicated tests for write_file, edit_file, multi_edit, and confine by @HUQIANTAO in #2433
  • feat(provider): add Anthropic Messages API provider by @esengine in #2469
  • feat(provider): support Anthropic extended thinking round-trip by @esengine in #2471
  • test(provider): add comprehensive unit tests for provider package by @HUQIANTAO in #2418
  • test(skill): add edge case tests for IsValidName, splitFrontmatter, parseAllowedTools, parseRunAs, and helpers by @HUQIANTAO in #2443
  • test(acp): add tests for newSessionID, mcpSpecs, transcriptPath, and acpSession by @HUQIANTAO in #2445
  • test(cli): add tests for visibleWidth, padRight, and boxed helpers by @HUQIANTAO in #2455
  • test(desktop): add workspace.go and settings_app.go helper tests by @HUQIANTAO in #2458
  • fix(ci): update golangci-lint v2 config, move sandbox tests to platform-specific files by @HUQIANTAO in #2444
  • feat(sandbox): add bubblewrap support for Linux with enforce-mode warning by @HUQIANTAO in #2447
  • refactor: extract shared frontmatter parser into internal/frontmatter by @HUQIANTAO in #2446
  • refactor: deduplicate compactArgs between agent and cli by @HUQIANTAO in #2449
  • fix(agent): break the same-tool, same-error retry loop by @esengine in #2474
  • style: gofmt storm_test.go to unblock CI by @esengine in #2475
  • fix(tui): add shift+enter to InsertNewline key binding, with test by @JimmyDaddy in #2425
  • feat(compaction): surface context compaction as a card across CLI, desktop, headless by @esengine in #2477
  • fix(ask): reject blank option labels by @XTLine in #2426
  • feat(subagent): configure skill model overrides by @GTC2080 in #2451
  • fix(cli): /model switch breaks terminal + garbles streaming output by @HUQIANTAO in #2472
  • feat(hooks): add lifecycle hook events + compaction focus & headroom by @esengine in #2478
  • docs: drop external-agent references from two comments by @esengine in #2480
  • feat(outputstyle): selectable persona/tone output styles by @esengine in #2482
  • Clarify CLI Tool Approval Prompts by @SivanCola in #2484
  • feat(tool): add notebook_edit for Jupyter .ipynb cells by @esengine in #2491
  • Add release cache-hit guard by @SivanCola in #2470
  • fix(tool): repair notebook_edit test compile error by @esengine in #2492
  • Conversation Branch Tree for Chat Sessions / 对话分支树管理 by @SivanCola in #2460
  • fix(cli): /model switch breaks terminal + garbles streaming output by @HUQIANTAO in #2486
  • Fix desktop transcript streaming autoscroll by @SivanCola in #2487
  • feat(tool): add slash_command for model-invoked slash commands by @esengine in #2494
  • [v2] Skip approval for known read-only bash commands by @SivanCola in #2411
  • [v2] Add range and Go symbol deletion tools by @SivanCola in #2410
  • test(builtin): make resolveIn absolute-path test cross-platform by @esengine in #2500
  • [v2] Add DeepSeek thinking effort controls by @SivanCola in #2408
  • build: add Go-native git hooks (make hooks) by @esengine in #2505
  • test: make path and codegraph tests Windows-portable by @esengine in #2507
  • feat(desktop): render LaTeX math in markdown via KaTeX by @esengine in #2509
  • fix(desktop): render LaTeX with ( ) and [ ] math delimiters by @esengine in #2510
  • fix(desktop): pin vite dev server to 127.0.0.1 (fix Windows blank window) by @esengine in #2511
  • fix(desktop): protect [ spacing and swap | for \vert in math (#2017 parity) by @esengine in #2514
  • fix(desktop): save provider/config to global user config, surviving workspace switch by @esengine in #2516
  • Support image paste attachments in CLI by @SivanCola in #2508
  • Add secure desktop image attachments by @SivanCola in #2504
  • feat(cli): read clipboard images on Windows and Linux by @esengine in #2525
  • TUI: alt-screen transcript viewport with scrollbar, selection, and copy by @esengine in #2524
  • fix(model): skip providers without an API key in all model pickers by @AtmoOmen in #2519
  • feat(cli): in-chat /resume to switch saved sessions live by @esengine in #2531
  • fix(tool): make the shell tool work on Windows without bash by @esengine in #2532
  • test(sandbox): cover no-bash → PowerShell fallback deterministically by @esengine in #2533
  • test(cli): exercise /resume through the slash dispatcher end-to-end by @esengine in #2534
  • fix(sandbox): make shell-resolution tests host-independent by @esengine in #2536
  • Keep MCP startup resilient to server failures by @SivanCola in #2502
  • feat(plan): layered two-level plans (phases → sub-steps) by @esengine in #2539
  • Support manual connect for configured MCP servers by @SivanCola in #2503
  • fix(plan): parse numbered-heading phases so layering survives real plans by @esengine in #2543
  • feat(desktop): indent layered-plan sub-steps in the todo panel by @esengine in #2544
  • test(boot): disable codegraph in the MCP-failure test by @esengine in #2545
  • test(desktop): make sessionTitlesPath test platform-agnostic by @esengine in #2546
  • fix(cli): CJK bold (**) not rendering — goldmark right-flanking workaround by @HUQIANTAO in #2476
  • fix(desktop): shorten Windows cwd in the status breadcrumb by @esengine in #2547
  • fix: fold long pasted text in composers by @SivanCola in #2517
  • feat(cli): collapse thinking with a live marker + duration summary by @esengine in #2562
  • feat(desktop): MCP & Skills drawer with connector management by @esengine in #2566
  • feat(agent): segment read-only tool batch execution by @LegGasai in #2541
  • fix: @目录引用递归列出子目录 + glob简单模式自动递归回退 by @xinrenH in #2506
  • [v2] Add reusable mock provider for agent tests by @SivanCola in #2412
  • feat(tui): require double Ctrl+C to quit when idle, preventing accidental exits by @lanshi17 in #2501
  • fix(provider): repair dangling tool_call pairing before send by @esengine in #2567
  • feat(agent): verify complete_step evidence receipts by @GTC2080 in #2540
  • Auto Plan Gate for Complex Tasks / 复杂任务自动计划门 by @SivanCola in #2457
  • fix(agent): stop auto-compaction re-firing every turn by @esengine in #2571
  • feat(agent): verify complete_step steps against todos by @GTC2080 in #2569
  • feat: add PostLLMCall hook for post-model-turn reasoning transform by @i1j in #2568
  • feat(desktop): async startup — non-blocking boot.Build + parallel plugin init by @HUQIANTAO in #2563
  • feat(tui): add /quit slash command for session exit by @lanshi17 in #2577
  • feat(ci): e2e benchmark bot triggered by a PR comment by @esengine in #2574
  • fix(ci): build e2e harness from default branch, not PR head by @esengine in #2584
  • feat(ci): tune diff test-gen (step cap, clearer report) by @esengine in #2587
  • feat(agent): guard todo completion transitions by @GTC2080 in #2576
  • feat(ci): surface generated tests + per-test differential by @esengine in #2592
  • feat(ci): harden e2e diff bot (coverage, regression, retries, safety) by @esengine in #2593
  • feat(ci): mutation testing for diff bot (behavioral signal for additive PRs) by @esengine in #2600
  • v2新桌面 by @SivanCola in #2561
  • feat(memory): forget tool, fallible-recall framing, richer index by @esengine in #2599
  • fix: MiMo reasoning_content 不需要回传 — 实测验证 by @Bernardxu123 in #2613
  • Fix plan approval blocking the proposal by @SivanCola in #2616
  • chore(desktop): tidy plan-approval dock follow-ups by @esengine in #2619
  • fix(control): surface errors from /branch and /switch slash commands by @lanshi17 in #2610
  • fix(boot): detach codegraph background install from the Build context by @lanshi17 in #2612
  • fix: bash tool WSL launcher probe fallback to Git Bash by @Bernardxu123 in #2620
  • Prefer Numeric Choices in CLI Approval Prompts by @SivanCola in #2601
  • fix(sandbox): bound the bash WSL probe with a timeout by @esengine in #2625
  • Remove No Project option from workspace menu by @SivanCola in #2624
  • chore(desktop): drop orphaned composer.noProject locale string by @esengine in #2626
  • Refine MCP and Skills Drawer Hierarchy by @SivanCola in #2621
  • feat(desktop): dock regular tool approvals above the composer by @esengine in #2627
  • Fix typed nil interface panics by @SivanCola in #2607
  • feat(agent): bind todo completion receipts to signed todo by @GTC2080 in #2604
  • Improve MCP drawer details and skill metadata badges by @SivanCola in #2634
  • Refine desktop workspace panel layout by @SivanCola in #2629
  • Improve Composer Handling for Long Pasted Text by @SivanCola in #2633
  • chore(desktop): drop dead MCP group-title strings and CSS by @esengine in #2640
  • chore(desktop): drop committed workspace layout demo gif by @esengine in #2639
  • chore(desktop): clean up after composer paste preview by @esengine in #2638
  • feat(desktop): refine memory drawer management by @SivanCola in #2635
  • chore(desktop): tighten jumpTo comment by @esengine in #2641
  • feat(attach): file drag attach + inline image tokens (+ classifier panic fix) by @esengine in #2647
  • feat: native-Windows steering + optional ripgrep search engine by @esengine in #2650
  • feat: restore GBK/GB18030 file encoding support (#2637) by @lanshi17 in #2645
  • test(builtin): make GBK round-trip test self-contained by @esengine in #2655
  • feat(grep): native search honors .gitignore by @esengine in #2656
  • fix(desktop): don't submit on IME confirm Enter by @dcs02280653-collab in #2632
  • feat(grep): nested .gitignore + skip hidden files (match ripgrep) by @esengine in #2660
  • feat(deepseek): support thinking effort controlsFeat/deepseek thinking effort by @kabaka9527 in #2648
  • feat(grep): complete .gitignore parity — nested negation + core.excludesFile by @esengine in #2664
  • feat(cli): add doctor diagnostics command by @XTLine in #2631
  • fix(doctor): redact home directory from report paths by @esengine in #2667
  • fix(desktop): compact approval shelf by @SivanCola in #2663
  • fix(desktop): repair module build and add CI coverage by @esengine in #2668
  • chore(desktop): drop approval i18n keys orphaned by #2663 by @esengine in #2669
  • fix: resolve stdio MCP commands with effective PATH by @SivanCola in #2665
  • fix(desktop): keep transcript pinned when approval shelf appears by @SivanCola in #2670
  • ci: run the root test matrix on windows-latest by @esengine in #2674
  • refactor(desktop): dedupe transcript re-pin logic from #2670 by @esengine in #2676
  • fix(config): merge [[plugins]] across config files instead of replacing by @esengine in #2684
  • fix(bash): suppress the console window for shell commands on Windows by @esengine in #2686
  • feat(desktop): surface crashes instead of blanking to a white screen by @esengine in #2691
  • fix(desktop): wire up tool_progress so live bash output doesn't blank the app by @esengine in #2693
  • fix(memory): deduplicate symlinked memory docs by @lizhengwu in #2688
  • style(memory): drop redundant docSeen.add comment by @esengine in #2695
  • fix(io): copy-fallback for atomic writes on cross-device (EXDEV) rename by @esengine in #2696
  • Manage Agent Skill Sources in Desktop by @SivanCola in #2692
  • refactor(config): share skill-path canonicalization, fold case on Windows by @esengine in #2698
  • feat(plugin): unify StartAll/StartAvailable with timeout & concurrency cap by @SivanCola in #2675
  • feat: add configurable network proxy settings by @SivanCola in #2690
  • Fix session list jumping on resume by @SivanCola in #2697
  • refactor(desktop): share sessionActivityTime helper by @esengine in #2699
  • feat(plugin): defer prompts/resources to a background phase by @esengine in #2701
  • fix(cli): recall submitted input with arrow keys by @esengine in #2700
  • feat(proxy): auto-detect the Windows system proxy (PAC/WPAD/IE) by @esengine in #2702
  • fix(skill): require relevant inline skill use, keep subagent judgment-based by @esengine in #2704
  • feat(plugin): persist handshake schema & startup latency to user cache by @esengine in #2703
  • Polished Slash Command Views by @SivanCola in #2521
  • Define a cohesive desktop light and dark theme system by @SivanCola in #2636
  • chore: clear staticcheck findings across internal packages by @esengine in #2706
  • ci: add a -race job and run the prompt-cache prefix guard by @esengine in #2707
  • fix(desktop): restore history reasoning and running previews by @SivanCola in #2705
  • fix(doctor): report effective sandbox availability, not just mode by @esengine in #2708
  • fix(doctor): surface warnings at the top of the report by @esengine in #2710
  • test: goroutine-leak guard (goleak) + fix the leaks it found by @esengine in #2709
  • feat(plugin): tier-based MCP loading with cache-aware lazy placeholders by @esengine in #2713
  • feat(tui): clear composer on single Ctrl+C when input is non-empty by @lanshi17 in #2712
  • fix(jobs): mark a killed job Killed synchronously by @esengine in #2715
  • fix(cli): copy via OSC 52 when the platform clipboard tool fails (tmux/SSH) by @esengine in #2719
  • fix(desktop): allow read-only history preview while running by @SivanCola in #2711
  • feat: reasoning effort controls (/effort) by @esengine in #2722
  • fix(tools): skip macOS TCC-protected dirs in recursive glob/grep walks by @esengine in #2723
  • test(bash): widen cancel/kill timing margins to stop load flakes by @esengine in #2724
  • perf(tools): windowed read_file paging + cached tool schema canonicalization by @esengine in #2725
  • feat(cli): add theme switching by @esengine in #2727
  • feat(cli): interactive /resume picker with keyboard navigation by @esengine in #2726
  • fix(control): don't draft or gate on a plan in bypass/YOLO mode by @esengine in #2728
  • feat(cli): show a live "working · Ns" line under a running tool by @esengine in #2729
  • fix(cli): let Esc cancel a running turn even with the completion menu open by @esengine in #2733
  • fix: stop Windows console-window flashing + surface unusable-model cause by @esengine in #2736
  • desktop: per-turn autosave + transcript render perf by @esengine in #2738
  • fix(cli): setup wizard — fetch /models, dedupe key prompts, stable entry names by @esengine in #2739
  • feat(theme): wire mode and accent themes by @SivanCola in #2734
  • fix(cli): don't OSC-probe the terminal on a runtime /theme auto by @esengine in #2740
  • fix(desktop): complete the live-stream state so the frontend builds by @esengine in #2741
  • fix(cli): setup always offers the built-in provider catalog (DeepSeek + MiMo) by @esengine in #2743
  • fix(cli): chain into argument menu right after accepting a command by @esengine in #2744
  • feat(serve): overhaul HTTP SSE sidebar and add session titles by @lanshi17 in #2742
  • fix(serve): cache session titles and match current session on Windows by @esengine in #2745
  • Manage Recent Sessions from the Desktop Sidebar by @SivanCola in #2746
  • feat(cli): render LaTeX math as Unicode in chat output by @esengine in #2757
  • refactor(desktop): validate session path once on delete by @esengine in #2756
  • feat(desktop): first-run onboarding overlay for default provider API key by @Bernardxu123 in #2752
  • feat(agent): enforce project instruction receipts by @GTC2080 in #2753
  • refactor(desktop): trim onboarding comments, fix stale timeout note by @esengine in #2759
  • fix(serve): sidebar resume/compact/model-switch with a race-safe controller swap by @esengine in #2758
  • Add CLI Language Switching by @SivanCola in #2760
  • feat(desktop): workspace Add to Chat context + Changed view by @esengine in #2762
  • style(config): trim SetLanguage doc comment to one line by @esengine in #2763
  • feat(net): exponential-backoff retry with clear error UX by @esengine in #2765
  • fix(control): stop hash-prefixed prompts being swallowed by memory quick-add by @esengine in #2767
  • fix(desktop): remove redundant tooltips by @SivanCola in #2769
  • feat(agent): gate final-answer readiness (with mutation-driven test coverage) by @esengine in #2771
  • fix(desktop): restore full-path hover on workspace tree rows by @esengine in #2773
  • fix(test): make Windows statusline and symlink tests portable by @wade19990814-hue in #2772
  • feat(release): npm + Homebrew distribution for the CLI by @esengine in #2775
  • feat(desktop): commit explicit Windows installer icon.ico by @esengine in #2776
  • fix(plugin): drain detached MCP stats writers in Host.Close by @esengine in #2777
  • fix(desktop): stamp the release version into the build by @esengine in #2779
  • fix(desktop): keep the NSIS installer script ASCII by @esengine in #2780
  • fix(desktop): use a numeric version for the installer/versioninfo by @esengine in #2781
  • fix(release): don't push the Homebrew cask for prereleases by @esengine in #2782
  • fix(desktop): bump CI pnpm to 10 for the frontend build by @esengine in #2783
  • fix(release): distinguish CLI vs desktop releases; shield updater from prereleases by @esengine in #2784
  • fix(desktop): build a universal macOS app, drop the Intel runner by @esengine in #2787
  • docs(changelog): mark 1.0.0 released by @esengine in #2789

New Contributors

Full Changelog: https://github.com/esengine/DeepSeek-Reasonix/commits/desktop-v1.0.0

Don't miss a new DeepSeek-Reasonix release

NewReleases is sending notifications on new releases.