fix: threads with open PRs no longer auto-settle - #5151
Conversation
An open change request blocks the inactivity auto-settle path in effectiveSettled: a thread with a PR out for review is unfinished work regardless of how quiet it has been. Merge/close still settles immediately, and an explicit user settle still wins. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
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 |
ApprovabilityVerdict: Approved 944c87c Small, focused bug fix that adds a single conditional check to prevent auto-settling threads when a PR is open. The change is well-scoped, clearly intentional, and tested to confirm user explicit settles still work. You can customize Macroscope's approvability policy. Learn more. |
## What's Changed * feat(web): add settings sidebar search by @shivamhwp in pingdotgg/t3code#4682 * fix: threads with open PRs no longer auto-settle by @t3dotgg in pingdotgg/t3code#5151 * fix(server): bound thread catch-up replay and stop full-DB snapshot hydration by @t3dotgg in pingdotgg/t3code#5147 **Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260731.968...v0.0.32-nightly.20260801.969 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260801.969
(cherry picked from commit 491219b)
Threads with a PR out for review were auto-settling after the inactivity window, hiding unfinished work in the settled tail. Review can take days of silence; quiet is not done.
An open change request now blocks the inactivity path in the shared
effectiveSettled(used by web sidebar, ChatView, and mobile). Merge/close still settles immediately, an explicit user settle still wins, and the existing activity blockers are unchanged. Client-side only — the server has no inactivity auto-settle.Extended the truth table plus a focused test for open-PR staleness and explicit settle.
Written by Claude Fable 5 via Claude Code.
🤖 Generated with Claude Code
Note
Low Risk
Client-only settled-state logic with expanded tests; no server or auth changes, but inbox visibility behavior shifts for stale threads with open PRs.
Overview
Threads with an open change request no longer auto-settle when they pass the inactivity window. Quiet time during review was incorrectly moving them into the settled tail and hiding unfinished PR work.
effectiveSettledin client-runtime now treatschangeRequestState === "open"as blocking the inactivity path only: merged/closed PRs still auto-settle immediately, explicitsettledOverride === "settled"still wins, and existing blockers (pending approvals, live session, queued turn) are unchanged. This is client-side classification for sidebar/ChatView/mobile list partitioning.Tests extend the truth table and add a case for stale + open PR (plus explicit settle still settling).
Reviewed by Cursor Bugbot for commit 944c87c. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Prevent threads with open PRs from auto-settling due to inactivity
Adds an early return in
effectiveSettledso that threads withchangeRequestState === "open"always returnfalse, bypassing the inactivity-based auto-settle path. Threads with open PRs now only settle via an explicit user action or when the change request is merged or closed.Macroscope summarized 944c87c.