Version: 0.9.53
Context: Obsidian vault with per-book note sets named {Title} - {단계} ({date}).md where 단계 (stage) is one of 리서치/법률검토/출간결정/발행 (research/legal-review/publish-decision/publish-record) — e.g. Snail Bride - 출간결정 (2026-09-05).md and Snail Bride - 발행 (2026-09-07).md. Four new - 발행 (publish-record) notes were added for previously-decided titles.
Observed: Incremental semantic extraction (semantic_cron.py → deep mode) processed the 4 new - 발행 files, but the run log shows:
[graphify] WARNING: dropped 4 out-of-scope node(s) attributed to file(s) not dispatched for extraction:
Chiaksan Magpie - 출간결정 (2026-09-05).md, Governor-General's Palace - 출간결정 (2026-09-05).md,
Hunters of Cheonan - 출간결정 (2026-09-05).md, Snail Bride - 출간결정 (2026-09-05).md.
The model mis-attributed them to another corpus file; they were excluded from the graph (#1895).
The graph-write guard added in #1895 worked correctly here (no corrupted provenance made it into graph.json), but the underlying cause is different from #1895: these - 출간결정 files were in scope and dispatched in earlier runs — the extractor just attributed nodes from the new - 발행 files to their same-title - 출간결정 sibling instead. Net effect: content from all 4 new files is missing from the graph entirely (dropped, not merged elsewhere), with no re-extraction retry.
Hypothesis: when several sibling documents share a long common title prefix and differ only in a short stage-suffix token (발행 vs 출간결정 vs 법률검토 vs 리서치), the model appears to weight the shared prefix over the differing suffix when assigning source_file, especially when the sibling files are semantically related (a publish-record note citing its own publish-decision note via wikilink, as this project's convention requires).
Expected: either (a) re-attempt extraction for a file whose nodes were entirely dropped as out-of-scope, since dropping silently produces zero coverage for a file that was actually dispatched, or (b) bias source_file attribution toward the literal file path being processed in the current extraction call over any path mentioned/linked within the document body.
Repro ingredients (available on request, not attached — personal vault): 4 note pairs, each pair sharing an identical prefix and only the trailing stage-suffix token differing, where the newer note (발행) links to the older sibling (출간결정) via [[wikilink]].
Version: 0.9.53
Context: Obsidian vault with per-book note sets named
{Title} - {단계} ({date}).mdwhere단계(stage) is one of 리서치/법률검토/출간결정/발행 (research/legal-review/publish-decision/publish-record) — e.g.Snail Bride - 출간결정 (2026-09-05).mdandSnail Bride - 발행 (2026-09-07).md. Four new- 발행(publish-record) notes were added for previously-decided titles.Observed: Incremental semantic extraction (
semantic_cron.py→ deep mode) processed the 4 new- 발행files, but the run log shows:The graph-write guard added in #1895 worked correctly here (no corrupted provenance made it into
graph.json), but the underlying cause is different from #1895: these- 출간결정files were in scope and dispatched in earlier runs — the extractor just attributed nodes from the new- 발행files to their same-title- 출간결정sibling instead. Net effect: content from all 4 new files is missing from the graph entirely (dropped, not merged elsewhere), with no re-extraction retry.Hypothesis: when several sibling documents share a long common title prefix and differ only in a short stage-suffix token (발행 vs 출간결정 vs 법률검토 vs 리서치), the model appears to weight the shared prefix over the differing suffix when assigning
source_file, especially when the sibling files are semantically related (a publish-record note citing its own publish-decision note via wikilink, as this project's convention requires).Expected: either (a) re-attempt extraction for a file whose nodes were entirely dropped as out-of-scope, since dropping silently produces zero coverage for a file that was actually dispatched, or (b) bias
source_fileattribution toward the literal file path being processed in the current extraction call over any path mentioned/linked within the document body.Repro ingredients (available on request, not attached — personal vault): 4 note pairs, each pair sharing an identical prefix and only the trailing stage-suffix token differing, where the newer note (발행) links to the older sibling (출간결정) via
[[wikilink]].