Skip to content

Droste 1.2.0 — Verifiable code exploration

Choose a tag to compare

@lorismascio17 lorismascio17 released this 19 Oct 13:09

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 .gitignore and project .drosteignore, preserve distinct identical modules and keep other roots/concepts during index --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 both

Re-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.

Validation and limits · CI