本版大幅降低长会话和大型工作区的页面内存占用,预设模块选择支持多选,并修好记忆多进程写入互相覆盖等问题。
新增
- 预设模块选择支持多选、搜索、全选与内置/自定义分组,手动输入 ID 移到高级选项。关联 #13988。
变更
- 旧会话先显示列表,摘要与轮数在后台补全;读取未完成或失败会明确提示,后台索引会为打开会话让出资源。关联 #14086 by @SivanCola。
修复
- 长会话里已完成且收起的工具调用卡片不再挂载整段输出,页面节点数和内存占用大幅下降。关联 #13899。
- 工作区有几万个未提交文件时,“改动”列表只渲染一页,其余显示“还有 N 项没有显示”,可按 500 项展开。关联 #13899。
- 两个进程共用一个记忆目录时,写入不再互相覆盖,也不再出现两条生效事实、改名没存下来、回滚倒退版本或索引丢行。关联 #14100 by @chuiwenwei。
- 回滚到旧版本的记忆时,不再返回该版本从未有过的内容或报“找不到该版本”。关联 #14096 by @chuiwenwei。
- 会话历史搜索不再把宿主追加的记忆召回和执行策略块当作用户说过的话。关联 #14076 by @chuiwenwei。
- 读取 JSONL 检查点时不再跟随指向所指定会话目录之外的文件符号链接。关联 #14086 by @SivanCola。
- 恢复把右侧工作区文件树里的文件和文件夹拖入对话,作为文件引用添加。关联 #12771 fixed in #12877。
- 普通会话启动期间读取 MCP 资源时,会等待已授权的服务器连接就绪,不再因连接未完成而提前报错。关联 #14084 by @SivanCola。
- 已登录账号时,反馈贡献榜不再错误地提示先去设置里登录。关联 #14012 fixed in #14071 by @lancy69。
reasonix config compact-ratio 33.3现在写入0.333,不再写成0.33299999999999996。关联 #14120。reasonix session和reasonix task的--dir指向不存在的路径或文件时,报参数错误并退出码 2,不再返回空结果。关联 #14119。- 窗口比项目右键菜单矮时,菜单底部的操作不再被切掉,菜单限制在窗口内并可滚动。关联 #14128、#14129。
升级须知
- 升级后首次打开会重建一次历史索引,首次打开会慢一些。关联 #14076 by @chuiwenwei。
- 另一个进程正持有记忆目录的锁时,写入可能等约 2 秒后返回可重试的“被另一个进程锁定”,而不是悄悄写坏。关联 #14100 by @chuiwenwei。
贡献者
感谢本版本的贡献者:@SivanCola、@chuiwenwei、@lancy69
This release cuts page memory in long sessions and large workspaces, adds multi-select for preset modules, and fixes memory writes overwriting each other across processes.
New
- Preset module selection supports multi-select, search, select all and built-in/custom groups; manual ID entry moves to advanced. Refs #13988.
Changed
- Legacy chats appear before summaries finish, which fill in the background; pending or failed reads are shown, and background indexing yields to opening a chat. Refs #14086 by @SivanCola.
Fixed
- A finished, closed tool-call card no longer mounts its whole output, which cuts DOM nodes and memory in long sessions. Refs #13899.
- With tens of thousands of changed files the Changes list draws one page and says how many it left out, opening 500 at a time. Refs #13899.
- With two processes sharing one memory directory, writes no longer overwrite each other, duplicate an active subject, lose a rename, roll a revision back or drop an index line. Refs #14100 by @chuiwenwei.
- Restoring an old memory revision no longer returns a body that revision never had or reports it missing. Refs #14096 by @chuiwenwei.
- History search no longer treats host-appended memory-recall and execution-policy blocks as words the user said. Refs #14076 by @chuiwenwei.
- JSONL checkpoint reads no longer follow file symlinks that point outside the supplied session directory. Refs #14086 by @SivanCola.
- Dragging files and folders from the workbench file tree into chat as file references works again. Refs #12771 fixed in #12877.
- Ordinary sessions wait for the authorized MCP server connection when reading resources at startup instead of failing early. Refs #14084 by @SivanCola.
- The feedback contribution board no longer asks signed-in users to log in through Settings. Refs #14012 fixed in #14071 by @lancy69.
reasonix config compact-ratio 33.3saves0.333instead of0.33299999999999996. Refs #14120.reasonix sessionandreasonix taskfail with an argument error (exit 2) for a--dirthat does not exist or is a file, instead of an empty result. Refs #14119.- When the window is shorter than a project's right-click menu, the actions at the bottom are no longer cut off; the menu stays inside the window and scrolls. Refs #14128, #14129.
Upgrade notes
- The history index rebuilds once on first open after upgrading, so the first open is slower. Refs #14076 by @chuiwenwei.
- While another process holds the memory directory lock, a write may wait about 2 seconds and then return a retryable "locked by another process" error instead of silently corrupting it. Refs #14100 by @chuiwenwei.
Contributors
Thanks to this release's contributors: @SivanCola, @chuiwenwei, @lancy69
What's Changed
- fix(tools): normalize redundant argument envelopes / 兼容多余工具参数包装 by @SivanCola in #14013
- fix(guardian): roll the transcript cursor back with the review by @imcreazy in #14046
- fix(studio): prevent settings search result overlap by @lancy69 in #14062
- fix(tui): offer /quit in the slash completion menu by @esengine in #14060
- fix(mcp): keep add argument errors readable by @pei711 in #14068
- fix(mcp): import cc-switch servers without sqlite3 by @pei711 in #14069
- fix(serve): expose account state to the feedback board by @lancy69 in #14071
- fix(history): strip the host-appended blocks from what the user said by @chuiwenwei in #14076
- fix(startup): wait for MCP readiness and isolate tests / 修复启动等待与测试隔离 by @SivanCola in #14084
- fix(agent): a degraded fold lists what the user said, not the host's blocks by @xxoingr in #14090
- fix(studio): restore workspace file drag into chat / 恢复工作区文件拖入对话 by @SivanCola in #14082
- fix(agent): exempt from the origin check only what the person typed by @xxoingr in #14091
- test(sessionstore): observe the 1.x listing replay instead of timing it by @xxoingr in #14097
- fix(history): progressive legacy discovery and background scheduling / 旧会话渐进加载与后台调度 by @SivanCola in #14086
- fix(memory): a revision snapshot must hold the revision it names by @chuiwenwei in #14096
- fix(memory): serialise store mutations across processes with one file lock per directory by @chuiwenwei in #14100
- test(memory): reconcile the cross-process test helpers of the snapshot and lock changes by @esengine in #14103
- feat(studio): grouped preset module multiselect / 预设模块分组多选 by @SivanCola in #14064
- fix(config): a price source refuses invisible format characters by @xxoingr in #14107
- docs(guide): the Chinese guide describes WSL machines and the agent-shell refusal by @xxoingr in #14109
- docs(guide): the terminal key tables match the /mcp panel and the keys 2.x has by @xxoingr in #14111
- fix(desktop): do not mount the body of a finished, closed tool card by @esengine in #14117
- fix(cli): save the compact ratio as the decimal the user typed by @esengine in #14121
- fix(cli): refuse a machine --dir that is not a directory by @esengine in #14123
- fix(studio): name a property the sheets define by @imcreazy in #14047
- fix(desktop): draw a page of the changes list, not every row by @esengine in #14124
- fix(desktop): keep a project's context menu inside a short window by @esengine in #14128
- docs(release): studio 2.48.0 notes by @esengine in #14130
New Contributors
Full Changelog: studio-v2.47.1...studio-v2.48.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。