docling-studio/document-parser
Pier-Jean Malandrino a95e1b628d fix(graph): collapse Docling InlineGroup and Picture children (#197)
Two patterns in Docling's serialization were mirrored 1:1 by the graph
projection and produced node explosions on real documents:

- An InlineGroup (paragraph of mixed style runs) emits one `groups[]`
  entry plus N `texts[]` runs. Naive iteration created one Paragraph
  node per run.
- A Picture's `children` carry internal text labels extracted by the
  layout model (flowchart boxes, chart axis labels, diagram callouts).
  Each child became its own Paragraph node, drowning the figure.

`build_collapse_index` (in the shared `infra.docling_tree` helper) now
returns the `skip_refs` set + `inline_meta` overrides for both cases.
The Neo4j `tree_writer` and the in-memory `docling_graph` consume the
same index, so both projections stay in sync.

InlineGroups are projected as a single :Paragraph carrying the
concatenated text and the union of children's provs (re-indexed).
Pictures keep their :Figure node and prov; their descendants are
dropped. Captions live in the picture's separate `captions` field, not
in `children`, so they are unaffected.
2026-04-28 09:23:31 +02:00
..
api feat(settings): paste-image size/type limits for #195 (#196) 2026-04-27 17:22:19 +02:00
domain feat(reasoning): bidirectional PDF ↔ graph focus + DocumentView mode 2026-04-23 22:07:58 +02:00
infra fix(graph): collapse Docling InlineGroup and Picture children (#197) 2026-04-28 09:23:31 +02:00
persistence feat(reasoning): reasoning-trace viewer v1 with SQLite-backed graph 2026-04-21 11:30:47 +02:00
services feat(neo4j): Day 3 — ChunkWriter, graph API, GraphView, README 2026-04-20 10:13:18 +02:00
tests fix(graph): collapse Docling InlineGroup and Picture children (#197) 2026-04-28 09:23:31 +02:00
.dockerignore Work on full Docker integration 2026-03-17 13:33:36 +01:00
conftest.py Format backend codebase with ruff 2026-04-02 12:33:07 +02:00
Dockerfile Fix RapidOCR model download permission in local image 2026-04-03 10:44:20 +02:00
main.py feat(settings): paste-image size/type limits for #195 (#196) 2026-04-27 17:22:19 +02:00
package-lock.json Add slide on side bar in Studio mode 2026-03-20 16:24:38 +01:00
pyproject.toml Add qualityt check and contributing doc 2026-03-21 15:34:54 +01:00
pytest.ini Add a stronger testing strategy 2026-03-18 14:46:37 +01:00
requirements-local.txt Move bbox.py from domain/ to infra/ and unify coordinate logic 2026-04-03 13:17:26 +02:00
requirements-test.txt feat: add hexagonal architecture tests with pytestarch (#177) 2026-04-16 08:32:07 +00:00
requirements.txt feat(reasoning): live docling-agent runner + UX polish 2026-04-21 17:11:54 +02:00