Add ready, discard, merge-problem and workflow notifications

This commit is contained in:
Ian Gulliver
2026-10-19 19:35:23 -07:00
parent 31ee494c41
commit 88d1146778
7 changed files with 276 additions and 215 deletions
+31
View File
@@ -118,6 +118,37 @@ func clearTurns(_ taskId: String, through seq: Int64) {
}
}
@MainActor
func notifyTask(_ store: Store, _ ev: ByreEvent) {
guard let me = store.me, let taskId = ev.taskId, !taskId.isEmpty else {
return
}
let prefs = me.notificationPrefs
let origin = store.api.origin.absoluteString
switch ev.kind {
case "task.ready" where prefs.ready:
show(store, taskId, "task-\(taskId)@\(origin)", "Ready to merge: \(str(ev.payload.value, "overview") ?? "")")
case "task.discard_suggested" where prefs.discard:
show(store, taskId, "task-\(taskId)@\(origin)", "Suggests discard: \(str(ev.payload.value, "reason") ?? "")")
case "task.merge_stopped" where prefs.mergeProblems:
show(store, taskId, "task-\(taskId)@\(origin)", "Merge stopped: \(str(ev.payload.value, "reason") ?? "")")
case "task.merge_after_review_dropped" where prefs.mergeProblems:
show(store, taskId, "task-\(taskId)@\(origin)", "Didn't merge after the review: \(str(ev.payload.value, "reason") ?? "")")
case "task.workflow_finished" where prefs.workflows:
show(store, taskId, "workflow-\(ev.seq)@\(origin)", "Finished \(str(ev.payload.value, "workflow") ?? ""): \(str(ev.payload.value, "output") ?? "")")
default:
break
}
}
@MainActor
func clearTask(_ store: Store, _ taskId: String) {
let id = "task-\(taskId)@\(store.api.origin.absoluteString)"
enqueue {
UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: [id])
}
}
@MainActor
func notifyTurn(_ store: Store, _ ev: ByreEvent) {
guard let me = store.me, me.notificationPrefs.reports, ev.payload.value["summary"] as? Bool == true, let taskId = ev.taskId, !taskId.isEmpty else {