fix(rendering): slice 18 — committed tool-ownership gap (corpus new-bug ×3)#449
Merged
Juliusolsson05 merged 1 commit intoJul 7, 2026
Conversation
…ug x3) The corpus's biggest confirmed defect: collectCommittedCandidates never mined message.content for tool_use/tool_result blocks, so buildCommittedOwnership().toolUseIds/toolResultIds were ALWAYS empty for claude and a fully-committed but still-semanticCurrent turn kept its finalized tool blocks selected - duplicate tool cards, including the duplicated AskUserQuestion capture (whole-turn suppression is history- only by design, so it never covered this). Fix shape: rows stay ENTRY-grain (the view bridge maps candidate to entry item 1:1 - block-grain committed candidates would paint the entry once per block); ownership evidence goes BLOCK-grain via new plural fields ownedToolUseIds/ownedToolResultIds mined at collection time, unioned into the ownership sets. Corpus effect (re-blessed): the three tool-ownership new-bug divergences are GONE (fixtures 4177cefb, 14-25-07 a8ad1ebb, fc397785 now fully clean), and three duplicate-turn units legacy painted on top of their committed twins disappeared - audited block-by-block: empty thinking + committed-text-owned text + now-owned tool_use, i.e. the duplicate text+tool-card bug those bundles complain about. Verdicted legacy-bug. Corpus new-bug count: 4 -> 1 (remaining: dangling tool chip, next slice). 131 pipeline tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the corpus's biggest confirmed defect:
collectCommittedCandidatesnever minedmessage.contentfor tool_use/tool_result blocks, so committed tool ownership sets were always empty for claude — a fully-committed but still-semanticCurrentturn kept its finalized tool blocks selected, painting duplicate tool cards (including the duplicated-AskUserQuestion capture). Confirmed independently by both triage passes across 4 fixtures.Fix shape: rows stay entry-grain (the view bridge maps candidate → entry item 1:1; block-grain committed candidates would paint the entry once per block); ownership evidence goes block-grain via new plural
ownedToolUseIds/ownedToolResultIdsfields mined at collection time and unioned into the ownership sets.Corpus effect (re-blessed under the stability model):
legacy-bug.131 pipeline tests; tsc gate (node + web) clean.
🤖 Generated with Claude Code