🏷️ Priorité : MOYENNE | Type : Bug
Problème
Dans create_text_chunks(), quand l'AST chunking réussit pour les fichiers code, le paramètre extra_metadata_keys n'est pas passé à create_ast_chunks(). Les metadata custom (session_id, turn_id, project_name) sont silencieusement perdues pour les chunks AST.
Localisation
Fichier : packages/leann-core/src/leann/chunking_utils.py, lignes 452-455
# ACTUEL — extra_metadata_keys ABSENT :
all_chunks.extend(
create_ast_chunks(
code_docs, max_chunk_size=ast_chunk_size, chunk_overlap=ast_chunk_overlap
)
)
Comparer avec le path traditional (lignes 461-463) où c'est correctement passé :
all_chunks.extend(
_traditional_chunks_as_dicts(code_docs, chunk_size, chunk_overlap, extra_metadata_keys)
)
Impact
Aujourd'hui claude_code_rag.py utilise use_ast_chunking=False (défaut), donc le bug n'est pas déclenché en pratique. Mais si quelqu'un active l'AST chunking pour des sessions contenant du code, les metadata seront perdues.
Correction attendue
Étape 1 : Ajouter le paramètre à create_ast_chunks()
def create_ast_chunks(
documents,
max_chunk_size: int = 512,
chunk_overlap: int = 64,
metadata_template: str = "default",
extra_metadata_keys: list[str] | None = None, # ← AJOUTER
) -> list[dict[str, Any]]:
Étape 2 : Propager les metadata dans la boucle (ligne ~320-329)
if extra_metadata_keys:
for key in extra_metadata_keys:
if key in doc.metadata:
doc_metadata[key] = doc.metadata[key]
Étape 3 : Passer le paramètre dans create_text_chunks() (ligne 452)
all_chunks.extend(
create_ast_chunks(
code_docs,
max_chunk_size=ast_chunk_size,
chunk_overlap=ast_chunk_overlap,
extra_metadata_keys=extra_metadata_keys, # ← AJOUTER
)
)
Critères de succès
🏷️ Priorité : MOYENNE | Type : Bug
Problème
Dans
create_text_chunks(), quand l'AST chunking réussit pour les fichiers code, le paramètreextra_metadata_keysn'est pas passé àcreate_ast_chunks(). Les metadata custom (session_id, turn_id, project_name) sont silencieusement perdues pour les chunks AST.Localisation
Fichier :
packages/leann-core/src/leann/chunking_utils.py, lignes 452-455Comparer avec le path traditional (lignes 461-463) où c'est correctement passé :
Impact
Aujourd'hui
claude_code_rag.pyutiliseuse_ast_chunking=False(défaut), donc le bug n'est pas déclenché en pratique. Mais si quelqu'un active l'AST chunking pour des sessions contenant du code, les metadata seront perdues.Correction attendue
Étape 1 : Ajouter le paramètre à
create_ast_chunks()Étape 2 : Propager les metadata dans la boucle (ligne ~320-329)
Étape 3 : Passer le paramètre dans
create_text_chunks()(ligne 452)Critères de succès
extra_metadata_keyspropagé dans le path AST chunking