gateway/modules/serviceCenter/services/serviceAgent
Ida dff3d41845 fix(rag): stable ingestion idempotency across re-extractions (AC4)
Re-indexing the same file always triggered a full embedding run —
ingestion.skipped.duplicate never fired. Two independent causes:

1. _computeIngestionHash included contentObjectId in its payload, but
   extractors generate fresh uuid4() per run, making the hash a
   per-run nonce. Now hashed over (contentType, data) in extractor
   order — stable across re-extractions, sensitive to content,
   ordering, and type changes.
2. _autoIndexFile upserted the fresh pre-scan FileContentIndex before
   requestIngestion's duplicate check, wiping structure._ingestion
   and status=indexed from the prior run. The pre-upsert now merges
   the existing _ingestion metadata and preserves the indexed status.

Verified end-to-end: second PATCH /scope on an already-indexed file
logs  and returns in ~2s
with zero embedding API calls.

Adds test_ingestion_hash_stability.py (5 cases).
2026-04-29 14:39:40 +02:00
..
coreTools fix(rag): stable ingestion idempotency across re-extractions (AC4) 2026-04-29 14:39:40 +02:00
__init__.py new ai agent 2026-03-15 23:38:21 +01:00
actionToolAdapter.py fixes ai agents parameter flow 2026-04-28 11:58:53 +02:00
agentLoop.py fixed trustee 2026-04-26 23:59:09 +02:00
conversationManager.py wired infomaniac to ai adapters and tools 2026-04-29 01:52:47 +02:00
datamodelAgent.py fixed integration graph editor ai 2026-04-19 01:22:33 +02:00
featureDataAgent.py trustee agent fix 2026-04-27 08:07:37 +02:00
featureDataProvider.py feat db-clean-ui and unified content udm 2026-04-16 23:13:05 +02:00
mainServiceAgent.py wired infomaniac to ai adapters and tools 2026-04-29 01:52:47 +02:00
sandboxExecutor.py fixed tool execute subprocess 2026-04-01 22:16:08 +02:00
toolboxRegistry.py fixes udb, outlook, workflow 2026-04-21 23:49:46 +02:00
toolRegistry.py fixed voice feat commcoach 2026-04-01 21:59:28 +02:00
workflowTools.py teamsbot 2026-04-25 01:13:01 +02:00