fix(day-sheet): composite key prevents duplicate-key crash for helper+assignee rows

buildDayRows can emit both an 'assignee' row and a 'helper' row for the
same taskId when a programmer previously held a task (accumulated clock
time) and later helped on it after reassignment. ValueKey(row.taskId)
collided in that case, crashing Flutter's widget tree with a red screen.

Fixed by keying on taskId:kind, making each row unique.

Caught during targeted QA on the new loading-state / dialog flows.

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-09-28 22:48:12 +08:00
parent 88848138d9
commit 8220482465
@@ -53,7 +53,7 @@ class DaySheetRowsTable extends StatelessWidget {
children: [
for (final row in rows)
_RowTile(
key: ValueKey(row.taskId),
key: ValueKey('${row.taskId}:${row.kind}'),
row: row,
isFlagged: flaggedTaskIds.contains(row.taskId),
isSelected: selectedTaskIds?.contains(row.taskId) ?? false,