Reported downstream as kitconcept.intranet GitLab ticket 580: content authored in a WikiPage with the Plate editor is not found by the RAG search ("no documents show this information"), while the same content in a Workspace (classic Volto blocks) works.
Cause
The Plate editor registers its __somersault__ block in the blocks field without adding it to blocks_layout.items. extract_segments in rag/extraction.py walked only the layout, so the whole page body of an editor-authored WikiPage was invisible to the RAG chunking — chunks contained the title/description only, and body questions were answered with "not found".
Classic search was unaffected: plone.restapi's SearchableText indexer walks all blocks.values().
Fix
Walk the layout first (it carries the document order — the chunker merges consecutive segments), then any blocks not listed in it: same coverage as plone.restapi's visit_blocks. Verified end-to-end against the reporter's exact block structure.
Reported downstream as kitconcept.intranet GitLab ticket 580: content authored in a WikiPage with the Plate editor is not found by the RAG search ("no documents show this information"), while the same content in a Workspace (classic Volto blocks) works.
Cause
The Plate editor registers its
__somersault__block in theblocksfield without adding it toblocks_layout.items.extract_segmentsinrag/extraction.pywalked only the layout, so the whole page body of an editor-authored WikiPage was invisible to the RAG chunking — chunks contained the title/description only, and body questions were answered with "not found".Classic search was unaffected: plone.restapi's SearchableText indexer walks all
blocks.values().Fix
Walk the layout first (it carries the document order — the chunker merges consecutive segments), then any blocks not listed in it: same coverage as plone.restapi's
visit_blocks. Verified end-to-end against the reporter's exact block structure.