fix(FN-4595): preserve cumulative timing fields in sparse SSE merges

Fusion-Task-Id: FN-4595
Fusion-Task-Lineage: 73a3d0ad-5c10-4560-aec5-f9d138deeefd
This commit is contained in:
Fusion
2026-05-15 07:36:06 -07:00
committed by gsxdsm
parent 3648d1e1df
commit 16fa629a8e
2 changed files with 8 additions and 0 deletions

View File

@@ -536,6 +536,8 @@ describe("useTasks", () => {
status: "planning",
columnMovedAt: "2026-01-02T00:00:00Z",
executionStartedAt: "2026-01-01T23:50:00Z",
firstExecutionAt: "2026-01-01T23:50:00Z",
cumulativeActiveMs: 240_000,
worktree: "/tmp/fn-001",
modifiedFiles: ["packages/dashboard/app/components/QuickChatFAB.tsx"],
timedExecutionMs: 120_000,
@@ -576,6 +578,8 @@ describe("useTasks", () => {
}),
columnMovedAt: undefined,
executionStartedAt: undefined,
firstExecutionAt: undefined,
cumulativeActiveMs: undefined,
worktree: undefined,
modifiedFiles: undefined,
timedExecutionMs: undefined,
@@ -591,6 +595,8 @@ describe("useTasks", () => {
expect(result.current.tasks[0].status).toBe("executing");
expect(result.current.tasks[0].columnMovedAt).toBe("2026-01-02T00:00:00Z");
expect(result.current.tasks[0].executionStartedAt).toBe("2026-01-01T23:50:00Z");
expect(result.current.tasks[0].firstExecutionAt).toBe("2026-01-01T23:50:00Z");
expect(result.current.tasks[0].cumulativeActiveMs).toBe(240_000);
expect(result.current.tasks[0].worktree).toBe("/tmp/fn-001");
expect(result.current.tasks[0].modifiedFiles).toEqual([
"packages/dashboard/app/components/QuickChatFAB.tsx",

View File

@@ -35,6 +35,8 @@ function mergeSameColumnTask(current: Task, incoming: Task): Task {
columnMovedAt: current.columnMovedAt ?? incoming.columnMovedAt,
executionStartedAt: current.executionStartedAt ?? incoming.executionStartedAt,
executionCompletedAt: current.executionCompletedAt ?? incoming.executionCompletedAt,
firstExecutionAt: current.firstExecutionAt ?? incoming.firstExecutionAt,
cumulativeActiveMs: incoming.cumulativeActiveMs ?? current.cumulativeActiveMs,
worktree: incoming.worktree ?? current.worktree,
modifiedFiles: incoming.modifiedFiles ?? current.modifiedFiles,
timedExecutionMs: incoming.timedExecutionMs ?? current.timedExecutionMs,