github esengine/DeepSeek-Reasonix studio-v2.41.0
Reasonix Studio v2.41.0

latest release: v2.41.0
2 hours ago

本版本新增辅助会话、按需保存长粘贴、会话行快捷按钮、沙盒设备白名单等功能,并修复窄窗口布局、对比度、记忆召回和远控兼容等一批问题。

新增

  • 设置 → 模型偏好新增「命名模型」和按角色的推理强度:可以单独指定用哪个模型给会话起标题,并分别设置各角色的推理强度。关联 #11851 by @Guan0923。
  • 新增「辅助会话」:在主对话旁边问一个只读的小问题,用只读工具回答,不写进主对话、不改文件,关闭即丢弃。关联 #12927 fixed in #13128、#13128。
  • 上下文详情里每一类占用可以展开,看最大的几项(只显示大小和工具名,不含消息内容)。关联 #13052、#13143。
  • MCP 服务器在工具列表响应里给出 ttlMs 时,工具目录会在到期后自动重读(限制在 30 秒到 1 小时之间),不再只靠变更通知。关联 #13108。
  • 技能的 allowed-tools 现在也接受开放标准写法(空格分隔,如 Bash(git add:*) Read),原来的逗号分隔照常可用;括号内的分隔符属于同一条规则。关联 #13110。
  • reasonix doctor 现在会提示技能的名称、描述不符合 Agent Skills 开放标准(大写、连字符、超长、与目录名不一致),这些技能仍会正常加载。关联 #13110。
  • 设置 → 外观新增「会话行快捷按钮」:打开后,鼠标移到侧栏会话行上会显示「归档」「删除」按钮;默认关闭,两个操作仍在右键菜单里。关联 #13132。
  • 压缩被拒时,提示现在列出候选内容的构成(固定前缀、被保护的消息、摘要、最近回合各占多少),不再只说「候选仍高于触发线」。关联 #13148。
  • 反馈对话框新增「想法与讨论」入口,建议和想法可以发到 GitHub 讨论区,bug 和错误仍用发送。关联 #13141、#13155。
  • 新增 [sandbox] allow_devices:Linux 命令沙盒默认看不到宿主的设备节点(如显卡),现在可在用户级配置里用 /dev/nvidia* 这类白名单放进去;默认关闭,项目配置不能开。关联 #13157。
  • 撰写框里的长粘贴芯片新增「存为文件」:点了才把这段文字存成文件,消息里只带一段指针(行数、大小、路径、怎么读),原文不再随每个请求发送;不会自动存。关联 #13148、#13162。
  • 终端界面里折叠的长粘贴可以按 Ctrl+G 存成文件:发送时只带一段指针,不再把原文送给模型;不按就和以前一样整段发送。关联 #13148、#13166。

变更

  • ACP 的工具调用更新现在带上被调用的工具名。关联 #13114、#13130。
  • Linux 上 bubblewrap 已安装却不能创建命名空间(容器、受限内核)时,提示不再说「请安装」,而是说明真实原因和出路。关联 #13117、#13138、#13146。
  • 压缩前先预判:被保护的消息和最近回合本身就已超过触发线、摘要无论怎样都放不进去时,直接拒绝并说明构成,不再先花一次摘要调用。关联 #13148。

修复

  • 会话里召回过的记忆在会话外被修改或删除后,下一次召回会读到新内容(只重查上次命中的几条,不全量扫描)。关联 #12948 fixed in #13147。
  • 记忆目录因权限或存储故障无法读取时,现在明确报错,避免漏列历史版本、误报版本不存在,或根据不完整历史计算恢复版本号。关联 #12950 fixed in #13016 by @SivanCola。
  • Linux 上启动时不再把没人选过、也没说过话的启动目录(主目录)列成项目,删掉它重启后不会再回来。关联 #13107 fixed in #13127、#13127。
  • 要打开的文件不存在时,右侧面板现在明确提示「找不到该文件」,不再打开一片空白的预览页。关联 #13125、#13133。
  • 设置壁纸后,侧栏底部(钱包与用量、发送反馈、账号)不再多出一块发白的底,壁纸一直延续到最下面。关联 #13129、#13131。
  • 手机浏览器版本太旧、没有 X25519 加密时,远控现在改用经审计的软件实现继续连接(只在需要时才加载,约 24 KB),不再要求换浏览器。关联 #13140。
  • 重启后点以前的会话打不开时,提示现在区分原因:会话文件已不在、会话所在目录不在、或系统读不了该路径(并带上系统给的原因),不再一律说「无法解析该会话路径」。关联 #13152、#13159。
  • 窄窗口下界面不再重叠或被挤压:标签栏会换行,设置里的标签不再被压成一字一行,分段控件不再跑出面板,几处文字对比度提高到 AA。关联 #13169。
  • 窄窗口下的排版修正:活动步骤行的耗时与箭头不再被挤出,计量栏的子代理芯片收起文字保留数字,配置错误框的路径改为换行。关联 #13154、#13172。
  • 修复两处对比度不达 AA:开场页的「按任意键跳过」提示,和输入框上方「已更改文件」胶囊里的 +/− 数字(深浅两种主题)。整机审查于 f8c262d。

贡献者

感谢本版本的贡献者:@Guan0923、@SivanCola


This release adds side questions, keeping a long paste as a file, optional session-row buttons and a sandbox device allowlist, and fixes narrow-window layout, contrast, memory recall and remote-control compatibility.

New

  • Settings → Model preferences gains an independent naming model and per-role reasoning effort, so titles can use their own model and each role its own effort. Refs #11851 by @Guan0923.
  • New side questions: ask a read-only question beside the main conversation; read-only tools, never in the main transcript, dropped on close. Refs #12927 fixed in #13128, #13128.
  • Each class in the context details can be opened to its largest items (sizes and tool names only, never message text). Refs #13052, #13143.
  • When an MCP server puts ttlMs on its tool list, the catalog is re-read once it runs out (clamped to 30 s to 1 h) instead of relying on change notices alone. Refs #13108.
  • A skill's allowed-tools now also takes the open-standard spelling (space separated, like Bash(git add:*) Read); commas still work. Refs #13110.
  • reasonix doctor now reports skill names and descriptions that depart from the Agent Skills spec (uppercase, hyphens, length, directory mismatch); such skills still load. Refs #13110.
  • Settings → Appearance gains "Session row buttons": when on, hovering a sidebar session row shows Archive and Delete; off by default, both stay in the context menu. Refs #13132.
  • When compaction rejects its candidate as too large, the message now splits it into fixed prefix, protected messages, summary and recent tail, not just "still above trigger". Refs #13148.
  • The feedback dialog gains an "Ideas and discussion" link to GitHub Discussions for suggestions; bugs and errors still use Send. Refs #13141, #13155.
  • New [sandbox] allow_devices: the Linux command sandbox hides host devices such as the GPU; a user-level allowlist binds them in. Off by default; project config cannot set it. Refs #13157.
  • The long-paste chip gains "save as file": on click the text is stored as a file and the message carries only a pointer (lines, size, path, how to read it); never automatic. Refs #13148, #13162.
  • In the terminal, a folded long paste can be kept as a file with Ctrl+G: the message carries a pointer, not the text; without the key it is sent whole as before. Refs #13148, #13166.

Changed

  • ACP tool-call updates now name the invoked tool. Refs #13114, #13130.
  • On Linux, bubblewrap installed but unable to create a namespace (containers, hardened kernels) now gets its real cause and ways out, not "install it". Refs #13117, #13138, #13146.
  • Compaction now refuses up front when the protected messages and recent tail already reach the trigger, naming what holds the size, instead of paying for a summary that cannot fit. Refs #13148.

Fixed

  • A recalled memory fact edited or deleted outside the session is re-read before the next recall (only the last hits are checked, no full scan). Refs #12948 fixed in #13147.
  • Unreadable memory directories now report errors, keeping revision lists, restores, and recovery from treating permission or storage failures as missing data. Refs #12950 fixed in #13016 by @SivanCola.
  • On Linux, a launch folder nobody picked and nothing was said in is no longer listed as a project, so deleting it does not bring it back on restart. Refs #13107 fixed in #13127, #13127.
  • A requested file that does not exist is now said so in the side panel instead of opening a blank preview page. Refs #13125, #13133.
  • With a wallpaper set, the sidebar footer no longer paints a whiter plate; the picture continues to the bottom. Refs #13129, #13131.
  • On a phone browser too old for X25519 in WebCrypto, remote control now falls back to an audited software curve, loaded only then (about 24 KB), instead of asking for a newer browser. Refs #13140.
  • When an older session cannot be opened after a restart, the error now says why: the file is gone, its folder is gone, or the system could not read the path (with its reason). Refs #13152, #13159.
  • Narrow windows no longer overlap or squeeze: the tab bar wraps, settings labels keep their width, segmented controls stay in the sheet, and a few colours reach AA. Refs #13169.
  • Narrow windows: activity step rows keep their duration and arrow, the meter rail's subagent chip keeps its count when it cannot fit, and config error paths wrap. Refs #13154, #13172.
  • Fixed two contrast shortfalls: the intro "press any key to skip" hint and the +/− counts in the changed-files pill (both themes). Found by the audit at f8c262d.

Contributors

Thanks to this release's contributors: @Guan0923, @SivanCola

What's Changed

  • test(openwith): skip fakes of a POSIX disk on a Windows host by @esengine in #13124
  • test(plugin): give the writable-roots host-context tests absolute paths on Windows by @xxoingr in #13121
  • test(session): let a released save lock be waited for under load by @xxoingr in #13122
  • test(plugin): bound the mid-browser OAuth removal by the hang budget by @xxoingr in #13123
  • fix(serve): do not list a launch folder nobody picked and nothing was said in by @esengine in #13127
  • feat(acp): name the invoked tool on tool_call updates by @esengine in #13130
  • fix(studio): the sidebar footer takes the rail's tint over a wallpaper instead of a plate of its own by @esengine in #13131
  • fix(memory): report unreadable store directories / 修复记忆目录读取错误被忽略 by @SivanCola in #13016
  • fix(studio): a requested file that is not there is said so, not opened as a blank preview by @esengine in #13133
  • feat(session): a read-only side question beside the main conversation by @esengine in #13128
  • feat(skill): accept space-separated allowed-tools through one shared splitter by @esengine in #13135
  • perf(boot): read the user config once for the startup migrations and leave an untouched config unlocked by @esengine in #13136
  • feat(studio): opt-in hover Archive and Delete buttons on session rows by @esengine in #13137
  • feat(sandbox): say why bubblewrap is unusable: missing, or installed but denied a namespace by @esengine in #13138
  • fix(remote): say the browser is too old when it has no X25519 by @esengine in #13145
  • feat(mcp): re-read a tool catalog when the server's ttlMs runs out by @esengine in #13139
  • feat(studio): open a context class to the messages that made it heavy by @esengine in #13143
  • feat(sandbox): a bwrap that cannot be started is not reported as a denied namespace by @esengine in #13146
  • docs(guide): describe the terminal keys 2.x has by @xxoingr in #13144
  • fix(memory): re-read the facts the last recall returned before recalling again by @esengine in #13147
  • feat(compaction): say what holds a rejected candidate above the trigger by @esengine in #13149
  • feat(skill): report front matter that departs from the Agent Skills spec by @esengine in #13150
  • feat(compaction): refuse a fold that cannot fit before paying for its summary by @esengine in #13151
  • fix(studio): lift the intro hint and the changed-files counts over AA contrast by @esengine in #13154
  • feat(studio): add an independent naming model and per-role reasoning effort by @Guan0923 in #11851
  • docs(release): fragments for the user-visible changes merged since 2.40.0 by @esengine in #13156
  • feat(studio): point ideas and questions from the feedback dialog to Discussions by @esengine in #13155
  • docs(release): fragment for the naming model and per-role effort by @esengine in #13158
  • fix(serve): resume says whether the transcript is gone, outside, or unreadable and why by @esengine in #13159
  • feat(remote): fall back to a software X25519 when the browser has none by @esengine in #13160
  • feat(sandbox): bind user-allowed host device nodes into the Linux bash sandbox by @esengine in #13161
  • feat(studio): keep a long paste as a file on request by @esengine in #13162
  • docs(release): fragment for the keep-a-paste-as-a-file chip action by @esengine in #13163
  • docs(guide): document the sandbox device allowlist by @esengine in #13164
  • feat(tui): keep a folded paste as a file with Ctrl+G by @esengine in #13166
  • docs(release): fragment for keeping a folded paste as a file in the terminal by @esengine in #13167
  • test(boot): build SDK examples against the host go build cache by @esengine in #13168
  • fix(sandbox): probe bubblewrap with the network flag the launch will use by @esengine in #13165
  • fix(studio): narrow-width layout and contrast defects found by the sweep by @esengine in #13169
  • test(studio): i18n and fault sweeps take a viewport and wait for the settings control by @esengine in #13170
  • docs(release): fragment for the narrow-width layout fixes by @esengine in #13171
  • fix(studio): narrow-width step rows, meter rail and config error block by @esengine in #13172
  • test(session): bound the stream-failure recovery turns by the hang budget by @esengine in #13173
  • docs(release): Studio 2.41.0 notes by @esengine in #13174

Full Changelog: studio-v2.40.0...studio-v2.41.0


macOS 已用 Developer ID 签名并公证,打开时不需要清除隔离属性。Windows 的窗口、内核与安装器都经 Certum 代码签名证书做了 Authenticode 签名。Linux Debian 系从 .deb 安装,Fedora、RHEL、openSUSE 等从 .rpm 安装(sudo dnf install ./ReasonixStudio-linux-amd64.rpm)。x86_64 用文件名带 amd64 的包,aarch64(统信 UOS、麒麟等)用带 arm64 的包。

三个平台都能自更新:Linux 的 .deb 走自己的包(.rpm 的自更新尚未提供,请手动下载新包),Windows 运行下一个安装器,macOS 替换自身 bundle。

Don't miss a new DeepSeek-Reasonix release

NewReleases is sending notifications on new releases.