refactor(import): add checkpoint.OpenImports helper to dedupe imports-store access · Entire

refactor(import): add checkpoint.OpenImports helper to dedupe imports-store access

d8df6e7→main·

computermode·3w ago·8 files·+20 added/-22 removed

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Sessions

f2e9d10c5908View transcript

[?
Implement Claude History Import FeatureClaude Code·Opus 4.8·3 steps](/content/gh/entireio/cli/session/897809d4-ecab-4dc6-aa21-97661cb62607#timeline-f2e9d10c5908/index.html)

Changes

8

31 unmodified lines

32
33
34
35
36
35
36
37
7 unmodified lines

45
46
47
48
49
50
51
52
53
54
55
56
57
58

31 unmodified lines

// Open resolves the checkpoint storage topology and constructs the backing
// store. It keeps ref resolution and blob-fetcher wiring in one place.
//
//nolint:unparam // Callers treat store construction as fallible at this boundary; the git backend has no fallible setup today.
func Open(ctx context.Context, repo *git.Repository, opts OpenOptions) (*Stores, error) {
    refs := resolveOpenRefs(ctx, opts)
    store := NewGitStore(repo, refs)
7 unmodified lines

}, nil
}

// OpenImports opens the local-only imports store (entire/imports/v1) used for
// read-only imported checkpoints. It is a thin convenience over Open with the
// imports ref topology, shared by every reader/writer of imported history.
func OpenImports(ctx context.Context, repo *git.Repository) (*Stores, error) {
    refs := ImportsRefs()
    return Open(ctx, repo, OpenOptions{Refs: &refs})
}

func resolveOpenRefs(ctx context.Context, opts OpenOptions) PersistentRefs {
    if opts.Refs != nil {
        return *opts.Refs
    }
}

Mcmd/entire/cli/checkpoint/open.go+8/-2

2169 unmodified lines

2170 2171 2172 2173 2174 2173 2174 2175 2176

2169 unmodified lines

// entire/imports/v1 as RewindPoint entries (flagged Imported, not rewindable). // Best-effort: returns nil when the imports ref is absent or unreadable. func getImportedRewindPoints(ctx context.Context, repo *git.Repository) []strategy.RewindPoint { importsRefs := checkpoint.ImportsRefs() stores, err := checkpoint.Open(ctx, repo, checkpoint.OpenOptions{Refs: &importsRefs}) stores, err := checkpoint.OpenImports(ctx, repo) if err != nil { return nil } }

Mcmd/entire/cli/explain.go+1/-2

44 unmodified lines

45
46
47
48
48
49
50
51
66 unmodified lines

118
119
120
121
122

44 unmodified lines

return res, err
    }

stores, err := cp.Open(ctx, repo, cp.OpenOptions{Refs: ptrRefs(cp.ImportsRefs())})
    stores, err := cp.OpenImports(ctx, repo)
    if err != nil {
        return res, fmt.Errorf("open imports store: %w", err)
    }
66 unmodified lines

}
    return nil
}

func ptrRefs(r cp.PersistentRefs) *cp.PersistentRefs { return &r }

Mcmd/entire/cli/importclaude/importer.go+1/-3

74 unmodified lines

75 76 77 78 78 79 80 81 35 unmodified lines

117 118 119 120 120 121 122 123

74 unmodified lines

t.Fatalf("re-run not idempotent: %+v", res2) }

stores, err := cp.Open(context.Background(), repo, cp.OpenOptions{Refs: ptrRefs(cp.ImportsRefs())}) stores, err := cp.OpenImports(context.Background(), repo) if err != nil { t.Fatal(err) } 35 unmodified lines

t.Fatalf("dry-run should count 2 turns, got %+v", res) }

stores, err := cp.Open(context.Background(), repo, cp.OpenOptions{Refs: ptrRefs(cp.ImportsRefs())}) stores, err := cp.OpenImports(context.Background(), repo) if err != nil { t.Fatal(err) }


Mcmd/entire/cli/importclaude/importer\_test.go+2/-2

422 unmodified lines

423 424 425 426 427 426 427 428 429

422 unmodified lines

} defer repo.Close()

importsRefs := checkpoint.ImportsRefs() stores, err := checkpoint.Open(ctx, repo, checkpoint.OpenOptions{Refs: &importsRefs}) stores, err := checkpoint.OpenImports(ctx, repo) if err != nil { return nil }


Mcmd/entire/cli/rewind.go+1/-2

55 unmodified lines

56 57 58 59 60 59 60 61 62

55 unmodified lines

t.Fatal(err) } defer repo.Close() importsRefs := checkpoint.ImportsRefs() stores, err := checkpoint.Open(context.Background(), repo, checkpoint.OpenOptions{Refs: &importsRefs}) stores, err := checkpoint.OpenImports(context.Background(), repo) if err != nil { t.Fatal(err) }


Mcmd/entire/cli/setup\_import\_prompt\_test.go+1/-2

353 unmodified lines

354 355 356 357 358 357 358 359 360

353 unmodified lines

} defer repo.Close()

importsRefs := checkpoint.ImportsRefs() imports, err := checkpoint.Open(ctx, repo, checkpoint.OpenOptions{Refs: &importsRefs}) imports, err := checkpoint.OpenImports(ctx, repo) if err != nil { return base, nil }


Mcmd/entire/cli/strategy/common.go+1/-2

125 unmodified lines

126 127 128 129 130 131 132 133 134 135 129 130 131 132 133 134 135 136

125 unmodified lines

} // Include read-only imported checkpoints from entire/imports/v1, read from // their own store. Best-effort: skipped when the ref is absent. importsRefs := checkpoint.ImportsRefs() if importsStore := checkpoint.NewGitStore(repo, importsRefs); importsStore != nil { importsStore.SetBlobFetcher(FetchBlobsByHash) if importInfos, listErr := importsStore.List(ctx); listErr == nil { for _, info := range importInfos { refs = append(refs, tokensCheckpointRef{store: importsStore, info: info}) } } } importsStore := checkpoint.NewGitStore(repo, checkpoint.ImportsRefs()) importsStore.SetBlobFetcher(FetchBlobsByHash) if importInfos, listErr := importsStore.List(ctx); listErr == nil { for _, info := range importInfos { refs = append(refs, tokensCheckpointRef{store: importsStore, info: info}) } }


Mcmd/entire/cli/tokens\_profile.go+5/-7