Skip to content
This repository was archived by the owner on Nov 10, 2026. It is now read-only.

fix: verify persisted artifacts before settling distillation - #56

Open
likaho991007-design wants to merge 1 commit into
EvoMap:mainfrom
likaho991007-design:codex/verify-distill-persistence
Open

likaho991007-design wants to merge 1 commit into
EvoMap:mainfrom
likaho991007-design:codex/verify-distill-persistence

Conversation

@likaho991007-design

Copy link
Copy Markdown

With persist:true, a successful /conversation/distill HTTP envelope can still contain a rejected or unstored result. Treating transport success as a successful distillation removes the candidate even when no reusable Gene/Capsule was saved.

Require a stored business receipt before returning sent: ok:true, status:stored, non-empty Gene and Capsule asset IDs, and no explicit quality rejection. Preserve the response, error reason and model usage on failure so existing candidate retry handling can work. Optional quality metadata may be absent; an ID-only reply is not persistence proof.

Validation on the Linux SSH test server with Node.js 22.23.3:

  • The new end-to-end rejection regression fails on unchanged upstream f7b4cde with sent instead of failed.
  • All 178 tests pass with node --test --test-concurrency=1 test/*.test.js after installing the declared development dependencies (dsh-llm, dsh-skill, dsh-tools 0.1.5-rc.3 and evolver-core 2.0.38).
  • The end-to-end regression confirms that a rejected candidate remains available for retry. Receipt cases cover drafts, rejected/malformed responses, invalid IDs and preserved usage.

Success fixtures now return the real stored-receipt shape, including the mock HTTP server previously returning only recorded:true for distillation. Initial missing-dependency/fixture failures and the final passing logs are retained. This PR changes neither recall, distillation prompts, publication policy, lifecycle timing nor engine code.

@cursor

cursor Bot commented Oct 30, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@evomap-aiqa-bot

evomap-aiqa-bot Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

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

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

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

由 Sentinel 审核 · 目标提交 898028e7da71

@evomap-aiqa-bot

Copy link
Copy Markdown

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

  • [P2] 已持久化但质量标记为 false 时触发重复蒸馏 — 新增判断将 status === "stored" 且已有 gene、capsule 标识的回执,仅因 quality.ok === false 标��...(truncated) · src/distill-receipt.js · advisory_c7ab8a6ab05c7237fbd7ca1a
  • [P3] 强制新版回执结构破坏旧版 Proxy 兼容性 — 此前任何 result.ok 的响应都会标记为 sent;现在必须同时包含 data.ok === true、status === "st...(truncated) · src/distill-receipt.js·advisory_638ad479e291d9085d09315f`

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

由 Sentinel 审核 · 目标提交 898028e7da71

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant