Releases: devsper-com/runtime
Releases · devsper-com/runtime
v3.1.7
Full Changelog: v3.1.6...v3.1.7
v3.1.6
Full Changelog: v3.1.5...v3.1.6
v3.1.5
Full Changelog: v3.1.4...v3.1.5
v3.1.4
Full Changelog: v3.1.3...v3.1.4
v3.1.3
Full Changelog: v3.1.2...v3.1.3
v3.1.2
Full Changelog: v3.1.4...v3.1.2
v2.7.2
Changed
- Prompt optimizer default — Auto-detect replaces hard-coded
noopdefault. Factory resolves todspyifdspy-aiis importable, elsegepa(built-in evolutionary loop, no extra install required). Setprovider = "noop"explicitly to disable. PromptOptimizerConfig.provider— Default changed from"noop"to""(auto-detect).
Full Changelog: v2.7.1...v2.7.2
v2.7.1
Added
- Eval harness — New
devsper/evals/module:EvalCase,EvalDataset(JSONL-backed),EvalRunner(async, bounded concurrency),EvalSummary, andMetricFnprotocol. Built-in metrics:exact_match,contains,regex_match,word_overlap,non_empty,llm_judge(model=). - Prompt optimizer abstraction —
PromptOptimizerBackendABC mirroring theMemoryBackend/LLMBackendhot-swap pattern. Active backend resolved fromDEVSPER_PROMPT_OPTIMIZERenv var →[prompt_optimizer] providerconfig → default"noop". - DSPy backend (
devsper[dspy]) —DSPyBackendcompiles few-shot examples into an optimized system prompt usingBootstrapFewShot,MIPROv2, orBootstrapFewShotWithRandomSearch. Configured via[prompt_optimizer] dspy_optimizer,max_demos,num_candidates. - GEPA backend (
devsper[gepa]) —GEPABackendruns an evolutionary prompt optimization loop. Uses thegepalibrary when installed; falls back to a built-in LLM-driven mutation loop so it works without any extra dependencies. - OpenEvals metric adapter (
devsper[openevals]) —openevals_metric(name)wraps any OpenEvals LLM-as-judge evaluator as aMetricFn. Prebuilt names:correctness,conciseness,groundedness,relevance. Accessible viaget_metric("openevals:correctness"). Falls back to built-inllm_judgewhen the package is absent. devsper evalCLI — Three subcommands:eval stub(generate JSONL stub datasets per role),eval run(score a dataset, optional--optimizeflag,--optimizer dspy|gepa),eval results(list persisted result files).- Config sections —
[prompt_optimizer]and[evals]added todevsperConfigModel. - Optimized prompt persistence —
EvalRunnersaves results to.devsper/optimized_prompts/{role}.json.get_role_config()auto-loads these on the next run. devsper[evals],devsper[dspy],devsper[gepa],devsper[openevals]extras.- pytest
livemarker — Gates tests that require real API keys.
Changed
get_metric(name)extended: now accepts"openevals:<evaluator>"in addition to built-in names.get_role_config()— Checks.devsper/optimized_prompts/{role}.jsonand uses the optimized prefix if present.
Full Changelog: v2.7.0...v2.7.1
v2.7.0
Added
- MemoryProvider abstraction — Introduced
MemoryBackendABC (devsper/memory/providers/base.py) mirroring theLLMBackendpattern. All memory backends implement a unified async interface:store,retrieve,delete,list_memory,list_all_ids,query_similar,health. - MemoryProvider factory —
get_memory_provider()singleton factory resolves the active backend from config ([memory] provider),DEVSPER_MEMORY_PROVIDERenv var, or legacybackendfield. Defaults to Vektori (pgvector) with automatic SQLite fallback whenDATABASE_URLis not set. - Snowflake memory backend — New
SnowflakeBackendusingVECTOR(FLOAT, 1536)columns andVECTOR_COSINE_SIMILARITYfor native semantic search. Credentials resolved exclusively via the devsper credential store orSNOWFLAKE_*env vars — never from config files. - SQLite, Redis, Vektori, Platform backends — Existing stores wrapped as
MemoryBackendimplementations withget_sync_store()escape hatch for legacy sync callers. - Credential store: Snowflake + Redis — Added
snowflakeandredis_memoryproviders to keyring mappings.devsper credentials set snowflake passwordstores the Snowflake password securely;inject_into_env()propagates allSNOWFLAKE_*vars automatically. - Config schema — Added
RedisMemoryConfigandSnowflakeMemoryConfigsub-models under[memory].SnowflakeMemoryConfighas nopasswordfield — credentials are credential-store-only. devsper doctormemory provider health check —run_doctor()now callsprovider.health()and reports the active backend name and status.devsper[snowflake]anddevsper[redis-memory]extras —snowflake-connector-python>=3.6.0andredis>=5.0.0optional dependency groups.deregister(name)in tool registry — Public function to remove a single tool by name without clearing the whole registry.MemoryIndexnative search delegation — When the active backend hassupports_native_vector_search=True,query_memory()andquery_across_runs()delegate directly tobackend.query_similar(), bypassing in-process cosine ranking.
Changed
MemoryRouterandMemoryIndexaccept an optionalbackend: MemoryBackendparameter. The_build_memory_store()fallback now calls the factory instead of constructingMemoryStore()directly.get_effective_memory_store()preserved as a backwards-compatible alias; newget_effective_memory_backend()returns the fullMemoryBackend. Async-only backends (Vektori, Snowflake) are bridged via_AsyncBridgeStorefor sync callers.- Legacy
backendvalues (local,supermemory,hybrid) now map to"vektori"as the default production store.
Fixed
test_pipelines.py— Replacedregistry._tools.pop()(broken module-level access) with newderegister()function.test_e2e_redis_loop.py— Import guard preventsModuleNotFoundErrorwhenredisis not installed; test now correctly skips instead of failing.
Full Changelog: v2.6.0...v2.7.0
v2.6.0
Added
- TruLens observability integration — Added first-class TruLens instrumentation for swarm runs and agent calls, with configurable runtime toggles in
[telemetry](trulens_enabled,trulens_database_url) and recorder/session exports indevsper.telemetry. - CLI observability dashboard command — Added
devsper observeto launch the TruLens dashboard locally with optional--portand--dboverrides. - Optional
trulensextra — Addeddevsper[trulens]dependency group for straightforward TruLens installation.
Changed
- Swarm execution path —
Swarm.runnow records via a TruLens custom app wrapper when enabled, with safe fallback to the standard runtime path if TruLens initialization or recorder setup fails. - Agent call capture —
Agent.runis instrumented for per-call telemetry capture when TruLens is installed. - Telemetry defaults and examples — Updated default config template to include TruLens options and local database guidance.
Full Changelog: v2.5.0...v2.6.0