File canon and derived index
Markdown with YAML front matter, one file per entity; SQLite with FTS5 rebuilt from it on demand.
A working prototype, built in the open. This page says what runs today, what is being worked on, and what has been deliberately put off. There are no dates on it.
Markdown with YAML front matter, one file per entity; SQLite with FTS5 rebuilt from it on demand.
Stemming for English and Russian, an editable synonym dictionary, field weighting and a relevance threshold. No model is reachable from this path, and a test enforces that by installing an adapter that raises if called.
Claims, sources with role and date, open gaps and conflicts — over MCP and over HTTP.
Files, pasted text, URLs and bounded crawls. Entity discovery, stubs, gap opening, claim and evidence extraction, duplicate and conflict detection. Idempotent: unchanged files never reach the model twice.
Editing a document keeps the previous revision, so older citations stay checkable.
Anonymous and owner, filtered in SQL before retrieval and on every graph step, with privacy closure over the subgraph.
Read tools always; write tools only under an explicit flag, owner-only even then.
A public site, an owner-only explorer behind a login, and a CLI covering the same operations.
Dataset, scoring script and dated results in the repository, negative outcomes included.
Mechanical search recalls less than reading whole documents. Better field weighting, phrase handling and a wider synonym dictionary are the current work; a stronger engine behind the same interface is the fallback.
The golden set is this project’s own documentation. An unrelated corpus is needed before the numbers mean anything general.
Getting mem0 and Zep stood up properly so a comparison can be published without hand-waving.
For people, an entity should read as an article with its sources, relations and gaps. It is sketched, not finished.
Decided against for now, with the reason. None of these are promises.
Would improve recall and reintroduce an opaque ranking step. Worth doing only once the mechanical path has been pushed as far as it goes, and only behind the same interface.
The access model is anonymous-or-owner. Separating one client’s private knowledge from another’s belongs with the federation work, not before it.
The long-term intent is that private knowledge never leaves the client. The seams are in place; the client side is not built.
Moving something from private to public needs an anonymisation step that does not exist yet, so the web UI refuses it outright rather than offering a button that half works.
Nothing to announce. RTFM is something you run yourself.
Stated here so nobody has to discover them the hard way.
Facts are only as good as what the extraction model proposed. A missed statement is invisible to every layer above it.
A question sharing no vocabulary with the source can come back empty. Empty is honest, but it is still a miss.
Run against thousands of entities, not millions. Nothing is claimed beyond what has been measured.