@zeniai/client-epic-state 5.1.18-betaDI5 → 5.1.18-betaDI7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -396,12 +396,18 @@ const taskList = createSlice({
396
396
  const newStatusCode = toTaskStatusCodeType(updates.status.code);
397
397
  draft.taskIdsByStatus[newStatusCode].push(taskId);
398
398
  // Optimistically re-bucket between the live and completed tabs
399
- // when status transitions across the done/resolved boundary, so
400
- // the task moves to the Completed tab without waiting for the
401
- // next fetch. Mirrors backend split in task_handler.py.
402
- const wasCompleted = prevStatusCode === 'done' || prevStatusCode === 'resolved';
403
- const isCompleted = newStatusCode === 'done' || newStatusCode === 'resolved';
404
- if (wasCompleted !== isCompleted) {
399
+ // when status transitions in/out of "resolved", so the task
400
+ // moves to the Completed tab without waiting for the next
401
+ // fetch. Mirrors backend split in task_handler.py: only
402
+ // `resolved` counts as completed; `done` stays Active.
403
+ //
404
+ // Subtasks travel with their parent — they appear nested under
405
+ // the parent row, not as standalone entries in byTab.taskIds.
406
+ // So we only rebucket parent tasks (tasks with no parentTaskId).
407
+ const isParent = task.parentTaskId == null;
408
+ const wasCompleted = prevStatusCode === 'resolved';
409
+ const isCompleted = newStatusCode === 'resolved';
410
+ if (isParent && wasCompleted !== isCompleted) {
405
411
  const from = isCompleted ? 'live' : 'completed';
406
412
  const to = isCompleted ? 'completed' : 'live';
407
413
  removeIdsFromTabData(draft.byTab[from], [taskId]);
@@ -400,12 +400,18 @@ const taskList = (0, toolkit_1.createSlice)({
400
400
  const newStatusCode = (0, taskState_1.toTaskStatusCodeType)(updates.status.code);
401
401
  draft.taskIdsByStatus[newStatusCode].push(taskId);
402
402
  // Optimistically re-bucket between the live and completed tabs
403
- // when status transitions across the done/resolved boundary, so
404
- // the task moves to the Completed tab without waiting for the
405
- // next fetch. Mirrors backend split in task_handler.py.
406
- const wasCompleted = prevStatusCode === 'done' || prevStatusCode === 'resolved';
407
- const isCompleted = newStatusCode === 'done' || newStatusCode === 'resolved';
408
- if (wasCompleted !== isCompleted) {
403
+ // when status transitions in/out of "resolved", so the task
404
+ // moves to the Completed tab without waiting for the next
405
+ // fetch. Mirrors backend split in task_handler.py: only
406
+ // `resolved` counts as completed; `done` stays Active.
407
+ //
408
+ // Subtasks travel with their parent — they appear nested under
409
+ // the parent row, not as standalone entries in byTab.taskIds.
410
+ // So we only rebucket parent tasks (tasks with no parentTaskId).
411
+ const isParent = task.parentTaskId == null;
412
+ const wasCompleted = prevStatusCode === 'resolved';
413
+ const isCompleted = newStatusCode === 'resolved';
414
+ if (isParent && wasCompleted !== isCompleted) {
409
415
  const from = isCompleted ? 'live' : 'completed';
410
416
  const to = isCompleted ? 'completed' : 'live';
411
417
  removeIdsFromTabData(draft.byTab[from], [taskId]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.1.18-betaDI5",
3
+ "version": "5.1.18-betaDI7",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",