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

# indexing_service
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%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%2Fservices%2Findexing_service%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/engine/services/indexing_service.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F&text=indexing_service)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F&text=indexing_service)[Share on Bluesky](https://bsky.app/intent/compose?text=indexing_service%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F&title=indexing_service)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F&t=indexing_service)[Share on Email](mailto:?subject=indexing_service&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F)[Share on WhatsApp](https://wa.me/?text=indexing_service%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fengine%2Fservices%2Findexing_service%2F&text=indexing_service)
# `codeweaver.engine.services.indexing_service`
[Section titled “codeweaver.engine.services.indexing_service”](#codeweaverengineservicesindexing_service)
Indexing service for orchestrating file discovery, chunking, embedding, and storage.

## Class: `IndexingService`
[Section titled “Class: IndexingService”](#class-indexingservice)
Orchestrates the indexing workflow.

Responsibilities:

 - Coordinate file discovery → chunking → embedding → storage
 - Manage checkpointing at intervals
 - Update file manifest
 - Report progress

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

**

```
index_project()
```

Index the project codebase.

Args: force_reindex: If True, skip persistence checks and reindex everything add_dense: Whether to add dense embeddings add_sparse: Whether to add sparse embeddings progress_callback: Optional granular progress callback

Returns: Number of files indexed

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

**

```
process_changes()
```

Process a batch of file changes (incremental indexing).

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

**

```
reconcile_from_backup()
```

Reconcile primary index from backup store after failover recovery.

This handles the “Smart Promote” logic:

 1. If models match, zero-cost copy vectors.
 1. If chunks are compatible (fit in context), reuse text and re-embed.
 1. If incompatible, fall back to standard indexing (via manifest status).

## Class: `ProgressCallback`
[Section titled “Class: ProgressCallback”](#class-progresscallback)
Protocol for progress callback functions.