Skip to content

Commit e24284d

Browse files
sirily11claude
andcommitted
feat(sidebar): show code-review verdict dot on briefing thread rows
Render a small status dot on each briefing thread row reflecting the latest code-review verdict for the session: green (statusSuccess) when passed, red (statusError) when issues were found, none when not reviewed. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
1 parent 36e6fb1 commit e24284d

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

RxCode/Views/Sidebar/BriefingThreadRow.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ struct BriefingThreadRow: View {
88
let item: ThreadSummaryItem
99
let isInProgress: Bool
1010
let todoProgress: ChatTodoProgress?
11+
/// Latest code-review verdict for the thread: `true` passed, `false`
12+
/// failed, `nil` not reviewed (no dot shown).
13+
var reviewPassed: Bool? = nil
1114
let onSelect: () -> Void
1215

1316
var body: some View {
@@ -25,6 +28,14 @@ struct BriefingThreadRow: View {
2528
.truncationMode(.tail)
2629
.frame(maxWidth: .infinity, alignment: .leading)
2730

31+
if let reviewPassed {
32+
Circle()
33+
.fill(reviewPassed ? ClaudeTheme.statusSuccess : ClaudeTheme.statusError)
34+
.frame(width: 6, height: 6)
35+
.help(reviewPassed ? "Code review passed" : "Code review found issues")
36+
.accessibilityLabel(reviewPassed ? "Code review passed" : "Code review found issues")
37+
}
38+
2839
if isInProgress {
2940
BriefingThreadProgressBadge(progress: todoProgress)
3041
} else {

RxCode/Views/Sidebar/BriefingView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,8 @@ struct BriefingView: View {
839839
BriefingThreadRow(
840840
item: item,
841841
isInProgress: appState.sessionStates[item.sessionId]?.isStreaming == true,
842-
todoProgress: appState.todoProgress(forSessionId: item.sessionId)
842+
todoProgress: appState.todoProgress(forSessionId: item.sessionId),
843+
reviewPassed: appState.reviewPassedBySession[item.sessionId]
843844
) {
844845
appState.selectSession(id: item.sessionId, in: windowState)
845846
}

0 commit comments

Comments
 (0)