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

# manifest_manager
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_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%2Fmanifest_manager%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/engine/managers/manifest_manager.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F&text=manifest_manager)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F&text=manifest_manager)[Share on Bluesky](https://bsky.app/intent/compose?text=manifest_manager%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F&title=manifest_manager)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F&t=manifest_manager)[Share on Email](mailto:?subject=manifest_manager&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F)[Share on WhatsApp](https://wa.me/?text=manifest_manager%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fmanagers%2Fmanifest_manager%2F&text=manifest_manager)
# `codeweaver.engine.managers.manifest_manager`
[Section titled “codeweaver.engine.managers.manifest_manager”](#codeweaverenginemanagersmanifest_manager)
File manifest tracking for incremental indexing.

Maintains persistent state of indexed files with content hashes to enable:

 - Detection of new, modified, and deleted files between sessions
 - Incremental indexing (skip unchanged files)
 - Vector store reconciliation
 - Stale entry cleanup

## Class: `FileManifestEntry`
[Section titled “Class: FileManifestEntry”](#class-filemanifestentry)
Single file entry in the manifest.

## Class: `FileManifestManager`
[Section titled “Class: FileManifestManager”](#class-filemanifestmanager)
Manages file manifest save/load operations.

PURE state management.

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

**

```
create_new()
```

Create a new empty manifest.

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

**

```
delete()
```

Delete manifest file.

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

**

```
load()
```

Load manifest from disk if available.

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

**

```
save()
```

Save manifest to disk.

## Class: `FileManifestStats`
[Section titled “Class: FileManifestStats”](#class-filemanifeststats)
Statistics about the file manifest.

## Class: `IndexFileManifest`
[Section titled “Class: IndexFileManifest”](#class-indexfilemanifest)
Persistent manifest of indexed files for incremental indexing.

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

**

```
add_file()
```

Add or update a file in the manifest.

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

**

```
add_files_batch()
```

Add or update multiple files in the manifest in a single operation.

Args: entries: List of dicts, each containing:

 - path: Path object (relative)
 - content_hash: BlakeHashKey
 - chunk_ids: list[str]
 - dense_embedding_provider: str | None (optional)
 - dense_embedding_model: str | None (optional)
 - sparse_embedding_provider: str | None (optional)
 - sparse_embedding_model: str | None (optional)
 - has_dense_embeddings: bool (optional)
 - has_sparse_embeddings: bool (optional)

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

**

```
file_changed()
```

Check if file content has changed.

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

**

```
file_needs_reindexing()
```

Check if file needs reindexing.

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

**

```
get_all_chunk_ids()
```

Get all chunk IDs from all files in the manifest.

Returns: Set of all chunk IDs across all files

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

**

```
get_all_file_paths()
```

Get set of all file paths in the manifest.

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

**

```
get_chunk_ids_for_file()
```

Get chunk IDs for a specific file.

Args: path: Path to the file

Returns: List of chunk IDs, empty list if file not found

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

**

```
get_embedding_model_info()
```

Get embedding model information for a file.

Args: path: Path to the file

Returns: Dict with embedding model info, empty dict if file not found

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

**

```
get_file()
```

Get manifest entry for a file.

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

**

```
get_files_by_embedding_config()
```

Get files matching embedding configuration criteria.

Args: has_dense: Filter by dense embedding presence (None = don’t filter) has_sparse: Filter by sparse embedding presence (None = don’t filter)

Returns: Set of file paths matching the criteria

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

**

```
get_files_needing_embeddings()
```

Get files that need embeddings added.

Categorizes files by what type of embeddings they need:

 - dense_only: Files needing dense embeddings (processed first)
 - sparse_only: Files needing sparse embeddings (but not dense)

Args: current_dense_provider: Currently configured dense provider current_dense_model: Currently configured dense model current_sparse_provider: Currently configured sparse provider current_sparse_model: Currently configured sparse model

Returns: Dict with ‘dense_only’ and ‘sparse_only’ keys containing sets of file paths

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

**

```
get_stats()
```

Get manifest statistics.

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

**

```
has_file()
```

Check if file exists in manifest.

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

**

```
remove_file()
```

Remove a file from the manifest.