Memory-file extraction re-mints doc concepts under variant ids — near-duplicate nodes survive dedup
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
Start by tracing the merge path that combines extracted nodes, then inspect graph.json and the cached extraction entry under graphify-out/cache/semantic/…. Reproduce the memory-file update case and compare the canonical and variant concept ids. Done means repeated extraction does not leave near-duplicate concept nodes and the AMBIGUOUS edge is attached to the canonical node.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
When a saved query memory (graphify-out/memory/query_*.md) is re-extracted on --update, concepts it mentions that already exist as doc-concept nodes can be minted under a different node id, producing a duplicate that id-based dedup cannot catch.
Evidence
Repo: rails-ai-bridge, graphifyy 0.9.61.
- Original doc extraction of
docs/port-registry-resolution.mdminteddocs_port_registry_resolution_resolver(label "Registry Resolver"). - A memory file describing that same concept minted
docs_port_registry_resolution_registry_resolver(label "Registry Resolver (port-registry-resolution doc concept)") — same stem, different entity suffix. - Both nodes coexisted in graph.json; the duplicate carried an AMBIGUOUS edge that belonged on the canonical node.
The node-id rule ({stem}_{entity}) makes the id deterministic from the label, so any label variation — parenthetical qualifiers, "Registry Resolver" vs "Resolver" — forks the id. Memory files quote concepts with extra qualifiers often enough that this recurs.
Suggested fix
One of:
- Label-normalized dedup for concept nodes: when merging, treat a new concept node as a duplicate if its normalized label (strip parentheticals, lowercase) matches an existing node with the same stem prefix — merge edges onto the canonical id.
- Canonical-id resolution at extraction: memory-file extraction could resolve mentioned concepts against the existing graph's node ids before minting new ones.
Option 1 is local to the merge path and doesn't require the extractor to know the existing graph.
Workaround applied locally
Rewrote the cached extraction entry (graphify-out/cache/semantic/…) to emit the canonical id and merged the node in graph.json. Holds until the memory file changes and the cache entry invalidates.
- Ngôn ngữ chính
- Python
- Star
- 124k
- Fork
- 11.9k
- Merge trung bình
- 2 giờ 35 phút
- Pull request đã merge (30 ngày)
- 6
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Graphify-Labs/graphify
-
[Bug]: Generated git hooks break when CDPATH is exported (dash's cd prints the resolved dir), silently skipping every rebuildCó thể đã có người làm @HhH666-ux đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Graphify-Labs/graphify#4977 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
extract --out <dir>: semantic cache never saved, docs missing from manifest (relative source_file resolved against --out)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Graphify-Labs/graphify#4831 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
hooks: last-resort `python3` probe launches the Microsoft Store redirector on Windows (visible console flash, exit 9009)Có thể đã có người làm @Deepjyoti-Sarmah đã nhận 16 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Graphify-Labs/graphify#4563 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
GRAPHIFY_DISABLE_THINKING is ignored by the claude backend, so thinking eats max_tokens and extraction truncatesCó thể đã có người làm @bercedev đã nhận 17 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
Graphify-Labs/graphify#4546 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
--update runbook: graph.json backup instruction comes after the diff that needs it, so the graph diff never runsCó thể đã có người làm @sunildivakar96-cpu đã nhận 17 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Graphify-Labs/graphify#4539 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Graphify-Labs/graphify
Issue tương tự
-
needs-area-label
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Official-Space-AI/OpenPhysGraspGen#114 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
changelog investigate
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ramnes/notion-sdk-py#441 ·
-
qa_bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
NVIDIA-NeMo/Gym#5644 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
BUG: catalog database credentials printed to logs at startupCó thể đã có người làm @cjboyle đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày