Skip to content

Fix Qdrant chunk identity collisions - #248

Open
3em0 wants to merge 1 commit into
yoanbernabeu:mainfrom
3em0:fix/qdrant-chunk-namespace-247
Open

Fix Qdrant chunk identity collisions#248
3em0 wants to merge 1 commit into
yoanbernabeu:mainfrom
3em0:fix/qdrant-chunk-namespace-247

Conversation

@3em0

@3em0 3em0 commented May 20, 2026

Copy link
Copy Markdown

Summary

  • namespace Qdrant point IDs by project/workspace namespace to avoid same-path chunk overwrites in shared collections
  • persist and apply project_namespace filters across Qdrant search, scroll, delete, stats, and content-hash lookup operations
  • add unit coverage and an optional real-Qdrant integration regression test for shared collection isolation

Closes #247.

Tests

  • docker run --rm -v /mnt/nas/gitRepo/repos/392:/work -w /work golang:1.25-bookworm go test ./store -v
  • docker run --rm --network=host -v /mnt/nas/gitRepo/repos/392:/work -w /work -e GREPAI_QDRANT_TEST_ENDPOINT=http://localhost golang:1.25-bookworm go test ./store -run TestQdrantStore_SharedCollectionIsolatedByProjectNamespace -v
  • docker run --rm --user 1000:1000 -e GOCACHE=/tmp/go-cache -e GOMODCACHE=/tmp/go-mod -v /mnt/nas/gitRepo/repos/392:/work -w /work golang:1.25-bookworm go test ./...

markpinero added a commit to hi-high/grepai that referenced this pull request Jul 29, 2026
Bring in high-value open upstream fixes for Qdrant multi-project
workspaces, monorepo watch startup, Ollama resilience, and worktree
fan-out control:

- yoanbernabeu#248 qdrant project namespace
- yoanbernabeu#263 workspace ListDocuments scope
- yoanbernabeu#207 qdrant gRPC message size
- yoanbernabeu#257 embedder timeout/retries
- yoanbernabeu#277 parallel change detection
- yoanbernabeu#270 discover_worktrees config
- yoanbernabeu#203 gitignore root guard
- yoanbernabeu#264 symbol extractor version invalidation

Keeps prior mark.1 harden (atomic GOB, corrupt recovery, 90s shutdown,
--no-worktrees).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Cross-project Qdrant vector index overwrite via non-namespaced chunk IDs

1 participant