feat(worker,data): persist interactive session id so a closed/aborted ConPTY session can be resumed

Generates the claude session id up front (--session-id <guid>) for a fresh interactive task
session and persists it to TaskEntity.InteractiveSessionId before launch, so an abort at any
point still leaves a resumable id. BuildForTaskAsync now resumes this task's own last
interactive session in preference to the latest autonomous run's session, but never across a
freshly (re)created worktree.
This commit is contained in:
mika kuns
2026-08-06 13:27:52 +02:00
parent 0d1e3b9a6f
commit 1a988ff4fc
10 changed files with 1054 additions and 26 deletions
+6
View File
@@ -60,6 +60,12 @@ public sealed class TaskEntity
public string? HandlerBaseCommit { get; set; }
public string? HandlerHeadCommit { get; set; }
// The claude session id an embedded ConPTY interactive task session is (or was last)
// running under -- generated up front and persisted before launch so a closed/aborted
// session can be resumed even if the process never got past startup. Cleared implicitly
// whenever the task's worktree is recreated (a fresh worktree has nothing to resume into).
public string? InteractiveSessionId { get; set; }
public string? ParentTaskId { get; set; }
public string? PlanningSessionId { get; set; }
public string? PlanningSessionToken { get; set; }