reviewing is work

This commit is contained in:
Ian Gulliver
2026-10-19 19:05:19 -07:00
parent fae286a7d8
commit 31ee494c41
3 changed files with 12 additions and 7 deletions
+2 -2
View File
File diff suppressed because one or more lines are too long
+10 -3
View File
@@ -125,6 +125,11 @@ final class ChatModel {
builder.open && session?.state == .running builder.open && session?.state == .running
} }
var reviewing: Bool {
let state = taskId.flatMap { store.findTask($0) }?.state
return state == .reviewing || state == .reviewPending
}
var subagents: Bool { var subagents: Bool {
(session?.subagents ?? 0) > 0 (session?.subagents ?? 0) > 0
} }
@@ -742,6 +747,7 @@ private struct TranscriptScroll: View {
var body: some View { var body: some View {
let running = model.running let running = model.running
let active = running || model.reviewing
ScrollView { ScrollView {
VStack(alignment: .leading, spacing: 0) { VStack(alignment: .leading, spacing: 0) {
if model.key == nil { if model.key == nil {
@@ -845,8 +851,8 @@ private struct TranscriptScroll: View {
} }
} }
.overlay { .overlay {
Rectangle().stroke(running ? accent : .clear, lineWidth: 1) Rectangle().stroke(active ? accent : .clear, lineWidth: 1)
.animation(.easeInOut(duration: 0.3), value: running) .animation(.easeInOut(duration: 0.3), value: active)
} }
.overlay(alignment: .topTrailing) { .overlay(alignment: .topTrailing) {
AttentionBar(model: model) AttentionBar(model: model)
@@ -1581,6 +1587,7 @@ private struct SnapshotRow: View {
let showReview: () -> Void let showReview: () -> Void
@Environment(Store.self) private var store @Environment(Store.self) private var store
@Environment(Overlays.self) private var overlays @Environment(Overlays.self) private var overlays
@Environment(\.paneAccent) private var accent
@ViewState private var forking = false @ViewState private var forking = false
var body: some View { var body: some View {
@@ -1658,7 +1665,7 @@ private struct SnapshotRow: View {
} }
} }
} }
.buttonStyle(SmallLinkButtonStyle(color: n > 0 ? Palette.warn : Palette.accent, fill: review?.state == .running ? Palette.accentTint : .clear)) .buttonStyle(SmallLinkButtonStyle(color: n > 0 ? Palette.warn : Palette.accent, border: review?.state == .running ? accent : Palette.border))
.disabled(review == nil || review?.state == .running) .disabled(review == nil || review?.state == .running)
.help(review?.state == .running ? "Review in progress" : review == nil ? "Not reviewed" : "Scroll to the review of snapshot \(snap.n)") .help(review?.state == .running ? "Review in progress" : review == nil ? "Not reviewed" : "Scroll to the review of snapshot \(snap.n)")
} }
-2
View File
@@ -403,7 +403,6 @@ private struct WebButton: View {
struct SmallLinkButtonStyle: ButtonStyle { struct SmallLinkButtonStyle: ButtonStyle {
var color = Palette.accent var color = Palette.accent
var border = Palette.border var border = Palette.border
var fill = Color.clear
@Environment(\.isEnabled) private var enabled @Environment(\.isEnabled) private var enabled
func makeBody(configuration: ButtonStyleConfiguration) -> some View { func makeBody(configuration: ButtonStyleConfiguration) -> some View {
@@ -411,7 +410,6 @@ struct SmallLinkButtonStyle: ButtonStyle {
.font(Fonts.font(11)) .font(Fonts.font(11))
.foregroundStyle(color) .foregroundStyle(color)
.padding(.horizontal, 6) .padding(.horizontal, 6)
.background(fill, in: RoundedRectangle(cornerRadius: 4))
.overlay(RoundedRectangle(cornerRadius: 4).stroke(border)) .overlay(RoundedRectangle(cornerRadius: 4).stroke(border))
.opacity(enabled ? 1 : 0.45) .opacity(enabled ? 1 : 0.45)
.contentShape(Rectangle()) .contentShape(Rectangle())