跳转至

已确认的终端标签页退役

主机请求的整个标签页关闭可以返回 closed: true,同时其行仍保留在 orca-data.json 中。一旦仓库的主机拓扑修订为正,Store 就会保留主机成员关系,以抵御仅省略某个标签页的渲染器保存。渲染器在其会话刷新后进行确认;其图移除可能稍后到达。现有运行时回退仅在该图不再拥有父节点后才提交退役。

这修复了与 #17344 相关的该确认顺序路径。它并未证明该报告中的每个标签页都遵循了此路径,也无法仅凭小型持久化行解释大型 RSS。

运行

ORCA_BACKGROUND_LAUNCH=1 node docs/audits/acknowledged-tab-retirement/reproduce.mjs

运行器使用临时 Vite 配置和仓库的跨平台进程运行器。它仅为基线在内存中反转 fix.patch;检出保持不变。测试使用临时 Store 文件和惰性桌面/提供者端口。不会启动任何应用程序窗口、shell、SSH 连接或外部主机。

20 个用例的工件夹具驱动实际的渲染器关闭和会话构建器、Store 持久化/重新加载以及运行时关闭/图方法。十一个源码回归验证实际的 Store/运行时边界,包括提供者退出和生成。基线有 28 个失败的固定行为断言和 3 个通过的控制项;修复通过 31 个用例。结果包括源码哈希、确切失败用例、进程退出码和超时状态。

所有权检查

已确认关闭路径捕获原始执行主机分区、持久化标签页创建/代际、叶/PTY 绑定以及当前进程化身。它在渲染器确认后、提交现有主机退役事务前重新检查这些内容。原始叶节点可能在物理退出期间消失,并且该标签页的聚合 PTY 或远程会话 ID 可能会提升一个原始幸存兄弟节点。新的叶节点、绑定、化身、标签页代际或主机将被拒绝。当前固定项由现有提交原语检查;显式 force 保留其现有含义。

进程守卫覆盖原始持久化行、远程会话和叶节点 ID,以及快照叶节点/布局 ID。因此,部分移动快照无法隐藏原始兄弟节点的替换。仅缺少运行时记录不被视为进程死亡证据。现有无头回退在提交前仍会收集持久化的 SSH 终止 ID;新增的渲染器拥有路径不发出提供者终止。

控制项包括本地和 SSH 支持的仓库以及文件夹工作区、无关主机分区、相同 ID 替换、物理拆分退出、过期的渲染器保存/图、当前固定项、force、渲染器拒绝以及磁盘故障。渲染器拥有的活动快照可以保留,直到其普通图移除到达;之后,较旧的排队图无法恢复它。

范围限制

  • 对从未绑定的本地标签页的直接仅渲染器关闭仍然不发送显式主机退役请求。该独立缺口仍由负控制项复现。
  • 新的持久身份捕获需要 tabsByWorktree 中的旧版终端行。仅统一的终端元数据不在本修复范围内。
  • 现有退役原语会传播失败的磁盘刷新,但其尝试的回滚可以针对已暂存的较新拓扑修订进行变基。失败控制项验证拒绝和原始磁盘行;它不声称内存回滚成功。
  • 线路字段、进程存活判定或成员资格栅栏规则均未改变。SSH 持久化保留在其现有主机分区中;这不会调和独立的历史渲染器/主机分区分歧。
  • 相关的原始审计追踪了所报告的 v1.4.192 中的分支。可执行比较使用当前源码并反转此补丁,而不是历史打包应用程序。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 orca48/orca