fix(programmer): reassignment while paused must not open new segment

Capture whether segment was running before reassignment, and only reopen
for new assignee if it was. A paused task that gets reassigned should not
start accruing time for the new assignee until explicitly resumed.

Also add test: reassignment while paused does not open segment.

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-09-27 20:57:55 +08:00
parent 6beb92d3c6
commit f071cc722d
2 changed files with 35 additions and 2 deletions
+6 -2
View File
@@ -88,6 +88,7 @@ List<WorkedInterval> workedIntervals({
break;
case 'reassigned':
final wasRunning = segmentStart != null;
if (segmentStart != null) {
// Close segment for old assignee
intervals.add((
@@ -95,11 +96,14 @@ List<WorkedInterval> workedIntervals({
start: segmentStart,
end: log.createdAt,
));
segmentStart = null;
}
// Update assignee and reopen segment
// Update assignee and reopen segment only if it was running
if (log.meta?['assignee_id'] != null) {
currentAssignee = log.meta!['assignee_id'] as String;
segmentStart = log.createdAt;
if (wasRunning) {
segmentStart = log.createdAt;
}
}
break;
}