Repository navigation
Droste 1.2.0 — Verifiable code exploration
Droste 1.2.0 makes code investigation verifiable: find a symbol, inspect its static callers/callees with source evidence, and check whether the index still matches the project.
- Resolve Python calls through scopes, imports, aliases/re-exports and explicit self/cls members. Skip unknown or ambiguous targets instead of picking an arbitrary matching name.
- Add
droste find,droste references,droste check, and three corresponding MCP tools. - Batch-refresh supported files after additions, edits, renames and deletions; rebuild incoming references when definitions move.
- Respect nested
.gitignoreand project.drosteignore, preserve distinct identical modules and keep other roots/concepts duringindex --reset. - Actually collect Java, C#, Ruby, PHP and Python stub files; prefer Python implementations over stubs when resolving imports.
- Separate embedding caches by model; re-index on a backend switch. Expose stale/partial coverage warnings.
- Enforce context budgets in characters (minimum 500), including separators, with explicit source stubs for bodies that do not fit.
Validation: 69 regression cases on Linux Python 3.10/3.11/3.12 and Windows Python 3.12, installed-wheel CLI/HTTP checks and calls to all nine packaged MCP tools. A separate local check used real fastembed and verified a hash-to-model switch. A real index of Droste's own source was checked for freshness, caller provenance and bounded context.
The pinned Requests/CPython source corpus passes 19/20 manually labelled edge assertions: 15/16 positive edges found and 0/4 forbidden edges emitted. The unresolved requests.api.request -> Session.request receiver is documented. This is a small structural validation, not an agent-task or competing-product benchmark.
Install:
python -m pip install --upgrade droste-memory
droste index .
droste check
droste find calculate
droste references calculate --direction bothRe-index existing projects after upgrading. Dynamic receiver types and inherited member lookup remain limited; non-Python and cross-language links remain heuristic. Use one writer per database. The viewer is a snapshot.
Distribution status: PyPI 1.2.0 and MCP Registry 1.2.0 are live. The PyPI wheel has the same package files as the attached CI artifact.