feat(data): TaskRepository.UpdatePlanningSessionIdAsync

This commit is contained in:
mika kuns
2026-04-23 17:58:28 +02:00
parent 2278d97b7e
commit d099138487
2 changed files with 25 additions and 0 deletions

View File

@@ -282,6 +282,17 @@ public sealed class TaskRepository
return await _context.Tasks.AsNoTracking().FirstOrDefaultAsync(t => t.Id == taskId, ct); return await _context.Tasks.AsNoTracking().FirstOrDefaultAsync(t => t.Id == taskId, ct);
} }
public async Task UpdatePlanningSessionIdAsync(
string parentId,
string sessionId,
CancellationToken ct = default)
{
await _context.Tasks
.Where(t => t.Id == parentId)
.ExecuteUpdateAsync(s => s
.SetProperty(t => t.PlanningSessionId, sessionId), ct);
}
#endregion #endregion
#region Queue selection #region Queue selection

View File

@@ -152,4 +152,18 @@ public sealed class TaskRepositoryPlanningTests : IDisposable
Assert.Equal(TaskStatus.Queued, loaded!.Status); Assert.Equal(TaskStatus.Queued, loaded!.Status);
Assert.Null(loaded.PlanningSessionToken); Assert.Null(loaded.PlanningSessionToken);
} }
[Fact]
public async Task UpdatePlanningSessionIdAsync_StoresClaudeSessionId()
{
var listId = await CreateListAsync();
var task = MakeTask(listId, TaskStatus.Manual);
await _tasks.AddAsync(task);
await _tasks.SetPlanningStartedAsync(task.Id, "tok");
await _tasks.UpdatePlanningSessionIdAsync(task.Id, "claude-session-42");
var loaded = await _tasks.GetByIdAsync(task.Id);
Assert.Equal("claude-session-42", loaded!.PlanningSessionId);
}
} }