No description
Find a file
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
.cursor/plans docs: add gateway docs and Cursor plan artifacts 2026-04-22 07:21:43 +02:00
.forgejo/workflows fix: remote ssh uri to pull 2026-04-22 14:03:15 +02:00
.github/workflows fix: updated yaml files for better github storage 2026-03-05 10:40:36 +01:00
assets/fonts Graph and data class falignment strict 2026-04-26 22:53:44 +02:00
demoData teamsbot 2026-04-25 01:13:01 +02:00
docs docs: add gateway docs and Cursor plan artifacts 2026-04-22 07:21:43 +02:00
modules fix(rag): stable ingestion idempotency across re-extractions (AC4) 2026-04-29 14:39:40 +02:00
scripts teamsbot 2026-04-25 01:13:01 +02:00
tests fix(rag): stable ingestion idempotency across re-extractions (AC4) 2026-04-29 14:39:40 +02:00
.dockerignore user registration and password reset with magic link 2026-01-12 23:31:20 +01:00
.gcloudignore user registration and password reset with magic link 2026-01-12 23:31:20 +01:00
.gitignore ignore testdata 2025-10-06 16:02:38 +02:00
app.py fixed trustee 2026-04-26 23:59:09 +02:00
config.ini fixed automation parameter flow 2026-04-13 00:38:47 +02:00
Dockerfile chore: use requirements.lock for fast pip installs (Option A + C) 2026-02-03 09:26:17 +01:00
env_dev.20260428_213450.backup kdrive fix 2026-04-29 00:35:21 +02:00
env_dev.env kdrive fix 2026-04-29 00:35:21 +02:00
env_int.20260428_213451.backup kdrive fix 2026-04-29 00:35:21 +02:00
env_int.env kdrive fix 2026-04-29 00:35:21 +02:00
env_prod.20260428_213451.backup kdrive fix 2026-04-29 00:35:21 +02:00
env_prod.env kdrive fix 2026-04-29 00:35:21 +02:00
env_prod_forgejo.20260428_213451.backup kdrive fix 2026-04-29 00:35:21 +02:00
env_prod_forgejo.env kdrive fix 2026-04-29 00:35:21 +02:00
LICENSE.txt refactored service center 2025-12-15 21:55:26 +01:00
pytest.ini redmine integration 2026-04-21 18:14:21 +02:00
README.txt refactored service center 2025-12-15 21:55:26 +01:00
requirements.lock chore: update requirements.lock 2026-04-17 11:12:23 +00:00
requirements.txt fix(requirements): support Python 3.13 for psycopg2-binary 2026-04-16 15:12:28 +02:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

AI TOOLKIT  PROPRIETARY SOFTWARE
================================

Dieses Repository enthält proprietäre Software (AI Toolkit),
die vom Rechteinhaber entwickelt wurde.

STATUS
------
• Proprietäre, nicht quelloffene Software
• Kein Open-Source-Projekt
• Nutzung nur auf Basis eines separaten schriftlichen Lizenzvertrags

LIZENZ
------
Dieses Repository unterliegt keiner Open-Source-Lizenz.
Alle Rechte sind vorbehalten.

Ohne eine explizite schriftliche Lizenzvereinbarung mit dem Rechteinhaber
ist es untersagt, den Code oder Teile davon:

• zu nutzen
• zu kopieren
• zu verändern
• zu verbreiten
• weiterzuverkaufen
• zu dekompilieren oder zu reverse engineeren

KUNDENPRODUKTE
--------------
Produkte, die auf Basis dieses Toolkits erstellt werden,
unterliegen separaten Lizenzverträgen.

Die kundenspezifischen Produktkonfigurationen (z. B. Prompts,
Parameter, Workflows, fachliche Logik) stehen  sofern vertraglich
vereinbart  im Eigentum des jeweiligen Kunden.

Der zugrundeliegende Toolkit-Code verbleibt vollständig
beim Rechteinhaber.

KONTAKT
-------
Für kommerzielle Lizenzen oder Rückfragen:
Patrick Motsch

© 2025 Patrick Motsch. Alle Rechte vorbehalten.