feat: harmonize MCP tool + userinfo page to documents/chunks model

Extend the documents-vs-chunks split to the remaining status surfaces so all
three report consistently (Deck #195):

- nc_get_vector_sync_status MCP tool + VectorSyncStatusResponse: add
  indexed_documents (distinct) and indexed_chunks; keep indexed_count as a
  deprecated alias of indexed_chunks. Reuses count_indexed.
- userinfo HTML page (/app/vector-sync/status): show Indexed Documents AND
  Indexed Chunks rows; switch its count to count_indexed (which also excludes
  placeholder points — the old raw count included them).
- /api/v1/vector-sync/status: restore indexed_count as a deprecated alias of
  indexed_chunks so existing consumers (integration tests, pre-#115 UI) keep
  working; the change is now purely additive for indexed_count.

Tests: VectorSyncStatusResponse documents/chunks/alias + zeroed defaults.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chris Coutinho
2026-06-04 20:28:44 +02:00
co-authored by Claude Opus 4.8
parent 8c9f97d6c4
commit e4d81d47d9
6 changed files with 91 additions and 33 deletions
+14 -2
View File
@@ -153,14 +153,26 @@ class VectorSyncStatusResponse(BaseResponse):
including how many documents are indexed and how many are pending.
Attributes:
indexed_count: Number of documents in Qdrant vector database
indexed_documents: Distinct documents indexed in the vector database
indexed_chunks: Total indexed chunks (vector points); ~N per document
indexed_count: DEPRECATED alias of indexed_chunks
pending_count: Number of documents in processing queue
status: Current sync status ("idle" or "syncing")
enabled: Whether vector sync is enabled
"""
indexed_documents: int = Field(
default=0, description="Distinct documents indexed in the vector database"
)
indexed_chunks: int = Field(
default=0, description="Total indexed chunks (vector points); ~N per document"
)
indexed_count: int = Field(
default=0, description="Number of documents indexed in vector database"
default=0,
description=(
"DEPRECATED alias of indexed_chunks (the chunk/point count). Use "
"indexed_documents for the distinct-document count."
),
)
pending_count: int = Field(
default=0, description="Number of documents pending processing"