Commit and snapshot in ask_human before suggesting a main merge

This commit is contained in:
Ian Gulliver
2026-10-20 09:11:19 -07:00
parent 3989c2f156
commit 29c993cde0
10 changed files with 229 additions and 211 deletions
+1 -1
View File
@@ -1664,7 +1664,7 @@ private struct SnapshotRow: View {
.buttonStyle(SmallLinkButtonStyle())
.disabled(forking)
.help("Start a new task from this snapshot, its agent continuing the conversation as it stood here")
if ![.answer, .fork].contains(snap.trigger) {
if ![.answer, .fork, .askHuman].contains(snap.trigger) {
reviewButton
}
Rectangle().fill(Palette.border).frame(height: 1)
+1 -1
View File
@@ -160,7 +160,7 @@ private func reviewWarnings(_ taskId: String, _ store: Store, _ leave: @escaping
async let snapsCall = client.listSnapshots(path: .init(taskId: taskId)).ok.body.json
async let reviewsCall = client.listReviews(path: .init(taskId: taskId)).ok.body.json
let (snaps, reviews) = try await (snapsCall, reviewsCall)
guard let latest = snaps.last(where: { ![.answer, .fork].contains($0.trigger) }) else {
guard let latest = snaps.last(where: { ![.answer, .fork, .askHuman].contains($0.trigger) }) else {
return ([MergeWarning(text: "These changes haven't been reviewed")], false)
}
var items: [MergeWarning] = []
+1 -1
View File
@@ -619,7 +619,7 @@ final class Store {
try await self.loadProjects()
}
case "task.created", "task.title", "task.merge_title", "task.merge_queued", "task.merge_unqueued", "task.merge_after_review", "task.merge_after_review_ended", "task.merge_after_review_cancelled", "task.parent_merge_started", "task.parent_merge_stopped", "task.merge_started", "task.merge_ended", "task.discard_started", "task.merged", "task.discarded", "task.state", "task.ready", "task.discard_suggested", "task.ready_cleared", "snapshot.created":
if let taskId = ev.taskId, ["task.merged", "task.discarded"].contains(ev.kind) || (ev.kind == "snapshot.created" && !["answer", "fork"].contains(str(ev.payload.value, "trigger"))) {
if let taskId = ev.taskId, ["task.merged", "task.discarded"].contains(ev.kind) || (ev.kind == "snapshot.created" && !["answer", "fork", "ask_human"].contains(str(ev.payload.value, "trigger"))) {
clearTask(self, taskId)
}
notifyTask(self, ev)
+1 -1
View File
@@ -467,7 +467,7 @@ final class TranscriptBuilder {
let snap = try! decodePayload(ev.payload, as: Snapshot.self)
let row = Row(.snapshot(snap), taskId: taskId)
ctx.reviewButtons[snap.n] = row
if ![.answer, .fork].contains(snap.trigger) && sink == nil {
if ![.answer, .fork, .askHuman].contains(snap.trigger) && sink == nil {
lastReady = nil
}
put(row)