Compare commits
1 commit
main
...
claude/fix
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb2040a227 |
2 changed files with 21 additions and 11 deletions
6
.github/workflows/docling-compat.yml
vendored
6
.github/workflows/docling-compat.yml
vendored
|
|
@ -27,7 +27,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
python-version: "3.12"
|
python-version: "3.12"
|
||||||
cache: pip
|
cache: pip
|
||||||
cache-dependency-path: document-parser/requirements-test.txt
|
cache-dependency-path: document-parser/requirements.txt
|
||||||
|
|
||||||
- name: Install system dependencies
|
- name: Install system dependencies
|
||||||
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends poppler-utils
|
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends poppler-utils
|
||||||
|
|
@ -35,8 +35,8 @@ jobs:
|
||||||
- name: Install pinned dependencies
|
- name: Install pinned dependencies
|
||||||
run: |
|
run: |
|
||||||
pip install --upgrade pip
|
pip install --upgrade pip
|
||||||
pip install -r requirements-test.txt
|
pip install -r requirements.txt
|
||||||
pip install httpx
|
pip install pytest pytest-asyncio httpx
|
||||||
|
|
||||||
- name: Upgrade docling to latest
|
- name: Upgrade docling to latest
|
||||||
id: versions
|
id: versions
|
||||||
|
|
|
||||||
|
|
@ -238,6 +238,14 @@ async function renderGraph(): Promise<void> {
|
||||||
)
|
)
|
||||||
parentMap.value = computedParentMap
|
parentMap.value = computedParentMap
|
||||||
|
|
||||||
|
// Guard against dangling edges (source/target not in the node set). Both
|
||||||
|
// backends can emit them in edge cases — e.g. ON_PAGE edges whose page_no
|
||||||
|
// doesn't match any returned Page node, or DERIVED_FROM edges crossing
|
||||||
|
// document boundaries in Neo4j. Cytoscape-dagre auto-creates a skeleton
|
||||||
|
// graphlib entry for the missing endpoint with undefined data, then crashes
|
||||||
|
// in its ordering phase when it tries to set `.order` on that entry.
|
||||||
|
const nodeIds = new Set(payload.value.nodes.map((n) => n.id))
|
||||||
|
|
||||||
const elements = [
|
const elements = [
|
||||||
...payload.value.nodes.map((n) => ({
|
...payload.value.nodes.map((n) => ({
|
||||||
data: {
|
data: {
|
||||||
|
|
@ -256,14 +264,16 @@ async function renderGraph(): Promise<void> {
|
||||||
raw: n,
|
raw: n,
|
||||||
},
|
},
|
||||||
})),
|
})),
|
||||||
...payload.value.edges.map((e) => ({
|
...payload.value.edges
|
||||||
data: {
|
.filter((e) => nodeIds.has(e.source) && nodeIds.has(e.target))
|
||||||
id: e.id,
|
.map((e) => ({
|
||||||
source: e.source,
|
data: {
|
||||||
target: e.target,
|
id: e.id,
|
||||||
type: e.type,
|
source: e.source,
|
||||||
},
|
target: e.target,
|
||||||
})),
|
type: e.type,
|
||||||
|
},
|
||||||
|
})),
|
||||||
]
|
]
|
||||||
|
|
||||||
cy.value = cytoscape({
|
cy.value = cytoscape({
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue