8000 feat(entities): place names by description with the LLM, and manage entities from chat by adeelahmad · Pull Request #65 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

feat(entities): place names by description with the LLM, and manage entities from chat - #65

Merged
adeelahmad merged 1 commit into
mainfrom
claude/project-thread-2qdx7m
Oct 3, 2026
Merged

adeelahmad merged 1 commit into
mainfrom
claude/project-thread-2qdx7m

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Description

Before: in a self-organizing namespace a new way of saying a known thing ("the big client") became a new entity, and the assistant could only merge, rename or retype entities.

After:

  • Entities → Setup has Matching names: "By name only" (as before) or "By name, then by description (uses the LLM)". With the second, names the rules can't place go to the LLM with the entities' descriptions, other names and what the namespace is about. In the self-organizing mode a name it places on a described entity becomes that entity's other name, so the rules place it from then on (one model call per recording, only for names not seen before). Without a reachable LLM the rules decide.
  • The assistant gets an entity_setup tool (mode, types kept, own types, defined entities), find_entities includes descriptions, other names and whether an entity is defined, and propose_entity_change can now describe an entity (description and other names), hide it, or define a new entity on a namespace's list, each through an approval card. Settings → AI assistant lists the new tool.

The matching code (entity_map.judge) is shared so the next PR can use it for fixed lists and the hybrid mode.

Motivation and Context

Fifth of the small PRs for entity modes ("self organizing entities yet user manage them via UI or assistant chat and descriptive fields are used to map these"). Next: hybrid mode, and the model for fixed lists.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change; ! in the title)

Checklist:

  • The title is a Conventional Commit.
  • My code follows the code style of this project (ruff, mypy, eslint, prettier, tsc).
  • I added or updated tests (tests/api/test_entity_matching.py, the fake LLM answers matching requests).
  • My change requires documentation updates, and I have updated docs/ accordingly (processing.md, assistant.md).
  • Users need more than the title to understand it, so I wrote it under ## Unreleased in CHANGELOG.md.

Local checks: backend 348 passed (only test_office_and_text_files_become_documents fails, as on main: this machine's LibreOffice); frontend jest 546 passed, eslint and tsc clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VmPYPheY7aGQv9TiA563P5


Generated by Claude Code

…ntities from chat

A setup can match names by name, then by description: names the rules
can't place go to the LLM with the entities' descriptions, their other
names and what the namespace is about. In the self-organizing mode a name
it places on a described entity becomes one of that entity's other names,
so the rules place it from then on; without an LLM the rules decide.

The assistant gets an entity_setup tool (a namespace's mode, types, own
types and defined entities), and propose_entity_change can now describe
an entity and its other names, hide it, or add a new entity to a
namespace's list, all through approval cards. find_entities includes
descriptions, other names and whether an entity is defined.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmPYPheY7aGQv9TiA563P5
@adeelahmad adeelahmad self-assigned this Oct 3, 2026
@adeelahmad
adeelahmad merged commit c43296b into main Oct 3, 2026
0 of 5 checks passed
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.

2 participants

0