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

latest release: v2.52.0
one hour ago

本版新增 Wallpaper Engine 场景壁纸、主题包的五个代码配色标记和历史竖带的展开,移除正文拖动把手与顶栏沙盒按钮,并修复压缩卡死、没有文件夹无法开会话等多处问题。

新增

  • 壁纸可以导入 Wallpaper Engine 场景文件夹:提取主图和全部音轨循环播放,支持 DXT1/DXT3/DXT5 压缩主图,提供音量、静音和鼠标视差。关联 #14407 by @EMEEEEMMMM、#14478 by @EMEEEEMMMM。
  • 主题包可以给注释、类型、运算符、标点和变量单独配色(五个可选标记),文件编辑器和对话代码块都生效;不写它们的主题外观不变。关联 #14358 fixed in #14483。
  • 会话折叠设置新增独立的思考开头预览开关:收起时在标题下方单行显示,流式输出时也生效,旧的预览选择自动迁移。关联 #14139。
  • 历史对话竖带里合并成一条的多轮对话,点一下展开成具体每一条再选要跳的那条;历史未全部加载时竖带顶端会提示。关联 #14468 by @imcreazy。

变更

  • 移除正文左右两侧的拖动宽度把手,对话区不再有线条,手机端也不再误触;正文宽度用设置里的行宽预设选择。关联 #14460 fixed in #14463。
  • 顶栏不再常驻「沙盒」按钮,它只是「工具与权限」的快捷入口,该入口已在图标栏和侧栏里,可在导航入口里显示或隐藏。关联 #14439。
  • 把文件拖进会话时,放到会话面板的任意位置都会作为附件或引用加入,不必再精确拖到输入框;侧栏等自带拖放区的位置仍优先。关联 #14443。
  • 文档:用户指南新增「提示词怎么注入」快速说明,区分聊天要求、仓库常驻指令和用户级人设及人设保存后的生效时机。关联 #13512。

修复

  • 没有添加任何文件夹时新建会话不再提示「请先添加一个文件夹」,而是在应用自己的内置工作区里打开。关联 #14363。
  • 大窗口模型下,用户消息很大的长会话不再反复报「折叠后仍不低于压缩阈值」而卡住自动压缩和 /compact。关联 #14434 fixed in #14436。
  • 在 CRLF 文件里按原文编辑时,替换文本里的换行不再以单独的 LF 写入造成混合换行。修复 #14403 fixed in #14404。
  • reasonix serve 先绑定地址再打印启动信息,地址或端口无法使用时只报错,分享链接里的端口是真正在监听的。修复 #14426 fixed in #14429。
  • 放大设置窗口后,内容卡片居中在侧栏右侧的可用区域,左右留白相等。修复 #14418 fixed in #14420。
  • 会话标签里项目文件夹名或主机名很长时,关闭按钮不再被挤到相邻标签上点不到,标题也不再被挤没。关联 #14417 fixed in #14432 by @xxoingr。
  • 模型价格里的币种下拉框与旁边的输入框样式一致,浅色和深色主题都协调。关联 #14380。
  • 设置「工具与权限」里的文件交付、脚本、顾问、多路并行和 MCP 资源读取现在显示中文简介而不是英文原文。关联 #14447。
  • 设置里切换分类会回到页面顶部,搜索结果能落到稍后才加载出来的设置上。关联 #14491 by @SivanCola。
  • 网络设置区分已保存的配置和正在编辑的草稿:没改动时保存按钮不可用,连接测试明确使用已保存的配置。关联 #14490 by @SivanCola。
  • 本机文件备份不再因路由缺失返回 404,导出、预览和应用恢复可用,仍只限本机使用。关联 #14492 by @SivanCola。
  • 取消工具调用后可以退出检查点准入等待;后台任务和子代理舰队的写入登记可取消,收尾与登记绑定,同 ID 的新登记不受旧任务退出影响。关联 #14025。
  • 后台任务即使没被启动也会清理资源,清理出错也可诊断;恢复出来的 panic 包括旧版 nil panic 不再被报告成功。关联 #14025。
  • 工具 hook 可能写文件时先进入检查点写屏障,被拒绝、只读和嵌套的调用也会通知宿主,准入失败则不执行 hook。关联 #14025。
  • 隔离任务的结果由其他会话应用或丢弃后,旧会话不能再靠缓存写回;各操作共享按 ID 的跨进程租约。关联 #14025。
  • 隔离任务首次检查失败或宿主 runner 崩溃时保留文件和原 ID,可排障后重试;整合时按字面文件名和 Git 模式处理,不覆盖你的相邻修改。关联 #14025。
  • 写入事务记录遇到重复字段、大小写别名或未知字段时拒绝新准入并保留原字节,不再被当作普通记录。关联 #14025。
  • 被拒绝的写入会释放临时占用的路径,保留此前写入、并行调用和有效的用户等待。关联 #14025、#14133 by @SivanCola。

升级须知

  • 失败检查记录不按年龄清理;旧版本会保留这些新记录,升级后才能按 ID 重试。关联 #14025。
  • 移除拖动把手后,旧版本记住的拖动宽度不再读取并会在启动时清除;需要时用行宽预设重新选择。关联 #14460 fixed in #14463。

贡献者

感谢本版本的贡献者:@EMEEEEMMMM、@imcreazy、@xxoingr、@SivanCola


This release adds Wallpaper Engine scene wallpapers, five code-colour tokens for theme packs and an expandable history rail, removes the reading-column drag handles and the top-bar Sandbox button, and fixes the compaction stall and sessions that would not open without a folder.

New

  • Wallpaper can import a Wallpaper Engine scene folder: its backdrop and every soundtrack loop, DXT1/DXT3/DXT5 backdrops decode, with volume, mute and pointer parallax. Refs #14407 by @EMEEEEMMMM, #14478 by @EMEEEEMMMM.
  • Theme packs can colour comments, types, operators, punctuation and variables with five optional tokens, in the file editor and in code blocks; packs that omit them look the same. Refs #14358 fixed in #14483.
  • An independent collapsed-thinking preview switch shows one line below the header, including while streaming; existing preview choices migrate automatically. Refs #14139.
  • A run of questions folded into one line on the history rail opens on a click so you pick the one you meant, and the rail marks history that is not loaded yet. Refs #14468 by @imcreazy.

Changed

  • The drag handles beside the reading column are removed, so no lines show and a phone cannot hit them; choose the width with the line-width presets in Settings. Refs #14460 fixed in #14463.
  • The top bar no longer has a permanent Sandbox button; Tools and permissions is in the rail and sidebar and can be hidden under Navigation entries. Refs #14439.
  • A file dropped anywhere on the conversation pane is attached or referenced, not only on the composer; drop zones such as the sidebar still win. Refs #14443.
  • Docs: a prompt-customization quick start covers chat, repository rules and user-wide personas, with when a saved persona takes effect. Refs #13512.

Fixed

  • Starting a session with no folder added no longer says to add a folder first; it opens in the app's own workspace. Refs #14363.
  • On large-window models, long sessions with big user messages no longer stall automatic compaction and /compact on "still at or above the threshold". Refs #14434 fixed in #14436.
  • In a CRLF file, a literal edit no longer writes the replacement's line breaks as bare LF and mixes endings. Fixes #14403 fixed in #14404.
  • reasonix serve binds its address before printing anything, so a bad address or port fails with just the error and the share link names a port that is listening. Fixes #14426 fixed in #14429.
  • In the enlarged settings window the content column is centred beside the navigation with equal room on both sides. Fixes #14418 fixed in #14420.
  • A long folder or host name on a session tab no longer pushes the close button onto the next tab or squeezes the title away. Refs #14417 fixed in #14432 by @xxoingr.
  • The currency dropdown in model prices matches the inputs beside it in light and dark themes. Refs #14380.
  • Settings, Tools and permissions now show a blurb in your language for the file-delivery, script, advisor, best-of-N and MCP resource tools. Refs #14447.
  • Switching a settings category returns to the top of the page, and a search result lands on a setting that loads late. Refs #14491 by @SivanCola.
  • Network settings tell the saved configuration from the draft: Save is disabled until something changes, and the connection test uses the saved configuration. Refs #14490 by @SivanCola.
  • Local file backups no longer fail with a 404 for a missing route; export, preview and apply work, still limited to this machine. Refs #14492 by @SivanCola.
  • Cancelling a tool call leaves the checkpoint wait; background writer registrations are cancellable and cleaned up with the job, and a newer one of the same ID survives an old exit. Refs #14025.
  • Background tasks release their resources even when launch is declined, cleanup errors stay visible, and a recovered panic, including legacy nil panics, is never reported as success. Refs #14025.
  • Possible tool-hook writes go through the checkpoint barrier, refused, read-only and nested calls notify the host, and a failed admission does not run the hook. Refs #14025.
  • After another session applies or discards an isolated result, a stale session cannot write it back from a cache; operations share per-ID cross-process leases. Refs #14025.
  • An isolated task keeps its files and ID after a failed first inspection or a runner panic so it can be retried, and integration treats file names literally and keeps your nearby edits. Refs #14025.
  • Mutation records with repeated fields, case aliases or unknown fields are refused for new admission and keep their bytes instead of being treated as ordinary records. Refs #14025.
  • A refused write releases provisional paths while keeping earlier writes, concurrent calls and live user waits. Refs #14025, #14133 by @SivanCola.

Upgrade notes

  • Failed inspection records are not cleaned up by age; older versions keep these new records and need an upgrade to retry them. Refs #14025.
  • With the drag handles gone, a dragged width remembered by an older build is no longer read and is cleared at start; choose a line-width preset if you need to. Refs #14460 fixed in #14463.

Contributors

Thanks to this release's contributors: @EMEEEEMMMM, @imcreazy, @xxoingr, @SivanCola

What's Changed

  • fix(agent): preserve hook workspace invalidation / 保留 hook 工作区失效通知 by @SivanCola in #14398
  • fix(lease): release provisional write claims / 撤销未执行写入的临时占用 by @SivanCola in #14397
  • fix(agent): admit reader hook writes through checkpoints / 只读调用 hook 纳入检查点写入准入 by @SivanCola in #14399
  • fix(isolation): retain first-Finish failures / 首次成果检查失败保留隔离结果 by @SivanCola in #14400
  • fix(isolation): honor task runtime options / 隔离任务遵守模型与步数参数 by @SivanCola in #14401
  • fix(isolation): reject settled result caches / 拒绝已处理成果的过期缓存 by @SivanCola in #14402
  • fix(edit): a literal edit match keeps the line ending of the line it lands in by @esengine in #14404
  • fix(checkpoint): cancel admission and preserve other writers / 取消检查点等待并保护其他写入者 by @SivanCola in #14405
  • refactor(studio): move the feedback actions out of the full actions file by @esengine in #14408
  • fix(isolation): serialize result operations through cleanup / 隔离结果操作统一跨进程租约 by @SivanCola in #14409
  • fix(worktree): compare file modes during integration / 修复隔离整合丢失文件模式与类型 by @SivanCola in #14410
  • feat(state): add mutation transaction primitive / 写入事务基础机制与测试 by @SivanCola in #14368
  • fix(studio): a line-width preset wins over a width the column was dragged to by @esengine in #14412
  • fix(studio): execution typography follows body preferences by @lancy69 in #14233
  • test(worktree): gitIn returns standard output only by @esengine in #14422
  • fix(mutation): a prefix is exact only when its spelling agrees by @esengine in #14424
  • fix(tui): keep the arguments a restored tool call actually had by @chuiwenwei in #14423
  • fix(sessionstore): the lease probe asks the lock, not the sidecar by @chuiwenwei in #14416
  • fix(stats): record the tokens the price came from by @chuiwenwei in #14419
  • fix(cli): serve binds its address before it reports anything by @esengine in #14429
  • fix(studio): centre the enlarged settings window's content column by @esengine in #14420
  • feat(studio): separate collapsed thinking previews from folding by @lancy69 in #14406
  • ci: run complete mutation and isolation owners on Windows / 补齐事务与隔离机制原生及竞态验收 by @SivanCola in #14415
  • Feat/wallpaper scene mvp by @EMEEEEMMMM in #14407
  • fix(worktree): keep integration paths literal / 修复特殊文件名导致隔离整合越范围写入 by @SivanCola in #14425
  • style(studio): hold the stylesheet to its line budget by @esengine in #14435
  • fix(agent): cap verbatim retention by the compaction trigger by @esengine in #14436
  • fix(studio): a pane tab's close button stays inside the tab by @xxoingr in #14432
  • fix: fence ordinary isolated-result writers / 隔离结果操作识别持久恢复屏障 by @SivanCola in #14438
  • fix(mutation): retain unsupported registry records / 保留未知事务记录并拒绝准入 by @SivanCola in #14440
  • fix(studio): style the model-price currency select like the inputs beside it by @esengine in #14442
  • feat(studio): a file dropped anywhere on the conversation pane is taken by @esengine in #14443
  • fix(studio): give the config-gated tools a blurb in the settings tool list by @esengine in #14447
  • fix(studio): drop the top bar's second route to Tools and permissions by @esengine in #14450
  • fix(studio): draw the reading column's handles only when there is a range to move in by @esengine in #14458
  • fix(serve): a new session with no project opens in the app's own workspace by @esengine in #14467
  • build(deps): bump the actions group with 3 updates by @dependabot[bot] in #14457
  • feat(studio): remove the reading column's drag handles by @esengine in #14463
  • build(deps): bump modernc.org/sqlite to 1.61.0 and tdewolff/parse to 2.8.19 by @esengine in #14471
  • Let the rail say when history is unloaded, and open a folded run by @imcreazy in #14468
  • build(deps): bump mantine, lucide-react, maplibre-gl and vite by @esengine in #14473
  • docs: explain project-specific persona guidance by @lancy69 in #14474
  • docs: explain supported prompt customization by @lancy69 in #14475
  • test(studio): wait for the held feedback draft before asserting it by @esengine in #14476
  • build(deps): bump vitest to 5.0.5 by @esengine in #14481
  • fix(isolation): retain work after runner panic / 保留 runner panic 后的隔离成果 by @SivanCola in #14472
  • test(serve): take the unreachable address from a port that was seen to refuse by @esengine in #14485
  • feat(theme): five optional syntax tokens for comments, types, operators, punctuation and variables by @esengine in #14483
  • feat(studio): loop every scene soundtrack and decode DXT backdrops by @EMEEEEMMMM in #14478
  • test(netclient): pin the stream dialer's proxy boundary by @xxoingr in #14482
  • fix(mutation): reject ambiguous record members / 拒绝事务记录歧义字段 by @SivanCola in #14479
  • Register file backups on machine settings routes / 修复本机配置备份接口 404 by @SivanCola in #14492
  • Reset settings category scrolling and await search targets / 修复设置滚动与异步搜索定位 by @SivanCola in #14491
  • Separate saved network settings from drafts / 区分网络草稿与已保存配置 by @SivanCola in #14490
  • test(studio): wait for the reader menu to take focus before reading it by @xxoingr in #14495
  • Finalize background resources when job launch is declined / 修复后台任务未启动时的资源清理 by @SivanCola in #14469
  • Cancel background writer admission and bind cleanup to registrations / 后台写入者可取消准入与身份清理 by @SivanCola in #14464
  • fix(jobs): keep recovered panics from success / 防止任务 panic 被误报成功 by @SivanCola in #14496
  • docs(release): studio 2.52.0 notes by @esengine in #14498

Full Changelog: studio-v2.51.0...studio-v2.52.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 的包。也提供 .AppImage(只提供下载,不会自更新;需要 FUSE 2,或用 --appimage-extract-and-run 启动)。

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

Don't miss a new DeepSeek-Reasonix release

NewReleases is sending notifications on new releases.