Changelog
All notable changes to the qveris Python SDK are documented here.
The format follows Keep a Changelog, and versions follow Semantic Versioning.
Unreleased#
0.5.0 - 2026-07-23#
Added#
- Added
view/langdiscover arguments andrespond_withcall projection support, including compact routing-card model fields. Defaults remain full; an explicit legacy422 extra_forbiddenresponse triggers one retry without only the rejected optional field. (#256) - Added
QverisClient.probe()with typed zero-cost schema, quote, coverage, and sample results. (#259)
0.4.0 - 2026-07-18#
Added#
- Native AutoGen, LlamaIndex, and Pydantic AI adapters, optional dependency extras, conformance tests, and runnable agent examples. (#235)
- Added an async
CredentialProviderprotocol andApiKeyCredentialProvider. ExistingQverisConfig.api_keybehavior remains compatible, while applications can supply short-lived bearer credentials without changing endpoint selection. (#226)
Changed#
- Expanded the Python SDK framework-integration guide with a support matrix, dependency boundaries, current agent APIs, lifecycle requirements, and all six supported adapters. (#235)
- Updated the LangChain/LangGraph example to use
langchain.agents.create_agent, corrected CrewAI cleanup guidance, and quoted extras in shell install commands. (#235) - API reference pages are now generated from the public Python surface, with drift checks keeping the English and Chinese references aligned. (#233)
Fixed#
- Framework adapters now share canonical tool schemas and Pydantic-safe JSON serialization; LlamaIndex rejects its unsafe synchronous wrapper with async guidance instead of creating a fresh event loop around the persistent client. (#235)
0.3.2 - 2026-07-15#
Changed#
- Releases now use PyPI Trusted Publishing with short-lived GitHub OIDC credentials and attestations for both wheel and source distributions. Package APIs and runtime behavior are unchanged. (#222)
0.3.1 - 2026-07-14#
Fixed#
- API endpoint overrides are normalized and validated as safe HTTP(S) URLs. Explicit
base_urlcontinues to overrideQVERIS_BASE_URL, and API keys never select the endpoint. (#204) - LangChain adapter:
search_idis now optional inqveris_calland omitted from the request when absent — consistent with the OpenAI-Agents, CrewAI, and Vercel-AI adapters (the earlier consistency fix missed this adapter; caught by the new cross-adapter conformance suite). (#157)
0.3.0 - 2026-07-09#
Added#
- Framework adapters as optional extras: LangChain (
qveris[langchain]), OpenAI Agents SDK (qveris[openai-agents]), and CrewAI (qveris[crewai]) — each exposes the discover/inspect/call workflow as native tools for that framework. (#132, #133, #135) - Per-session credit budget guard for the agent:
Agent(budget_credits=...). (#130) - Optional OpenTelemetry tracing (
qveris[otel]): one span per discover/inspect/call withqveris.*attributes (tool_id, search_id, execution_id, elapsed_time_ms, credits); dependency-free no-op when opentelemetry is absent, and tracer faults never break a call. (#141) - Rate-limited (
429) and transient (503) responses are retried automatically: honorsRetry-After(measured against the responseDateper RFC 9110), otherwise exponential backoff with jitter, bounded byQverisConfig.max_retries/QVERIS_MAX_RETRIES(default 3;0disables);client.rate_limit_retriessurfaces backoff as pressure. (#142) ToolInfodeclarescapabilities,expected_cost,why_recommended, and provider fields; explainable-routing example. (#102, #128)
Fixed#
QverisConfig(api_key=...)explicit constructor values override environment variables again under pydantic 2.11+/2.12, without exposing the genericAPI_KEY/BASE_URLenv names. (#138)
Removed#
provider_logo_urlfrom type declarations (dropped from the public spec). (#105)
0.2.1 - 2026-07-06#
Fixed#
- Accept object-shaped tool categories in discover/inspect results (legacy string tags still supported); type widening recorded per review. (#97)