Start a new task from a closed task
This commit is contained in:
@@ -536,11 +536,16 @@ final class TranscriptBuilder {
|
||||
continue
|
||||
}
|
||||
if ev.kind == "task.forked", let fork = str(p, "fork") {
|
||||
if let row = ctx.snapshots[snapKey(int(p, "forked_at") ?? 0)] {
|
||||
let at = int(p, "forked_at") ?? 0
|
||||
if at == 0 {
|
||||
put(Row(.note(Note(parts: [.text("\(ev.actor) continued this task as "), .task(fork)], when: ev.createdAt)), taskId: rowTask))
|
||||
continue
|
||||
}
|
||||
if let row = ctx.snapshots[snapKey(at)] {
|
||||
row.forks.append(fork)
|
||||
continue
|
||||
}
|
||||
put(Row(.note(Note(parts: [.text("\(ev.actor) forked snapshot #\(jsString(p["forked_at"])) as "), .task(fork)], when: ev.createdAt)), taskId: rowTask))
|
||||
put(Row(.note(Note(parts: [.text("\(ev.actor) forked snapshot #\(at) as "), .task(fork)], when: ev.createdAt)), taskId: rowTask))
|
||||
continue
|
||||
}
|
||||
if ev.kind == "review.started" || ev.kind == "review.finished" || ev.kind == "review.finding" {
|
||||
@@ -913,6 +918,12 @@ final class TranscriptBuilder {
|
||||
return note([.text("\(jsString(p["error"])) (\(jsString(p["vendor"])) \(limit["rateLimitType"].map { jsString($0) } ?? "") limit resets \(resets))")], .error)
|
||||
|
||||
case "task.created":
|
||||
if let from = str(p, "forked_from"), p["forked_at"] == nil {
|
||||
if let task = rowTask, task != taskId {
|
||||
return note([.text("\(ev.actor) continued "), .task(from), .text(" as "), .task(task), .text(" here")])
|
||||
}
|
||||
return note([.text("\(ev.actor) continued "), .task(from), .text(" here in a new task, started from main; everything above happened in that task, and its agent continues that conversation")])
|
||||
}
|
||||
if let from = str(p, "forked_from"), let task = rowTask, task != taskId {
|
||||
return note([.text("\(ev.actor) forked "), .task(task), .text(" here from "), .task(from), .text(" at snapshot #\(jsString(p["forked_at"]))")])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user