Skip to content

[Bug]: MarkdownParser:重复顶级标题导致 merged 文件名冲突覆盖,入库文档缺失内容 #1004

@sponge225

Description

@sponge225

Bug Description

我们的文化理念.md

  • 使用 ov add-resource 导入这个 Markdown 文档时,导入后的资源目录里缺失了原文的多段内容。
  • 复现发现当原文中重复出现相同的顶级标题(例如多次出现 # 我们的文化理念 )时, MarkdownParser 会把多个“小节”合并为 *_Nmore.md 文件,但合并文件名仅由 “第一个 section 名 + Nmore” 组成,导致不同批次合并产生同名文件并被后写覆盖,最终出现内容缺失。

Steps to Reproduce

ov add-resource 我们的文化理念.md

Expected Behavior

导入后所有原文内容都应出现在解析产物中(即使被拆分/合并),不应因为文件名冲突而丢失。

Actual Behavior

解析产物中部分内容丢失

Minimal Reproducible Example

Error Logs

OpenViking Version

0.2.11

Python Version

3.12

Operating System

macOS

Model Backend

None

Additional Context

原因分析

  • generate_merged_filename() 在 count > 1 时仅用 {first}{count}more 生成文件名;当文档里大量重复同名标题、且多次发生合并时,不同合并组会产出相同文件名,从而产生冲突(甚至覆盖)
  • 此时_save_merged() 写文件会覆盖已有同名文件,导致前一次合并内容被覆盖丢失。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions