github samuelfaj/distill v2.0.45
Distill v2.0.45

latest release: v2.0.46
4 hours ago

Native context retrieval with Jev

Distill can now search stored tool outputs from the current session without asking the main model to reread every file. Call ask_stored_output with a question and omit path to search across those outputs. Supplying a path keeps the existing explicit-file workflow.

The search uses a local lexical index to find candidates, then asks Jev which excerpts to keep. Distill copies the selected text from the original output with source and line references. It does not rewrite earlier conversation messages.

Jev remains the only production decision model. Request size does not switch decisions to d1-ultra or another model. Existing disable controls and local fallback behavior remain available when Jev cannot return a valid selection. The d1 comparison is benchmark-only.

Storage and recovery

  • Stored outputs belong to their sessions. Newly captured originals cannot be opened from an unrelated session through the recovery tool.
  • Hook replacements are authoritative: Distill indexes the replacement rather than retaining the hidden original or following its artifact links.
  • Search has explicit source, index, response and request limits. Large file and index operations run outside the async executor.
  • Recovery results bypass further compression. Existing history stays unchanged so retrieval does not deliberately invalidate the earlier prompt prefix.

Measured Jev results

A completed controlled comparison ran 36 main-model calls and 24 auxiliary calls across local retrieval, Jev and d1-ultra. Each alternative answered the same three synthetic tasks in two trials, with a first turn and a repeated turn. The main model was xiaomi/mimo-v2.6-flash, pinned to Xiaomi's FP8 provider.

Alternative Retrieved evidence Task-complete answers Reported total cost
Local retrieval 20/20 9/12 $0.00903
Jev 16/20 8/12 $0.00624
d1-ultra, benchmark only 20/20 9/12 $0.04162

The Jev total includes $0.00306 in auxiliary charges. Jev's mean retrieval wall time was 1.42 seconds, compared with 87 ms for local retrieval. On repeated turns, 82.41% of Jev-arm main input tokens came from cache; first-turn calls reported no cache reads.

These results show a cost and quality tradeoff, not equal-quality savings. Jev omitted a required HTML heading in all four policy queries. Long-line coverage and the older explicit-path fallback also have limits documented in the retrieval report. The three-task comparison is not a full-agent benchmark or a general model ranking. Original outputs and explicit recovery remain important when an excerpt is incomplete.

Estimated costs with larger main models

The following projections reuse measured local/Jev prompt sizes and cache-read counts. Both sides use the same projected output-token count, and the Jev column includes measured auxiliary cost. Prices come from the public OpenRouter catalog on October 16, 2026. No new benchmarks were run on these three models.

Estimated cost per 1,000 similar retrieval queries:

Main model Local retrieval baseline Jev-assisted retrieval Estimated reduction
GPT-6.1-Sol $11.58 $5.10 55.9%
GPT-6-Astra $59.46 $25.24 57.6%
Claude Opus 5.5 $23.17 $9.95 57.0%

The main model still answers the question. Jev selects evidence before that answer. These are API token-price estimates for the retrieval portion of a workload, not promised savings across a whole session or a subscription bill. They hold output at 1,298 tokens per 12 calls and exclude additional reasoning, explicit cache writes, retries and recovery turns. Tokenization and cache behavior can differ on each model.

Cache matters. With the same hypothetical 95% cache-read fraction in both alternatives, estimated reductions fall to 26.1% for GPT-6.1-Sol, 39.6% for GPT-6-Astra and 30.9% for Opus 5.5. Losing an existing cached prefix can change the result further.

Evidence and reproduction

This release includes the production adapter, synthetic fixtures, retained billing reports and offline checks needed to inspect or reproduce the measurements.

Validation passed for the production shell compile check without benchmark features, 37 Python checks, 27 retrieval tests, 25 session-output tests, 8 storage tests, 8 native decision-tool tests, 19 client tests and 15 provider tests. Some Rust filters overlap; these are not unique-test totals. The full repository test suite was not run. The production compile check and retrieval tests also passed after integrating the current main branch.

Don't miss a new distill release

NewReleases is sending notifications on new releases.