Skip to content

Commit db294ba

Browse files
committed
fix(checkpoint): preserve main data in mergeShards
Fix mergeShards to preserve existing main checkpoint data instead of starting from empty state. This maintains totalPlanned and gitCommit metadata when merging parallel execution shards.
1 parent e92f7a0 commit db294ba

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/experiments/framework/executor/checkpoint-manager.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -437,13 +437,16 @@ export class CheckpointManager {
437437
* @returns The merged checkpoint data
438438
*/
439439
async mergeShards(shardPaths: string[]): Promise<CheckpointData> {
440+
// Start with main checkpoint data, or empty if no checkpoint exists yet
441+
const mainData = this.data;
440442
const merged: CheckpointData = {
441-
configHash: "",
442-
createdAt: new Date().toISOString(),
443+
configHash: mainData?.configHash ?? "",
444+
createdAt: mainData?.createdAt ?? new Date().toISOString(),
443445
updatedAt: new Date().toISOString(),
444-
completedRunIds: [],
445-
results: {},
446-
totalPlanned: 0,
446+
completedRunIds: [...(mainData?.completedRunIds ?? [])],
447+
results: { ...(mainData?.results ?? {}) },
448+
totalPlanned: mainData?.totalPlanned ?? 0,
449+
gitCommit: mainData?.gitCommit,
447450
};
448451

449452
// Load and merge each shard

0 commit comments

Comments
 (0)