Repository navigation
fix: keep resumed turns open during stale session cleanup - #75
Conversation
|
Sentinel 已审核此变更,未发现已核验问题,但发现需要人工确认的风险。 另有 3 个需要人工确认的风险;黄色 advisory 不阻塞合并,建议开发 agent review advisory 评论并逐条确认。 开发 agent 查询详情: 调用 MCP 工具 由 Sentinel 审核 · 目标提交 c9860118c0f1 |
|
Sentinel 保留了 3 个尚未确认的审核候选。这些黄色条目不阻塞合并;红色 P0/P1 与其他独立硬门禁不受影响。 单一猜测、缺少变更行证据或纯 checklist 的候选会统一降为 P3。
需要完整证据时,可用行末 由 Sentinel 审核 · 目标提交 c9860118c0f1 |
A prompt resumed while a session end was closing its open turn had its new turn closed instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A session-end hook killed while holding the lock would otherwise fail every prompt of the resumed session until the lock goes stale, as the draft correction lock already avoids. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Sentinel 已审核此变更,未发现已核验问题,但发现需要人工确认的风险。 另有 2 个需要人工确认的风险;黄色 advisory 不阻塞合并,建议开发 agent review advisory 评论并逐条确认。 开发 agent 查询详情: 调用 MCP 工具 由 Sentinel 审核 · 目标提交 9cadb2bd592f |
|
Merged with maintainer changes: main merged in (session end now goes through |
|
Sentinel 保留了 2 个尚未确认的审核候选。这些黄色条目不阻塞合并;红色 P0/P1 与其他独立硬门禁不受影响。 单一猜测、缺少变更行证据或纯 checklist 的候选会统一降为 P3。
需要完整证据时,可用行末 由 Sentinel 审核 · 目标提交 9cadb2bd592f |
Summary
An older SessionEnd could resume after a new prompt and close the new turn, clear its identity and mark the range closed.
Guard the turn and epoch before closing and before cleanup. Prompt opening and the final session/range writes use a dedicated per-session lifecycle lock. Outbox writes, recall and ancestry probing stay outside that lock. The existing correction-lock fallback remains available.
Evidence
Merge Danger
Two-way. Adds a bounded lifecycle lock using the existing runtime lock implementation. #68 changes the session-end entry path and needs the same expected-turn guard preserved when synchronized.