fix(web): stop marking mixed tool runs as failed - #7893
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
One finding: the overflow ("+N previous log entries") toggle's failure affordance now requires every hidden entry to have failed, which contradicts its own "Hidden work includes a failure" semantics and hides a single failure behind a collapsed group.
Posted via Macroscope — UI Consistency
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Skipped Macroscope did not run approvability analysis for this PR. Macroscope could not determine whether this PR modifies its approvability configuration, so the PR was not approved automatically. A PR that may change the rules that govern approval is never approved automatically. |
There was a problem hiding this comment.
One finding on the collapsed tool-group failure indicator in apps/web/src/components/chat/MessagesTimeline.logic.ts. Server-side changes are outside this check's scope.
Posted via Macroscope — UI Consistency
## What's Changed * fix(web): stop marking mixed tool runs as failed by @t3dotgg in pingdotgg/t3code#7893 **Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260822.1157...v0.0.34-nightly.20260822.1159 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260822.1159
One failed tool call made a mostly successful tool run look like the entire run failed. Real Codex tool failures were also marked successful, so more serious errors could disappear.
Show the failure icon when the final tool call in a group fails. Preserve real tool outcomes for new Codex events and existing threads across web and mobile.
Tests: 120 focused tests, web and server typechecks, targeted lint, and formatting.
Model: GPT-5.6 Sol
Harness: Codex in T3 Code
Note
Medium Risk
Touches Codex item-status mapping and activity projection that feed web/mobile tool UI. Wrong status handling could hide or overstate tool failures, but the change is small and covered by tests.
Overview
Tool groups no longer show a failure icon unless every call in the group failed, so mixed-success runs stay neutral.
Codex
item.completedevents now keep realfailed/declineditem statuses instead of always mapping tocompleted. Activity payload projection does the same for stored threads so web and mobile still see those outcomes.Reviewed by Cursor Bugbot for commit 3760cca. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Fix mixed tool runs being marked as failed in activity projection and timeline
projectActivityPayloadnow overrides a top-levelpayload.statusof"completed"with the embeddeditem.statuswhen it is"failed"or"declined"(ActivityPayloadProjection.ts).mapItemLifecyclein the Codex adapter propagates"failed"or"declined"from the source item intoitem.completedevents instead of always emitting"completed"(CodexAdapter.ts).deriveMessagesTimelineRowscomputeshasFailurefor work-toggle groups from the last visible grouped entry only, so mixed-success groups ending in success are no longer marked failed (MessagesTimeline.logic.ts).hasFailurenow reflects only the terminal entry in a tool group; groups where an earlier entry failed but the last entry succeeded will no longer show a failure indicator.Macroscope summarized 70e686b.