mirror metadata refs after DeleteOrphanedCheckpoints · Entire

mirror metadata refs after DeleteOrphanedCheckpoints

e1e89db→main·

pfleidi·1mo ago·2 files·+26 added/-0 removed

DeleteOrphanedCheckpoints commits a cleanup tree on entire/checkpoints/v1 and advances the local branch, but did not update the v1.1 custom ref. In v1.1 mode the mirror still pointed at the pre-cleanup tip, so every NewCommittedReadStore consumer (list/status/explain/dispatch) kept surfacing the just-deleted checkpoints until another v1 write happened to mirror.

Mirror after the SetReference, gated by checkpoints_version through MirrorCommittedMetadataRefBestEffort.

Sessions

7c38d2aad996View transcript

Changes

2

332 unmodified lines

333
334
335
336
337
338
339

332 unmodified lines

if err := repo.Storer.SetReference(newRef); err != nil {
        return nil, nil, fmt.Errorf("failed to update branch: %w", err)
    }
    MirrorCommittedMetadataRefBestEffort(ctx, repo)

// All checkpoints deleted successfully
    return checkpointIDs, []string{}, nil

Mcmd/entire/cli/strategy/cleanup.go+1

226 unmodified lines

227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257

226 unmodified lines

assert.Equal(t, v1Hash, got)
}

// Not parallel: uses t.Chdir().
func TestDeleteOrphanedCheckpoints_MirrorsV1CustomRefWhenEnabled(t *testing.T) {
    dir := setupGitRepo(t)
     t.Chdir(dir)
    enableV1CustomRefMirror(t, dir)

repo, err := git.PlainOpen(dir)
    require.NoError(t, err)
    setV1MetadataBranch(t, repo)
v1HashBefore := v1MetadataBranchHash(t, repo)

cpID := id.MustCheckpointID("aabbccdd1122")
    deleted, failed, err := DeleteOrphanedCheckpoints(t.Context(), []string{cpID.String()})
    require.NoError(t, err)
    require.Empty(t, failed)
    require.Equal(t, []string{cpID.String()}, deleted)

v1HashAfter := v1MetadataBranchHash(t, repo)
    require.NotEqual(t, v1HashBefore, v1HashAfter, "cleanup must advance v1 with a new commit")

mirrorHash, ok := v1CustomRefHash(t, repo)
    require.True(t, ok, "expected %s to exist", paths.MetadataRefName)
    assert.Equal(t, v1HashAfter, mirrorHash, "v1.1 mirror should track v1 after DeleteOrphanedCheckpoints")
}

// Not parallel: uses t.Chdir().
func TestFinalizeAllTurnCheckpoints_MirrorsV1CustomRefWhenEnabled(t *testing.T) {
    dir := setupGitRepo(t)