Skip to content

fix: scope Kimi task reads to the requested turn - #72

Merged
forrestlinfeng merged 6 commits into
EvoMap:claude/ecstatic-bartik-c7aa95from
imxyanua:codex/kimi-turn-tasks
Nov 11, 2026
Merged

forrestlinfeng merged 6 commits into
EvoMap:claude/ecstatic-bartik-c7aa95from
imxyanua:codex/kimi-turn-tasks

Conversation

@imxyanua

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #68. Read background task files only when a tool call in the requested Kimi turn names them. A truncated JSON file from an earlier turn can no longer hide a later foreground test pass.

Evidence

  • Before, corrupting an old task file made the current completed turn disappear.
  • The regression now preserves the current passing check, while the turn owning the damaged task still has no usable row.
  • Runtime, Kimi readers and architecture tests passed 23/23 on Node 26. The same tests plus Kimi lifecycle passed 30/30 on Windows Node 22.

Merge Danger

Two-way. This PR targets the #68 branch and should land with that change. Requested-turn task validation remains fail-closed.

forrestlinfeng and others added 2 commits November 10, 2026 22:56
…the ledger, resend source refusals

Distill requests carry reused_asset_ids: the sha256 assets the session's
injection ledger booked into the turns the range covers (same session epoch),
in injection order, at most 20, left out when there are none or the session
file cannot be read. Proxy 2.0.50 and 2.0.38 distill the same Gene with or
without the field, so no version gate is needed.

Local ledger events (value.reuse_hit / value.reuse_outcome) also carry
platform, taskId, tier and stage. evolver-core's root event schema keeps the
payload open (z.unknown since it was introduced), and 2.0.50's Ingestor and the
protected-audit envelope check accept the enriched payload.

A report the Hub refuses with validation_error while carrying evidence.source
is sent once more without source; that answer settles it and the outbox keeps
the report as last sent. Old rejected entries are not re-driven.

Tests stop writing into the developer's home: the MiniMax lifecycle fixture
points the process home at its fixture (the resident ledger thread reads
process.env), with a test that the reuse lands there. The dsh helper stops
every loaded plugin before its fixture Proxy and home go away, and the
proxyPort test keeps a current Proxy version in settings: a session start
raised as a test ended used to find no Proxy, install the real engine from npm
and start its Proxy on the default port under the process's own home.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@evomap-aiqa-bot

evomap-aiqa-bot Bot commented Nov 11, 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=72、head_sha="41fcb115d411f6e38de80d5b4a3f76dcc5275c99",并按条目追加 finding_id 或 finding_key。

由 Sentinel 审核 · 目标提交 41fcb115d411

@evomap-aiqa-bot

Copy link
Copy Markdown

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

  • [P3] 当前 turn 的 TaskOutput 仍可让旧任务损坏拖垮整个 turn — taskIdsOf 会把当前 turn 中 TaskOutput 参数指向的旧任务加入读取列表;tasksOf 随后解析该旧...(truncated) · hosts/kimi/transcript.js · advisory_3152e93b36a827482f82ab06

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

由 Sentinel 审核 · 目标提交 41fcb115d411

forrestlinfeng and others added 4 commits November 10, 2026 18:04
feat(reuse): 蒸馏关联复用资产,账本写明宿主,source 被拒的报告补发
Run Kimi on the shared late-terminal mechanism and drop its own
A TaskOutput call can name another turn's task, which no note of this turn reads; a damaged file of that task
still hid the turn reading its output.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@forrestlinfeng

Copy link
Copy Markdown
Contributor

Merged with a maintainer fix: taskIdsOf now collects only task ids from the requested turn's Bash results, so a current-turn TaskOutput naming an earlier turn's damaged task file can no longer hide the current turn (the decoder matches tasks by the turn's own Bash calls). The shared regex moved into backgroundTaskOf; the session-log test covers the TaskOutput case. Thanks!

@forrestlinfeng
forrestlinfeng merged commit 7b1c097 into EvoMap:claude/ecstatic-bartik-c7aa95 Nov 11, 2026
6 checks passed
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.

2 participants