Skip to content

fix: 保留取证顺序并防止异常丢失已验证工作 - #83

Draft
imxyanua wants to merge 5 commits into
EvoMap:mainfrom
imxyanua:codex/evidence-claim-order
Draft

imxyanua wants to merge 5 commits into
EvoMap:mainfrom
imxyanua:codex/evidence-claim-order

Conversation

@imxyanua

@imxyanua imxyanua commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

依赖 #79,先保持 Draft。 此分支包含 #79 的提交历史及完整 evidence guard;请先合 #79,再更新本 PR 的 base/diff。这里不请求合并或发布。

这是一个已有的恢复顺序问题,不是 #79 引入的回归。多个已 release 的 .taking chunk 按随机文件名读取时,实际的“pass → fail”可能变成“fail → pass”,从而误报最后一次验证成功。

 recover tool evidence
- 随机 claim 文件名决定 chunk 次序
+ 在短 admission 内分配 ordinal,reclaim 保留原 ordinal
+ 完整读取 guard 保留,generic queue 仍可读取新 append
+ 多个旧格式 chunk 无法还原次序时标记 unknown,不推断 last-check pass

排序不依赖被 claim/release 改写的 mtime,也不改 note 内容。可信 native transcript 仍可提供完整 record;无法确定顺序的旧 notes 单独不足以生成 report/candidate,旧 baseline 也不猜测 first hash 或 retention。prune 同时识别 legacy、numbered 和 unknown claim。

同时处理 Sentinel 指出的成功取证后的异常路径:bookkeeping 完成前不 commit evidence;processing 失败归还 notes/baseline,并只 reopen 原 native turn;processing 完成后的部分 cleanup 失败不 reopen。retention append 报错时先保住已验证 candidate,再返回错误,不盲目重试可能已落盘的 append。空 retry 保留 labelable;已有当前 turn 的 pendingReport 表明 retention 可能执行过,retry 不再重复追加。

Evidence

  • 在旧 main 和 fix: keep native evidence complete after a failed claim release #79 HEAD、Windows Node 22 / 26 上均重现错误成功报告。
  • 新回归以固定逆序 nonce 重现两种方向:pass → fail 与 fail → pass。新数据多次 release/reclaim 后保留正确次序。
  • 覆盖两个 Windows process 竞争、generic concurrent takes、legacy/mixed chunk、unknown marker 不被洗成可信顺序、byte preservation、native/hook notes 与 authoritative record、baseline、pruning,以及 rename 后 metadata/release 错误。
  • 额外 legacy reader race 回归:旧 reader 在新 admission 内转移 target 时,不允许完整读取返回空 evidence;去掉 post-scan 后失败,保留后通过。
  • 独立 ordering patch 的 lifecycle/store/lock/architecture:Windows Node 22 / 26 均 141/141。
  • post-read 异常新增 9 个回归,覆盖 retention 在 append 前/后报错、candidate 在写前/后报错、重复 terminal/owner recovery、partial commit、release 错误、新 prompt,以及 queue/retention/candidate 组合失败。修复前 7 fail / 1 原有 guard pass;修复后相关套件 Windows Node 22 / 26 均 163/163。
  • 最终与 fix: scope Kimi task reads to the requested turn on main #77/fix: derive reuse lineage from the fitted record on main #78/fix: keep native evidence complete after a failed claim release #79/fix: keep stale session cleanup from closing a replacement range #80/fix(test): 避免 Step Code Windows suite 重复打包和依赖全局 Core #82 合并的临时验证树 483ec1dd3bcc740253d35fc8a8cf1abe1c7c3024:Windows Node 22 / 26 均 308/308,两个版本的全部 host pack 通过。未放宽原断言、timeout 或 CI gate。
  • 最新 Sentinel 的“无报告 retry 重复写 retention”advisory 已按生产 port 核验:reuses=[] 时真实 retention store 在 hash/append 前返回。已有 candidate/recovery/compound 四个回归检查实际 retention 文件或 append 次数;在当前 HEAD 重跑 Node 22 / 26 均 4/4,不需要改产品代码。
  • 官方 Test and release 在 43144da65957fdbc3555d3d9d14af11b7dc125d4 上 6/6 测试 job 通过,覆盖 Linux 全量测试和 Linux/Windows Node 22 / 26 的 host tests 与打包。

Merge Danger

Door: two-way

Blast Radius: evidence recovery

旧数据缺失的次序无法凭空修复:没有 authoritative record 的模糊旧 turn 会按未验证处理,需要重新验证。更新后应重启仍加载旧 plugin 的 host/worker;旧 reader 自己不会遵循新 ordinal 协议。

retention 写入结果不明时仍返回错误,可能缺少本次 calibration,优先避免重复追加和丢失 repair candidate。candidate processing 重试已验证到 terminal redelivery / authoritative turnStatus recovery;未证明所有 resident host 都会自动 redeliver terminal,Step 无 durable terminal receipt 的限制仍在。没有添加新的 transaction journal。

未调用真实 provider/Hub,未合并或发布。

@cursor

cursor Bot commented Nov 12, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@evomap-aiqa-bot

evomap-aiqa-bot Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Sentinel 已审核此变更,未发现已核验问题,但发现需要人工确认的风险。

另有 1 个需要人工确认的风险;黄色 advisory 不阻塞合并,建议开发 agent review advisory 评论并逐条确认。

开发 agent 查询详情: 调用 MCP 工具 sentinel_pr_review_context,传入 owner_repo="evomap/evolver-agent-plugin"、pr_number=83、head_sha="263c2f586319e3d9275dd7526f6997e8eafbd22c",并按条目追加 finding_id 或 finding_key。

由 Sentinel 审核 · 目标提交 263c2f586319

@evomap-aiqa-bot

Copy link
Copy Markdown

Sentinel 保留了 1 个尚未确认的审核候选。这些黄色条目不阻塞合并;红色 P0/P1 与其他独立硬门禁不受影响。 单一猜测、缺少变更行证据或纯 checklist 的候选会统一降为 P3。
开发 agent:请 review 以下 advisory,并逐条给出“已验证无风险 / 已修复 / 转为后续事项”的结论;不要只做整体确认。

  • [P3] 成功取证后的下游异常会让重试被自身 claim 锁住 — 本次修改让两个 evidence store 都以 requireComplete: true 取证,但成功返回后只有 commit 路径,...(truncated) · lib/runtime/store/file-stores.js · advisory_a3b4b406e5511359a456baeb

需要完整证据时,可用行末 finding_key 查询 Sentinel PR review context。

由 Sentinel 审核 · 目标提交 263c2f586319

@cursor

cursor Bot commented Nov 12, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@evomap-aiqa-bot

evomap-aiqa-bot Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Sentinel 已审核此变更,未发现已核验问题,但发现需要人工确认的风险。

另有 1 个需要人工确认的风险;黄色 advisory 不阻塞合并,建议开发 agent review advisory 评论并逐条确认。

开发 agent 查询详情: 调用 MCP 工具 sentinel_pr_review_context,传入 owner_repo="evomap/evolver-agent-plugin"、pr_number=83、head_sha="43144da65957fdbc3555d3d9d14af11b7dc125d4",并按条目追加 finding_id 或 finding_key。

由 Sentinel 审核 · 目标提交 43144da65957

@evomap-aiqa-bot

Copy link
Copy Markdown

Sentinel 保留了 1 个尚未确认的审核候选。这些黄色条目不阻塞合并;红色 P0/P1 与其他独立硬门禁不受影响。 单一猜测、缺少变更行证据或纯 checklist 的候选会统一降为 P3。
开发 agent:请 review 以下 advisory,并逐条给出“已验证无风险 / 已修复 / 转为后续事项”的结论;不要只做整体确认。

  • [P2] 无报告的处理重试会重复写入 retention 记录 — 新增的 retentionMayHaveRun 只通过 opened.injected[*].pendingReport 判断上次是否已经执行 retention。...(truncated) · lib/app/turn-end.js · advisory_87d53ff562015d1b4b9a1568

需要完整证据时,可用行末 finding_key 查询 Sentinel PR review context。

由 Sentinel 审核 · 目标提交 43144da65957

@imxyanua imxyanua changed the title fix: 保留 evidence claim 恢复顺序,避免误报验证成功 fix: 保留取证顺序并防止异常丢失已验证工作 Nov 12, 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