One thing becomes two entities when two extractors type it differently
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 48/100
Research direction
Start by tracing how find_entities resolves identifiers and handles entity types across the tracker and document ingestion paths. Reproduce with ACME-1 using the two source types, then inspect how the resulting entities and derived facts are stored. Done means both sources resolve to one entity, with the type conflict kept as a reviewable fact and derived facts attached to that entity.
Written by the indexing model from the issue text.
Description
Related: #709 (open) covers names written in another script. A name with and without an accent (Jose and José) looks like the same gap, so it is left out here.
What happens, and what you expected
One ticket gets two entities when one extractor types it as a ticket and another types it as a work item. Facts derived later attach to one copy or the other. Queries on either copy see half the picture.
Expected: The same identifier from two sources resolves to one entity, even when the sources disagree on its type. The type conflict is kept as a reviewable fact, not as a second entity.
How to see it
- Push ticket
ACME-1from a tracker source with typeTicket. - Push a document that mentions
ACME-1, extracted with typeWorkItem. - Call
find_entitiesforACME-1. See two entities. - Add a rule that derives a fact from
ACME-1. See it attach to only one copy.
Version
0.1.0-rc9 (ghcr image). Not checked on dev.
How it runs
docker compose
Models
Seen with a local chat model through Ollama and with a hosted chat model; bge-m3 embeddings.
Impact
Derived facts land on the wrong copy. Any answer built from one entity is silently incomplete.
- Dominant language
- Rust
- Stars
- 8.1k
- Forks
- 1.1k
- Avg merge
- 21h 2m
- Merged PRs (30d)
- 263
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from deeplethe/utopia
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 56/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1341 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1327 · 2 comments ·
Maintainers usually reply within 1 day
All issues in deeplethe/utopia
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
o8 next debug build aborts on Glass to Dark appearance switch (nil identifier messaged before check)Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
hurttlocker/o8#5112 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
Maintainers usually reply within 1 day
-
memory_patch_page drops the `#` of headings like `## Notes on C#`Possibly taken @viniciusdsandrade claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
akitaonrails/ai-memory#1859 ·
Maintainers usually reply within 1 day
-
bug prio:p3 triaged ux
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day