Skip to content

修复 Pi resume 场景下的会话锁安全恢复#645

Open
codenum137 wants to merge 3 commits into
kunchenguid:mainfrom
codenum137:fm/firstmate-pi-resume-lock-fix-m9
Open

修复 Pi resume 场景下的会话锁安全恢复#645
codenum137 wants to merge 3 commits into
kunchenguid:mainfrom
codenum137:fm/firstmate-pi-resume-lock-fix-m9

Conversation

@codenum137

@codenum137 codenum137 commented Jul 16, 2026

Copy link
Copy Markdown

目标

修复 Firstmate 在 native Pi 0.80.7 resume 场景中的会话锁识别与安全恢复。

变更

  • 重构 bin/fm-lock.sh 的锁分类与获取流程,按精确 basename 识别 harness 进程,并通过跨进程互斥和原子发布安全回收 missing/dead 锁。
  • Pi watcher 在 session_start 时只通过生产锁 owner 恢复所有权,重新读取并确认 owned 后才启动监督;verified live other 与 malformed 锁保持原样并关闭失败。
  • watcher 与 turn-end guard 统一使用只读 ownership API,并明确区分活跃竞争者、获取失败和所有权变化。
  • 新增 subprocess 会话锁测试与真实 tracked Pi extension 集成 fixture,覆盖 native Pi 活锁、live other、幂等持锁、死亡锁回收、格式错误、无 harness 祖先、并发单赢家以及 resume 的 missing/dead/live-other/owned 路径。

风险

  • 风险较低。锁变更由 bin/fm-lock.sh 单一负责,所有不确定状态均关闭失败,不会 force、stash 或覆盖已验证的 live other。
  • 未修改 Pi core auto-compaction、全局安装、当前 live Pi 会话或 default Herdr session。

验证

  • bin/fm-lint.sh 通过。
  • 会话锁、Pi watcher、turn-end guard、session start、secondmate 与完整 shell 测试套件通过。
  • no-mistakes 首轮完整测试发现注入分类和 watcher 测试竞态两处遗漏;流水线修复后重跑完整测试通过。
  • no-mistakes review、document、lint、push、PR 与 CI-ready 门禁通过。

@codenum137 codenum137 changed the title fix: 安全恢复 Pi resume 场景下的会话锁 修复 Pi resume 场景下的会话锁安全恢复 Jul 16, 2026
@codenum137 codenum137 closed this Jul 16, 2026
@codenum137 codenum137 reopened this Jul 16, 2026
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.

1 participant