makecindy / makecindy/cindy

维护者确认:PR #2558 fix(desktop): seal recovered predecessor plans

Open
#2,595 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

该 PR 需要维护者确认(arch 触发:核心路径改动 795 行)。

改动内容:
- 新增 `RecoveryPlanSettlement` 类(maker-ipc/recoveryPlanSettlement.ts),把恢复计划的 settleDone / settleError 收口改为带 `turnGeneration` / `isCurrentGeneration` 的世代校验,只允许当前 provider 世代结算;
- `messagePersistBroadcaster` 新增 `persistRecoveredCodexPlanOnDone` / `closeCodexPlanUpdatesForRecovery` / `isCodexPlanUpdateClosed`,在恢复回合持久化时封口 predecessor plan 的 update_plan 事件;
- `forkSessionAtMessage` 改为先 drain 持久化队列再读 fork 快照;sessionActiveTurn / agentInputQueue 相关契约同步调整。

这改变了恢复/编排热路径上的跨模块数据契约(新类、新导出、结算调用新参数),不是同结构内的实现替换,因此进入维护者确认。

确认方式:
- 认可本次结构调整 → 直接在 PR 上 Approve,门即放行;
- 需要修改 → Request Changes 写明要求,作者改完重新推代码后,再 Approve 即放行。

关联 PR:https://github.com/makecindy/cindy/pull/2558

---
关联 PR:#2558(作者 @zyaoii);本 issue 由 review-pr 流程自动创建,用于先讨论该 PR 涉及的技术架构调整,维护者确认后 PR 会恢复推进。

Contributor guide

Open the contributing guide

Research direction

Review PR #2558 and start with maker-ipc/recoveryPlanSettlement.ts, messagePersistBroadcaster, and forkSessionAtMessage. Check how turnGeneration, recovery persistence, and queue draining change the sessionActiveTurn and agentInputQueue contracts. Done means a maintainer approves the architectural change, or requests changes for the author to address.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend, desktop
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.