Skip to content

wisp-science v0.22.0

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Jul 01:41

wisp-science v0.22.0

这是继 v0.21.0 之后的功能与稳定性版本,重点把跨 SSH 环境的数据移动纳入可审计、可取消的 Run 流程,并改善会话排队、置顶、分组和动态 Agent 工作流。远程命令失败现在会作为可纠正的探索结果反馈给 Agent,不再把一次普通命令错误误判为 SSH 认证失败;会话侧则新增可编辑队列、任务完成通知跳转和更紧凑的分组移动菜单。

下载

  • macOS(.dmg,已签名 + 公证):区分 Apple Silicon(aarch64)与 Intel(x86_64),请下载对应架构。
  • Windows 安装包(MSI / NSIS):尚未签名,可能触发 SmartScreen,可选择「仍要运行」。

见下方 Assets。

新增功能

结构化 SSH 数据传输

  • 服务器之间直接传输:新增需明确批准的 transfer_between_contexts。可在两个已配置 SSH context 之间直接传输,优先使用 rsync,并在不可用时回退到 scp。
  • 独立凭据的本地中转:源端和目标端无法直接连通时,可通过本机 relay;两端各自使用已保存的连接配置,不要求嵌套 SSH 或共享账号凭据。
  • 定向托管信任configure_ssh_trust 为明确的 A→B 方向生成专用 Ed25519 信任边,不把私钥复制到本机或 SQLite。
  • SSH 下载到本地:远程文件可传到用户指定的精确本地新路径。传输使用同卷 staging、拒绝覆盖现有目标,失败或取消后清理不完整数据。
  • 持久化传输 Run:传输进度、吞吐、取消、超时与结果进入现有 Run 生命周期;Agent 通过一次 monitor_run 等待,而不是反复登录或轮询。
  • 防止绕过控制面run_in_context 会拒绝嵌套 ssh/scp/rsync-over-ssh,并引导 Agent 使用结构化工具。

Agent 工作流、MCP 与研究追溯

  • 动态 Agent 草稿导入/导出:临时 Agent 工作流可用 JSON 保存和恢复,复用当前 proposal 格式;解析失败会显示明确错误。
  • 让模型检查工作流:可把同一份结构化草稿连同审查请求送入主对话,在创建任务前检查目标、依赖、权限和执行器配置。
  • 接管后保留工作流视图:接管 delegated child session 后,Agents 面板、根工作流与任务卡片继续可见;父会话内容没有被截断或删除。
  • MCP App 状态进入模型上下文:Host 支持标准 updateModelContext 文本能力;应用的最新选择或工作台状态会进入下一轮 native/ACP 请求,关闭或替换 App 后清除。
  • 技能与 MCP 调用更易识别:对话中的工具卡片与折叠步骤会显示「技能」或「MCP」徽章及清理后的真实名称,普通内置工具保持原样。
  • 复制 provenance 代码:Artifact 查看器的 Code 页可直接复制生成图像时记录的只读源代码,并复用现有 Copied 提示。

会话、项目与浏览器体验

  • 可管理的后续消息队列:运行中的会话默认将新消息排队;每条消息可编辑、取消、上移、下移,也可选择插入当前 native Agent 回合。发送菜单继续提供“中断并替换”。
  • 对话置顶:重要会话可置顶到侧栏独立区域并从原分组中抽出,取消置顶后回到原有日期或文件夹分组。
  • 更紧凑的移动菜单:会话菜单只保留一个“移动到”入口;悬停或激活后再选择“未分组”或目标分组,长列表可独立滚动并自动避开窗口边缘。
  • 通知跳转到对应会话:后台任务完成通知使应用窗口重新获得焦点时,会一次性打开产生通知的项目与会话。
  • 标准研究目录改为可选:新建项目可主动勾选标准 layout;默认关闭,不再向已有仓库或不需要该约定的项目写入空目录。约定通过可见、可编辑的 Agent Context 保存,并包含 remote/<server>/ 来源目录建议。
  • 真实浏览器可创建标签页:新增需批准的 web_open_tab;即使当前 profile 只有 chrome://newtab,Agent 也能先打开一个 HTTP(S) 页面,再使用既有扫描与执行工具。

修复内容

  • 远程探索失败语义:失败、超时、取消或 lost 的 waited Run 会作为失败工具结果返回,计划步骤保持未完成;普通远程命令和临时传输错误仍允许 Agent 修正,只有认证拒绝和 host-key 信任失败会阻止再次自动登录。
  • 使用真实解释器路径:环境探测会展示并要求使用实际解释器路径,例如 /usr/bin/python3,避免探测成功后又调用不存在的 python
  • 流式截断不再伪装成完成:OpenAI/Anthropic 兼容流若没有终止标记且并非用户 Stop,会报告明确的 incomplete 错误,提示网络、relay 或同 key 并发限制,而不是把半句话显示成完整回答。
  • 完成回复即时显示attempt_completion 的最终回答现在追加在本轮工具调用之后,不再复用工具前的空白 assistant 占位,因此无需重开会话即可看到完整回复。
  • 保持 Rust 1.88 构建兼容:UTF-8 安全截断不再调用较新工具链才稳定的标准库 API,通知依赖也锁定在支持项目最低 Rust 版本的版本。
  • 旧数据库置顶迁移:新增幂等 0023_session_pinned 修复已记录旧迁移但缺少 frames.pinned 的数据库,避免 list_sessions_page 报错并导致整个会话侧栏为空。
  • 语言不再在重开设置时回退:当前会话中的 locale 保持为唯一 live 状态;重新打开设置或管理模型不会用磁盘旧值覆盖界面语言。
  • 调试请求更完整:导出调试请求时保留最新、provider 无关的完整模型请求,包括运行时注入内容。

兼容性与升级说明

  • 可直接覆盖安装 v0.21.0;项目、会话、模型、连接、ExecutionContext、Run、插件与 Agent workflow 数据会继续保留。
  • 缺少 frames.pinned 的旧数据库会在启动时通过幂等迁移自动修复,无需手工执行 SQL。
  • 标准研究目录开关只影响新建项目;现有工作区不会被自动移动或重排。
  • 排队中的后续消息目前只保存在内存中,应用退出或崩溃后不会恢复;已开始或已持久化的正式对话不受影响。
  • MCP App 的 live model context 属于当前 session runtime,不独立持久化;恢复后的 App 应在初始化时重新发布当前状态。

已知限制

  • 本地 relay 需要约等于源数据大小的可用磁盘空间;scp 传输不可续传,递归 scp 会跟随符号链接。
  • SSH→本地下载目前使用 scp,不支持断点续传;移除已配置的定向信任边仍需手工操作。
  • 流被截断后不会自动重试,因为已显示并持久化的文本 delta 可能重复;请在错误提示后重新发送或继续。
  • ACP 协议不支持 native mid-turn guidance,因此 ACP 会话不显示“插队到本回合”。
  • Windows 安装包仍未签名,可能触发 SmartScreen。
  • 需自备模型与第三方科研服务的 API Key;对应费用、配额与可用性由用户及服务商负责。

测试与交付

  • Rust workspace、Rust 1.88 / stable、WASM UI 编译和 Playwright 桌面 UI 回归测试在主分支通过。
  • 新增覆盖结构化 SSH 直传/relay/下载/取消/清理、Run 失败语义、动态工作流 JSON round-trip、MCP App context、会话队列与置顶迁移、流式截断、完成回复定位、分组子菜单和新项目 layout 开关。
  • v0.21.0..v0.22.0 包含 22 个非合并功能与修复提交,涉及 48 个文件。
  • 推送 v0.22.0 标签后,GitHub Actions 会构建 macOS Apple Silicon / Intel DMG 与 Windows MSI / NSIS,并附加到本 Release。

反馈

欢迎在 GitHub Issues 反馈问题。SSH 传输问题请说明源/目标 context、所选 route、Run 状态和脱敏后的错误;队列、Agent workflow 或 MCP App 问题请附上复现步骤及相关会话状态。API key、token、密码、Cookie、SSH 私钥和未脱敏科研数据请勿上传。


English: wisp-science v0.22.0 adds structured, auditable transfers across SSH contexts and from SSH to local storage; editable queued follow-ups and pinned conversations; reusable dynamic Agent workflow drafts; and clearer MCP, Skill, and provenance surfaces. Remote command failures now remain correctable exploration instead of being confused with authentication failures, while cut model streams surface an explicit incomplete-response error.

What's Changed

  • Transfer files directly between configured SSH contexts with rsync/scp, or relay through the local machine with each host's own credentials.
  • Configure an explicit directed Ed25519 trust edge without copying private keys into local storage or SQLite.
  • Download SSH files to an exact new local path through a persisted transfer Run with staging, cancellation, timeout, and cleanup.
  • Return failed or cancelled waited Runs as failed tool results, preserve unfinished plan steps, and use the exact interpreter path found by environment probes.
  • Queue follow-up messages by default while a conversation runs; edit, cancel, reorder, cut in, or interrupt-and-replace them.
  • Pin conversations above normal grouping, and repair existing databases that recorded the old migration without the frames.pinned column.
  • Import/export dynamic Agent workflow drafts as JSON and send the same proposal to the model for review before creation.
  • Keep root workflow cards visible after taking over a delegated child session.
  • Inject the latest standard MCP App updateModelContext state into the next native or ACP turn, and label MCP/Skill calls clearly in the transcript.
  • Copy recorded artifact provenance code from the viewer.
  • Move folder destinations into a viewport-aware submenu, jump from completed-task notifications to their session, and make the standard research layout opt-in for new projects.
  • Open the first scriptable HTTP(S) browser tab with the approved web_open_tab tool.
  • Detect OpenAI/Anthropic-compatible streams that end without a terminal marker, preserve live locale when reopening Settings, and export the exact latest provider-agnostic debug request.
  • Render the live attempt_completion answer after its tool rows so the final response is visible immediately without reopening the conversation.
  • Preserve the Rust 1.88 build floor by using a stable UTF-8 truncation path and locking the notification dependency to a compatible release.

Compatibility: Installs over v0.21.0 in place. The missing pinned-session column is repaired automatically. Queued follow-ups and live MCP App model context remain runtime-only. The standard research layout is now opt-in for newly created projects and does not reorganize existing workspaces.

Full Changelog: v0.21.0...v0.22.0