Skip to content

Releases: blisspixel/distillr

v0.20.7

Choose a tag to compare

@github-actions github-actions released this 18 Oct 06:21
abaa61b

Fixed

  • Preserve per-query arXiv discovery failures in previews, shortlists and run
    summaries. Distinguish successful empty searches from API errors and malformed
    feeds. Surface paper revisions with captured and discovered dates; recheck
    saved previews against the current library and keep revision updates preview-only.
  • Treat missing, invalid and mixed-timezone freshness evidence as unknown.
    Compare explicit offsets in UTC without the filesystem timestamp tolerance.
  • Replace complete active claim generations, including successful zero-claim
    retirement, while retaining append-only history. Refuse incomplete synthesis
    and changed-during-generation evidence. Keep exact citation paths and derived
    origin; exclude answers, audits, reports and hidden history from retrieval.
  • State numeric-only versus prose verification coverage. Propagate strict
    refusals to nonzero CLI exits and retain refusal receipts without replacing
    previously accepted artifacts. Add ingest --verify consistently.
  • Treat rejected site seeds as failed captures with a reason, rather than empty
    success. Refused paper publication fails its CLI/MCP item, and an all-failed
    paper batch stops before synthesis.
  • Reuse unchanged local captures only when source, analysis settings and bound
    verification evidence match. Preserve history for explicit reruns and recover
    interrupted publication. Record zero-cost no-ops in the run ledger.
    Prose model revision and threshold changes invalidate reuse. Checker failures
    remain visible and strict mode fails closed when an installed checker fails.
  • Use the direct Gemini 3.8 Flash default, curated current candidates, UTC price
    steps, and a scheduled refusal for the retiring Deep Research preview.
    Preserve historical model and pricing records.
  • Make local setup and failure hints route-aware; keep diagnostic paths copyable,
    support -h, shorten root help and home, align diagnostic rows, and remove
    routine animation and screen clearing. Keep color-independent state words.
  • Load trusted packaged theme resources installed as hardlinks while retaining
    single-link confinement for mutable user palettes.
  • Pin HHEM's foundation configuration and tokenizer as well as its outer code;
    invalidate local reuse when either revision changes. Raise patched optional
    torch, fsspec and setuptools floors and retain explicit advisory limitations.

Added

  • Twelve validated web and export palettes, Dark/Light/System appearance,
    persisted choices, safe TOML and bounded GitHub archive installation, CLI theme
    lifecycle commands, accessible preview cards and copy announcements. Server
    and export share tokens and component styles.
  • A CPU-only optional entailment recipe and measured tail-evidence probe beyond
    512 tokens. Scope two known pinned-model metadata diagnostics to debug while
    preserving other warnings and failures.
    Validate the separately published torch CPU wheel on Windows Python 3.15.
  • Numbered first-run instructions and local installed-wheel, CPU and browser
    validation records. These remain distinct from the later 1.0 semantic gates.

Changed

  • Default to Python 3.15 with blocking Linux 3.12 through 3.15, Windows and macOS
    coverage. Retain the 3.12 floor. Refresh compatibility wheels, dependency audit
    tooling and immutable Actions pins; build the container from the frozen lock.
  • Retain the hash-matched native plugin evaluation for unchanged canonical
    skills and eval cases; regenerate distribution version metadata.

Documentation

  • Record the authorized dependency-ordered execution plan for issues #40
    through #57, including another bug hunt, local zero-dollar journeys, and
    exact-commit CI before publication.
  • Record 0.20.6 as the published maintenance release and move unfinished
    evidence-state correction, evaluation, operator, and freeze-time security
    work to 0.20.7 through 0.20.10 without changing their acceptance gates.

Verification evidence

Local validation passed 7,680 tests with 95.40% combined coverage and branch measurement, zero Pyright diagnostics and $0 local operator/CPU journeys. Final main CI passed.

Publication receipt records matching PyPI/GitHub wheel and sdist digests, all 432 runtime files matching the tagged source, eight canonical skill archives, the CycloneDX SBOM, two cryptographically verified publish attestations and the isolated installed public-wheel smoke.

Five optional Transformers version alerts remain visible with a path-specific assessment. This is not a clean optional dependency audit.

v0.20.6

Choose a tag to compare

@github-actions github-actions released this 13 Oct 03:36
v0.20.6
10eac25

Fixed

  • YouTube capture no longer fails when a reused connection polls a closed
    deadline socket. The deadline and the metadata byte limits stay in effect.
  • distill --cost-mode no-metered init chooses a local provider, does not
    validate a cloud key, and records the smallest installed model that bench
    rates as feasible. Preview under no-metered uses deterministic ranking when
    the configured route is metered.
  • distill papers --preview saves that shortlist. --from-shortlist and
    --run-last-preview ingest the same papers and skip search and rerank.
    A fresh search that was not previewed still ranks as before.
  • When Playwright's browser cannot be installed, launch uses a validated
    system Chromium. An exact page with no browser falls back to one bounded
    HTTPS fetch and records capture: http-static.
  • distill bench stops before probing when Ollama cloud is enabled, and
    distill doctor reports that state. Optional-package hints follow uv or
    pipx. Setup outside a source checkout writes the per-user env file, which
    later commands load from any working directory.

v0.20.5

Choose a tag to compare

@github-actions github-actions released this 07 Oct 07:11
d91f57f

Fixed

  • Add missing context limits for Gemini 3.8 Flash and current OpenRouter
    candidates, including provider-prefixed model IDs, so known routes avoid the
    4096-token unknown-model fallback. Price exact OpenRouter GLM and DeepSeek
    routes before supplier aliases; register distinct Prime and FlashX rates
    rather than inheriting cheaper family prices. Preserve previous bare supplier
    estimates. Preserve routed prices for versioned compatibility IDs and bare
    supplier model echoes when billed-cost metadata is absent.
  • Preserve DeepSeek V4 Pro 0813's scheduled pricing qualifications. Use the
    full $1.32/$3.96 rate for budget authorization in every UTC window, rather
    than assuming the observed $0.66/$1.98 promotion always applies. Distinguish
    public endpoint minimums, conservative routing ceilings, and billed cost.
  • Offer hyphenated native Claude minor-version IDs in the Anthropic catalog;
    retain dotted OpenRouter spellings in their routed catalog and price registry.
  • Forward Grok 4.7 reasoning effort and omit deprecated sampling parameters for
    Gemini 3.8. Adapt LM Studio to the OpenAI SDK's supported HTTP client while
    preserving disabled redirects, disabled proxy inheritance for loopback
    inference, and disabled SDK retries. Preserve HTTP status errors even when
    the provider's message contains "refused". Refuse Deep Research polling when
    the provider omits its interaction ID, retaining the submission receipt and
    existing cleanup.
  • Repair the dependency security gate found during documentation review. Raise
    runtime floors to pyjwt>=2.15.0, pypdf>=6.19.0, and urllib3>=2.8.0, and
    the development floor to virtualenv>=21.7.13. Refresh only those locked
    packages and virtualenv's required python-discovery dependency. The updated
    environment clears the 33 advisory rows reported by pip-audit on the prior
    lock, without advisory exclusions. Upstream fixes:
    PyJWT,
    pypdf,
    urllib3, and
    virtualenv.

Changed

  • Refresh the locked API and capture stack to OpenAI 3.26.0, Google GenAI
    2.28.0, MCP 2.3.0, and yt-dlp 2026.8.19, with required Google Auth, jiter,
    and MCP types updates. Raise the OpenAI, Google GenAI, and yt-dlp package
    floors; bound both model SDKs to their supported major versions. The
    dated audit records primary evidence and
    compatibility checks. Defaults stay pinned pending research-quality evals.

Added

  • Catalog Grok 4.7, native Claude Opus/Sonnet 5.5, and current OpenRouter
    GLM, Qwen, Grok, Gemini, and Claude candidates. Add GPT-6 Astra, GPT-6.1 Sol,
    and GPT-6 Luna metadata and long-context estimates to the reserved OpenAI
    registry. OpenAI remains an unimplemented route. Catalog review date:
    October 6, 2026; this is public metadata verification, not live API validation.

Documentation

  • Emphasize dependable understanding in the README and require source-faithful
    summaries, explicit uncertainty, fair disagreement, visible collection
    boundaries, and responsible correction handling in repository instructions.
  • Define the two-source correction acceptance episode in the research-desk
    doctrine and roadmap. Separate planned selective revision from existing
    capture, verification, claim history, audit, and refresh mechanisms; insert a bounded
    maintenance release under the blocker rule and shift the remaining scopes
    intact. Align both supporting release plans with the public sequence.

Validation

  • The final release candidate passed 7,503 tests at 95.46% branch-enabled
    coverage on Windows/Python 3.12.13, with 4 skips, 9 deselections, and one
    upstream Starlette deprecation warning. The final billing corrections also
    passed 132 focused cost, execution, and real-SDK tests. The release requires
    full CI on its exact main commit before tagging;
    final run receipts are retained in the release pull request and workflows.
  • Frozen resolution, lint, formatting, Pyright with warnings denied, import
    contracts, Bandit, dependency auditing, public contracts, both generated
    skill distributions, archives, and isolated installed-wheel checks passed.
  • A fresh public catalog read covered all 19 curated routes, including
    scheduled overrides, and checked the four reviewed SDK and extractor
    versions against the latest published stable package metadata. No metered
    model call was used; default routes remain pinned pending semantic evaluation.
  • Reuse the authorized native plugin behavior evidence from 0.20.1: all six
    current case and report hashes match the retained successful receipts, and
    skill, reference, eval, and bundled runtime content is byte-identical. Only
    package version metadata and generated distribution instructions change.
    No new native run or waiver is claimed.

Release evidence: PR #31, main CI, publication workflow, and PyPI 0.20.5. GitHub and PyPI wheel/source hashes match; the published wheel passed the isolated installation checks.

v0.20.4

Choose a tag to compare

@blisspixel blisspixel released this 21 Sep 01:53

Fixed

  • Account for every URL a site crawl visits. _extract_page previously returned
    nothing for both a navigation failure and a page that rendered with no usable
    text, and the crawl loop discarded those URLs without a record, so an operator
    could not tell an empty page from a blocked one. A whole seed that exhausted
    its wall-clock or memory budget, or whose worker returned a result the parent
    refused to trust, also came back as an empty page list that read like a clean
    crawl of nothing. Each URL now leaves either a page or a typed capture receipt
    carrying its outcome, HTTP status, crawl depth, and a bounded detail.
  • Bound the attempted pages in a site crawl, not only the captured ones. The
    crawl loop stopped at max_pages captured pages, but a page that failed to
    capture never advanced that count, so one successful page handing back a
    frontier of up to 512 links could be followed in full. A max_pages=8 request
    could therefore perform hundreds of navigations against the host. Attempted
    visits now carry their own ceiling proportional to the requested budget, and
    a crawl stopped by that ceiling records a receipt saying so.
  • Raise the security floor on anyio to >=4.14.2. The previously resolved
    4.13.0 carries CVE-2026-63374, where a TLS connection to an internationalized
    domain name could be satisfied by a certificate issued for the IDNA 2003
    encoding of that name, and CVE-2026-64847, an undrained process-pool stderr
    pipe that wedges the awaiting call. anyio reaches Distill through httpx,
    openai, google-genai, mcp, and fastapi; the floor is declared directly
    so an installed distillr cannot resolve a vulnerable version.

Changed

  • Wait on observed network quiescence, under a bounded ceiling, before running
    the page extractor. domcontentloaded fires before a client-rendered page has
    its content, so the previous flat 1200 ms wait captured a hydrating
    single-page app half-built while taxing a static page for nothing. A page that
    never goes idle is still captured rather than failed.
  • Redact capture receipts at the persistence boundary. A crawl can follow a link
    whose query carries a session token, and browser exception text quotes the URL
    it was navigating to, so receipt URLs are reduced to the same scheme, host,
    explicit port, and path view that every other stored URL already receives,
    including URLs found inside exception detail.
  • Report capture outcomes to the operator. Site ingest prints a per-crawl
    rollup, records one run-summary issue per failed URL, writes
    attempted_pages, captured_pages, failed_pages, capture_failures, and
    capture_failure_counts into the site manifest, and includes a failed count
    in the site status line. An empty crawl now says why it was empty.
  • Record a page that could not be read as a warning rather than an error, so a
    single unreachable link no longer marks an otherwise clean site run partial.
    An outcome that stopped the whole crawl, such as an exhausted resource budget
    or a refused worker result, stays an error because work was genuinely left
    undone.
  • Report unreadable pages over MCP. site_batch returns failed_pages on a
    seed row whenever a crawl could not read some of its URLs, because an agent
    reading the JSON payload never sees the console rollup and would otherwise
    treat a partial capture as complete. The field is omitted when nothing failed.
  • Correct the roadmap workstream table, whose version targets had drifted two
    releases behind the versioned execution sequence and assigned future outcomes
    to already-shipped releases.

Added

  • Add crawl_site_with_receipts and the SiteCrawlResult and CaptureFailure
    types to distill.ingestors.sites. crawl_site keeps its existing
    page-list contract and is now a thin wrapper, so no caller has to change.

  • Document capture receipts where an operator or agent will look for them:
    the site.json field list in outputs.md, the website workflow in
    usage.md, and the site_batch response shape in mcp.md.

  • Add a web capture fidelity section to the roadmap recording what site capture
    already does, what remains, and which published scraping techniques are
    declined and why. Density-threshold content pruning and anti-detection
    tooling are both declined, with reasons.

  • Add pricing and catalog support for Zhipu AI GLM (z-ai/glm-5.3-flash,
    z-ai/glm-5.3) and Alibaba Qwen (qwen/qwen3.8-flash, qwen/qwen3.8-max-0902,
    qwen/qwen3.8-max) models via OpenRouter.

  • Map z-ai and qwen author slugs in OpenRouter routing policy to direct registered
    model identifiers, enabling strict pre-call price ceilings, budget preauthorization,
    and exact immutable ledger accounting.

  • Validate candidate models across ask (adversarial risk/hallucination fixtures),
    paper (extraction/limits), and video (two-pass synthesis) workloads under a
    strict spend budget with immutable ledger recording.

Internal

  • Bump the browser worker result schema to version 2, adding a bounded,
    strictly parsed failures array beside pages.
  • Split distill/ingestors/sites/scraper.py back under the 1000-line module
    cap by extracting records.py (the SitePage, SiteSeed, and SiteBatch
    types shared by the crawler, the manifest parser, and the worker boundary)
    and batch.py (site batch manifest parsing and its validators). scraper.py
    re-exports both, so no import changes.

v0.20.3

Choose a tag to compare

@github-actions github-actions released this 17 Sep 14:53

Changed

  • Promote seven core subpackages (commands, pipeline, mcp, prompts, concepts,
    claims, agent_skills) to strict Pyright checking in pyproject.toml, bringing
    strict type enforcement across 64.7% of repository files with zero errors and
    zero warnings.
  • Decompose commands and worker task modules into focused domain units,
    extracting distill.commands._command_cost and distill.worker._claim_envelope
    to ensure all modules stay cleanly under 915 lines.

Added

  • Add comprehensive unit test suites covering CLI monitor option branches,
    backward-compatibility proxies, report materials, brief chunking edge cases,
    and concept contradiction malformed rows, raising total branch coverage to
    95.43%.

v0.20.2

Choose a tag to compare

@github-actions github-actions released this 16 Sep 14:04

Added

  • Add pricing and catalog support for latest frontier models: Gemini 3.8 Flash
    (gemini-3.8-flash), Anthropic Claude Fable 5.1 (claude-fable-5.1) and
    Mythos 5.1 (claude-mythos-5.1), and DeepSeek models (deepseek-v4.1-flash,
    deepseek-v4-flash, deepseek-v4-pro, deepseek-v3.2, deepseek-chat, and
    deepseek-r1).
  • Map deepseek author slugs in OpenRouter routing policy to direct registered
    model identifiers, enabling hard budget preauthorization, registered price
    ceilings, and accurate ledger accounting for OpenRouter DeepSeek models.
  • Set deepseek/deepseek-v4.1-flash as the recommended default model when
    OpenRouter is configured, and provide OpenRouter models and pricing in
    distill provider list openrouter.
  • Support global fallback workflow budgets (default=<usd> and all=<usd>)
    in DISTILL_COST_WORKFLOW_BUDGETS so unlisted commands inherit a single
    safety ceiling against unexpected spend.

v0.20.1

Choose a tag to compare

@github-actions github-actions released this 13 Sep 16:19
2272274

Changed

  • Require MCP SDK >=2.2.0,<3 and lock the SDK and types to 2.2.0, with
    modern discovery, direct modern requests, and legacy stdio regression tests.
  • Update Agent Plugins 1.0.0 guidance and generated packages to its published
    status. The canonical manifest schema remains unchanged.

Fixed

  • Require fresh Ollama daemon and exact-model proof before each inference
    attempt. Cloud-enabled, unsupported, ambiguous, or remotely backed routes
    fail closed in every cost mode; anomalous remote usage is not recorded as
    local zero-cost inference. Doctor, setup, and benchmark cleanup reuse that
    admission boundary.
  • Serialize and pace canonical arXiv query API requests within a process,
    including retries and redirects, under the total fetch deadline. Preserve
    failure diagnostics and close redirect responses when pacing fails.
  • Isolate eval CLI tests from developer Ollama services and hardware probes.
  • Support older FFmpeg versions when measuring decoded audio duration, while
    retaining the process deadline and compressed-timestamp regression check.
  • Make the migration-error display test independent of terminal width.
  • Grant native skill evaluations read-only reference access and enough turns
    to complete. Clarify that workflow rubrics grade the requested explanation,
    preserving every required step and the existing pass threshold. Use Sonnet
    judging after observed false negatives from the default judge.
  • Verify that unexpected MCP tool failures preserve the internal exception
    while the SDK exposes its generic tool error, without depending on leaked
    internal exception text.

Documentation

  • Refine the canonical repository agent instructions with verified quality
    commands, implementation owners, evidence states, the existing scratch/index
    convention, and test-isolation requirements while preserving provider and
    corpus safety rules.
  • Record the September 13 README and roadmap review, the evidence-generation
    acceptance matrix, and the proposed research evaluation and follow-up plan.
  • Correct obsolete notebook source-discovery and research-persistence
    comparisons, and make the blocker-patch policy apply to the current release
    line.
  • Reserve this release for maintenance and billing correctness. Evidence
    generation/origin work remains next in 0.20.2; research evaluations,
    operator evidence, and strict/security closure follow in 0.20.3 through
    0.20.5.

Upgrade notes

  • Ollama now needs the supported local-only status contract published in
    version 0.34.0. Disable cloud on the daemon and restart it; upgrading an
    unsupported server is required. A Distill-only environment setting cannot
    change an already-running daemon. See local setup.
  • arXiv pacing covers canonical query calls in one process. Operators still
    coordinate separate processes, machines, and other API or RSS clients.

Validation

  • The frozen release candidate passed 7,339 tests with 95.29% branch coverage
    on Linux/Python 3.12, Ruff lint and formatting, production Pyright with
    warnings denied, all four import contracts, Bandit, and dependency auditing.
  • Public contracts and both generated skill distributions passed validation.
    The wheel, source distribution, and skill archives built; an isolated wheel
    installation passed CLI, bundled-skill, runtime-asset, and editorial-default
    smoke checks.
  • All six current native plugin behavior cases passed every criterion over
    three runs per arm, with a no-plugin comparison. Four unchanged cases passed
    in the full run; the worker and corpus cases passed focused reruns after
    rubric and fixture corrections. Input hashes and reported prompts/rubrics
    were checked against the final package. Failed attempts remain preserved.
  • Native evaluation used Claude Code 2.1.270, Opus 5, and Sonnet judging under
    authorized account-backed runner usage, with API-key overrides removed for
    those processes. No waiver was used. These workflow cases do not establish
    end-to-end host installation or a research-quality baseline. Publication
    still requires successful CI on the exact tagged commit.

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 23:43

Added

  • Standalone perspective-editorial Agent Skill with private person or company
    context, host-provided research and document tools, complete editorial review,
    and optional Distillr/Retonr adapters. Reproducible skill, Agent Plugins 1.0.0,
    and Claude/Codex compatibility packages include behavior cases and CI checks.
  • Opt-in distill editorial init, preview, capture, and run commands:
    private author perspectives, current publisher receipts, shared weekly and
    per-run budget admission, ideas and outlines, mandatory non-Anthropic paid
    rewriting, bounded evidence and editorial review, optional Retonr candidate
    checks, and unbranded Markdown and DOCX exports.
  • A dated model comparison and implementation plan for the private editorial
    consumer. Explicit supplied-receipt input supports external research agents.

Changed

  • The requested editorial release advances independently of the remaining
    research-desk hardening work. That work moves to 0.20.1 through 0.20.4;
    its completion and the 1.0 stability gates remain outstanding.
  • CI and release builds include the standalone editorial skill archives and
    verify that the installed wheel contains the generic private-profile template.

Validation

  • Local checks passed more than 7,200 tests with over 95% branch coverage, lint, formatting,
    production type checks, import contracts, security and dependency audits,
    package validators, and exact-wheel editorial smoke tests.
  • The default AI news sample passed evidence and editorial review and was
    exported to Markdown and a visually checked three-page Word document.
  • Six text-only standalone skill scenarios passed model review, including one
    bounded retry after an empty provider response. Native client installation
    and account-specific Cowork trials are not claimed by these checks.

Fixed

  • CLI contract snapshots normalize path defaults across Windows, Linux and
    macOS, with regression coverage for both Windows and POSIX path objects.
  • OpenRouter text requests now exclude separate per-request fees when enforcing
    registered token-price ceilings. OpenRouter, Ollama and LM Studio preserve
    completion reasons so editorial passes can reject truncated responses.
  • Updated the HTTPX2 development dependency and lockfile to 2.12.0, resolving
    the five advisories reported by the dependency audit for HTTPX2 and HTTPCore2.
  • The offline golden eval test now stubs both model judges, avoiding blocked
    network retries from its unmocked faithfulness pass.

v0.19.74

Choose a tag to compare

@github-actions github-actions released this 02 Sep 13:10

Added

  • Python 3.15 prerelease watch. An advisory Linux CI lane now compiles the
    source with the current Python 3.15 release candidate, probes the locked
    dependency set, and runs the full unit suite and CLI smoke when that set is
    installable. Dependency gaps remain visible as workflow warnings. The
    supported production matrix remains 3.12 through 3.14 until the final release
    and cross-platform dependency wheels are available.
  • Optional OpenRouter analysis route. A concrete lowercase author/model
    slug can now use OpenRouter as an explicit metered provider. The adapter
    requests Zero Data Retention and denies data-collection endpoints by default,
    disables hidden SDK retries, applies a registered upstream price ceiling when
    available, shapes token and temperature fields from the current no-cost
    endpoint capability catalog, uses a stable per-run upstream session, carries
    exact billed cost and selected-endpoint identity into telemetry and the usage
    ledger, and participates in doctor and distill eval.
  • Budgeted OpenRouter smoke path. Provider setup now documents an explicit
    one-run route check with a hard aggregate doctor budget, followed by
    optional persistence only after validation succeeds.

Changed

  • Versioned roadmap execution. The public roadmap now names the exact
    dependency order from 0.19.74 through 1.0.0, defines exit evidence for
    every release, forbids calendar and duration estimates, and requires roadmap,
    changelog, user-doc, example, schema, and evidence updates as implementation
    lands.

Safety

  • Dynamic OpenRouter routing fails closed. Auto/free routers, moving aliases,
    and endpoint variants are rejected. no-metered blocks every OpenRouter route,
    and a hard budget rejects unregistered model prices before provider contact.
    Provider HTTP errors are reduced to status-class messages so account metadata
    from upstream error bodies cannot enter logs or terminal output. Payment
    failures are permanent, and key diagnosis reports provider-side spending
    limits without making an inference call.
  • Browser doctor cleanup. Browser readiness now requires a real headless
    Chromium launch through the same unsafe-override refusal used by setup. This
    catches broken runtime dependencies and prevents Playwright driver tasks from
    leaking warnings during doctor shutdown.

Validation

  • Complete release gate. The Windows Python 3.12 release suite passes 7,144
    tests with 4 expected skips and 9 deselected tests at 95.20 percent branch
    coverage. Ruff lint and format, generated contracts, generated distributions,
    and the frozen lock all pass.
  • Native plugin evaluation unavailable. Claude Code 2.1.247 returned its
    early-access block before running the requested three-run, $5-capped
    with/without evaluation, so it incurred no model spend. Publication follows
    the maintainer's explicit release instruction. Substitute evidence is the
    deterministic cross-client distribution check and build, installed-wheel
    bundle smoke, complete static and security gates, and full branch-coverage
    suite.
  • Live OpenRouter route. The installed public CLI completed its selected
    openrouter/x-ai/grok-4.6 doctor probe under a process-local $20 hard cap.
    OpenRouter reported $0.00069 billed cost for 207 input and 78 output tokens,
    and Distill persisted the provider, call, token, and exact-cost receipt without
    exposing the key.

v0.19.73

Choose a tag to compare

@github-actions github-actions released this 30 Aug 22:23

Added

  • Research-desk product doctrine. The human analogue, evidence-portfolio
    model, research-state boundaries, source contribution contract, field-model
    synthesis, meaningful-change vocabulary, stopping states, evaluation
    fixtures, product boundaries, and feature-admission rubric now form one
    explicit product-quality standard.
  • Evidence-anchor and atomic-claim handoff design. The accepted direction
    separates source assertions from downstream judgment, defines current claim
    generations and derived-origin preservation as the first trust correction,
    and stages digest-bound anchors, lineage, typed relations, and a versioned
    read-only claim packet behind semantic and authority gates.

Changed

  • The roadmap now starts from the research role. Near-term work finishes
    evidence correctness and 1.0 stability first. Post-1.0 work proceeds through
    a research-desk evaluation baseline, inquiry maps, source-role handoffs,
    portfolio selection, one cross-source field model, meaningful refresh,
    selective updates, reading paths, and honest stopping.
  • Agentic synthesis is framed as bounded field-model reconciliation. A
    novel thesis is optional, research sufficiency is a semantic judgment, and
    deterministic code owns identities, budgets, approvals, exact actions, and
    stop limits. Provider breadth and autonomous activity are enabling
    capabilities rather than product outcomes.

Validation

  • Native plugin evaluation waiver. The required
    claude plugin eval command returned its early-access block before running.
    Publication proceeds under the explicit human waiver granted on 2026-08-30.
    Substitute evidence includes the current generated-distribution check,
    deterministic agent archive build, isolated Python 3.12 wheel smoke test,
    complete static and security gates, and the full branch-coverage suite.