Reported from the review UI: a review comment anchored to lines that are no longer in the current diff renders with an Outdated badge, and the thread then offers no way to reply, comment, or resolve — the composer is gone.
A thread going outdated (its lines moved or fell out of the diff after a new commit) is exactly when a conversation about it is still useful: the reviewer wants to reply "still applies, see line X", or resolve it as handled. Hiding the affordances strands the thread.
Expected: an outdated thread keeps its reply and resolve controls. The Outdated badge is enough signal that the anchor is stale; it should not disable the conversation. (The line-anchored composer for a brand-new comment on a vanished line can stay unavailable — this is specifically about a thread that already exists.)
Repro: leave a review comment on a line, commit a change that moves or removes that line, reopen the review for the new head — the thread shows Outdated with no reply box.
Reported from the review UI: a review comment anchored to lines that are no longer in the current diff renders with an Outdated badge, and the thread then offers no way to reply, comment, or resolve — the composer is gone.
A thread going outdated (its lines moved or fell out of the diff after a new commit) is exactly when a conversation about it is still useful: the reviewer wants to reply "still applies, see line X", or resolve it as handled. Hiding the affordances strands the thread.
Expected: an outdated thread keeps its reply and resolve controls. The Outdated badge is enough signal that the anchor is stale; it should not disable the conversation. (The line-anchored composer for a brand-new comment on a vanished line can stay unavailable — this is specifically about a thread that already exists.)
Repro: leave a review comment on a line, commit a change that moves or removes that line, reopen the review for the new head — the thread shows Outdated with no reply box.