---
title: checkpoint_manager | CodeWeaver Docs
description: API reference for codeweaver.engine.managers.checkpoint_manager
url: "https://docs.knitli.com/api/engine/managers/checkpoint_manager"
type: static
generatedAt: "2026-04-17T17:21:08.523Z"
---

# checkpoint_manager
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/engine/managers/checkpoint_manager.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F&text=checkpoint_manager)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F&text=checkpoint_manager)[Share on Bluesky](https://bsky.app/intent/compose?text=checkpoint_manager%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F&title=checkpoint_manager)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F&t=checkpoint_manager)[Share on Email](mailto:?subject=checkpoint_manager&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F)[Share on WhatsApp](https://wa.me/?text=checkpoint_manager%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fcheckpoint_manager%2F&text=checkpoint_manager)
# `codeweaver.engine.managers.checkpoint_manager`
[Section titled “codeweaver.engine.managers.checkpoint_manager”](#codeweaverenginemanagerscheckpoint_manager)
Checkpoint and resume functionality for indexing pipeline.

Persists indexing state to enable resumption after interruption.

## Class: `ChangeImpact`
[Section titled “Class: ChangeImpact”](#class-changeimpact)
Classification of configuration change impact on index validity.

Defines how configuration changes affect the need for reindexing operations. Each level represents increasingly severe impacts requiring different handling strategies.

## Class: `CheckpointManager`
[Section titled “Class: CheckpointManager”](#class-checkpointmanager)
Manages checkpoint save/load operations for indexing pipeline.

PURE state management. No default configuration fetching.

This manager now includes unified compatibility checking that bridges:

 - CheckpointSettingsFingerprint (new family-aware comparison)
 - IndexingCheckpoint.matches_settings() (existing validation)

### Method: `delete`
[Section titled “Method: delete”](#method-delete)

**

```
delete()
```

Delete checkpoint file.

### Method: `is_index_valid_for_config`
[Section titled “Method: is_index_valid_for_config”](#method-is_index_valid_for_config)

**

```
is_index_valid_for_config()
```

Unified compatibility check connecting fingerprint and checkpoint logic.

This method bridges the gap between:

 - CheckpointSettingsFingerprint (new family-aware comparison)
 - IndexingCheckpoint.matches_settings() (existing validation)

It implements family-aware compatibility checking for asymmetric embedding configurations while maintaining backward compatibility with existing checkpoint validation logic.

Args: checkpoint: Existing indexing checkpoint new_config: New embedding configuration to check against

Returns: Tuple of (is_valid: bool, impact: ChangeImpact)

 - is_valid: True if checkpoint can be reused with new config
 - impact: Classification of the configuration change impact

### Method: `load`
[Section titled “Method: load”](#method-load)

**

```
load()
```

Load checkpoint from disk if available.

### Method: `save`
[Section titled “Method: save”](#method-save)

**

```
save()
```

Save checkpoint to disk.

## Class: `CheckpointSettingsFingerprint`
[Section titled “Class: CheckpointSettingsFingerprint”](#class-checkpointsettingsfingerprint)
Family-aware configuration fingerprint for checkpoint compatibility checking.

This dataclass captures the critical configuration elements that determine whether an existing index can be reused. It supports asymmetric embedding configurations where query models can change without invalidating the index if they stay within the same model family.

Attributes: embedding_config_type: Whether config is “symmetric” or “asymmetric” embed_model: Document embedding model name embed_model_family: Model family ID for compatibility checks (optional) query_model: Query embedding model name (required for asymmetric configs) sparse_model: Sparse embedding model name (optional) vector_store: Vector store provider name config_hash: Hash of full configuration for validation

### Method: `is_compatible_with`
[Section titled “Method: is_compatible_with”](#method-is_compatible_with)

**

```
is_compatible_with()
```

Check compatibility and classify change impact with family-aware logic.

Implements comprehensive compatibility checking that handles:

 - Asymmetric embedding configs with model families
 - Symmetric embedding model changes
 - Sparse model changes
 - Vector store changes

For asymmetric configs:

 - Same family + same embed model + different query model = COMPATIBLE
 - Different families or embed models = BREAKING

For symmetric configs:

 - Different model = BREAKING

Args: other: The other fingerprint to compare against (typically from checkpoint)

Returns: Tuple of (is_compatible: bool, impact: ChangeImpact)

## Class: `CheckpointSettingsMap`
[Section titled “Class: CheckpointSettingsMap”](#class-checkpointsettingsmap)
Subset of settings relevant for checkpoint hashing.

This is the complete settings map used for hash generation, distinct from the CheckpointSettingsFingerprint which is used for compatibility checking.

## Class: `IndexingCheckpoint`
[Section titled “Class: IndexingCheckpoint”](#class-indexingcheckpoint)
Persistent checkpoint for indexing pipeline state.

### Method: `current_settings_hash`
[Section titled “Method: current_settings_hash”](#method-current_settings_hash)

**

```
current_settings_hash()
```

Compute Blake3 hash of current settings.

### Method: `is_stale`
[Section titled “Method: is_stale”](#method-is_stale)

**

```
is_stale()
```

Check if checkpoint is too old or settings mismatch.

### Method: `matches_settings`
[Section titled “Method: matches_settings”](#method-matches_settings)

**

```
matches_settings()
```

Check if checkpoint settings match current configuration.

## Function: `get_checkpoint_settings_map`
[Section titled “Function: get_checkpoint_settings_map”](#function-get_checkpoint_settings_map)

**

```
get_checkpoint_settings_map()
```

Get relevant settings for checkpoint hashing.

Note: This is a helper for the manager/checkpoint to use. It still needs access to the global settings to compute the hash.

We could also consider vector store changes more carefully — we can migrate vector stores without reindexing if needed.