Skip to content

Default PDF import source names collide across unrelated URL basenames #480

Closed

Description

@Calmingstorm

Severity: P2

Verified at v4.10.0, 55c15761845b00931ab2ea4aa184a7797dfd0614.

Locations

src/knowledge/importer.py:416,450-455

Failure scenario / concrete benefit and affected installs

Bulk PDF imports without explicit source where different hosts share manual.pdf. Both source names become manual.pdf; second import replaces unrelated first document in current searchable corpus.

Verification

Independently traced basename naming and source replacement ingest. Reviewer actual importer+KnowledgeStore with only downloads/PDF extraction mocked yielded one source containing only second content.

Correction and regression coverage

Default to collision-resistant canonical URL identity while preserving explicit source override and existing-source compatibility. Distinct from #327 chunk hash identity.

Duplicate screening

Checked all open/closed inventory and GitHub title/body searches, no matching root cause. Excluded #399, #303 and declined search-transaction changes. Harmless temporary fixtures/source traces only.

Activity

  1. Calmingstorm commented on Sep 30, 2026

    @Calmingstorm
    OwnerAuthor

    Validated as fixed on campaign/v4.10.0-review (PR #629) at 3047c46c: the fix was reviewed against the final code, and its regression tests pass on the branch and in CI. Round-1 correction caf9d3be: unchanged durable legacy basename PDF imports are reused without duplication; changed or unverifiable legacy content returns an actionable explicit-source conflict rather than duplicating or overwriting an unrelated same-basename document. It is not merged to master yet. Closing per the maintainer's instruction; reopen if a later change regresses it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions