Skip to content

fix(mobile-terminal-surface-recovery): 阻止不确定的终端恢复再次新建 shell - #96

Open
Fartown wants to merge 1 commit into
fork/integrationfrom
feat/mobile-terminal-reattach-admission
Open

Fartown wants to merge 1 commit into
fork/integrationfrom
feat/mobile-terminal-reattach-admission

Conversation

@Fartown

@Fartown Fartown commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner
Files Added Deleted Net
Test 7 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​188 $\color{#cf222e}{\Huge{\mathbf{−}}}$​45 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​143
Prod 12 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​136 $\color{#cf222e}{\Huge{\mathbf{−}}}$​49 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​87

已有数字 PTY 的窗格重连时,stable owner 暂缺会落入 fresh,本地 provider 随后丢弃普通数字 sessionId,另开空 shell。共享 host spawn 入口现在要求同一 PTY 的正向 absence 或 stop 证明,缺失时保留恢复状态并拒绝 fresh;owner 恢复后可接回原进程。

同时修正四个判断分支:ambiguous ownership 不算已安置;部分 live PTY 未安置时不能先报告 adopted/structured;window 不再因 live reattach 没有回放且有睡眠记录而清绑定重开;pending 启动空结果或旧 generation 不立即触发另一次启动。已确认退出、普通新建和独立 dead sibling 的正常恢复保留。没有新增 wire 字段。

验证:

  • 先按 caller → stable owner → provider 完成源码反例审查,记录于需求目录 research/2026-11-09-恢复准入源码审查.md。
  • 主 pnpm tc、13 文件 224 项 feature checks、架构/Fork/三项本地化以及按 fork/integration 比较的 changed-code quality 通过。
  • 隔离 Electron 真实 numeric provider 拒绝无 owner 数字请求;三次手机激活保留原 tab/leaf/PTY/incarnation/root PID 与 shell 内容。另有 Git/folder 旧 census、无答复 attach 后 reload、SSH Git/folder 手机激活和客户端重启,共 7 项实际应用检查通过。末尾 sleeping-claim 的 partial 判定随后补充定向回归。
  • 额外 E2E 全树类型检查仍有 42 个 cloud/mobile 依赖或 stub 错误,与基线逐条相同;此项未记为通过。

用户 Mac 未安装本轮代码,运行中的应用未重启;现场 PTY 16 的完整发起链仍缺 breadcrumb,不把源码可达反例当成该次事件的唯一归因。整体 journal 保持 testing。

Fixes #95

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

恢复链把 owner 缺失、空回放和归属冲突升级为 fresh 或成功

1 participant