Releases: VeraTools/vera
Releases · VeraTools/vera
Release list
v1.4.1
Bug Fixes
- cli: agent activation: snippet rewrite, index-root walk-up, -n trap, stale-warning dedupe (#280)
- core: harden legacy ~/.vera detection (hidden files, unreadable dir) (#277)
- cli: report unproven vera launchers instead of ignoring them (#249)
- eval: match CPU vendor case-insensitively in host_cpu provenance test (#273)
Other Changes
- release: install cargo-zigbuild with its ziglang dependency in one venv
- repo: public-launch cleanup pass
- run CI on stock GitHub-hosted runners, reserve Blacksmith for releases (#278)
- release: build Linux targets with cargo-zigbuild (glibc 2.28, real musl C++ runtime) (#276)
Full Changelog: v1.4.0...v1.4.1
v1.4.0
Features
- retrieval: enable vector filter-during-scan by default (#268)
Full Changelog: v1.3.1...v1.4.0
v1.3.1
Features
- cli: port path-filter hint to vera grep via GlobMatcher (refs #250, PR #221 1be6ee4) (#258)
- ranking: add filename stem gating knobs with TDD (#257)
- vector: filter-during-scan eligibility map and flat scan (#255)
Bug Fixes
- tests: close remaining flakes from #262/#263 (LAST_HYDRATION_COUNT, cargo_bin, set_var) (#264)
- cli: recognize the shim by matching what the installer wrote (alternative to #260) (#263)
- setup: ask Direct3D 12 whether DirectML can run (#259)
Other Changes
- vector: harden filter-during-scan with typed fallback, scan guard and bulk matcher (#256)
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Features
- retrieval: toggleable hypotheses knobs for issue #196 (DEFAULT OFF) (#244)
- eval: add host CPU model and ranking env provenance with TDD tests (#242)
- retrieval: toggleable ranking signals for issue #196 with mechanism rationales (#239)
- cli: streamline Qwen first-run to single key and auto protocol (#237)
- cli: ship Qwen OpenRouter preset and setup hardening (#236)
- reranker: protocol/capability model and config plumbing (#230)
- consumers: update split-symbol consumers to bare+part_index (#226)
- core: split-symbol identity bare+part_index (#225)
- indexing: add completeness marker and flock guard for reuse race (#224)
- eval: ship reuse_index with identity gates (#223)
- references: record call receivers and filter callers by them
Bug Fixes
- ci: remove docs paths-ignore so docs-only PRs run validation (#247)
- cli: correct retrieval.max_output_chars help default to 0 = unlimited (#235)
- retrieval: harden m4 reranker review findings (#234)
- progress: harden m3 scrutiny findings (typed cancel, clamp, dedup, tracker reconcile) (#233)
- core: harden m2 review findings and document VERA_MAX_OUTPUT_CHARS (#232)
- reranker: pin resilience - permanent 4xx no-retry, capped Retry-After/OpenRouter waits, cancellation, degradation (#231)
- indexing: honest progress denominator (indeterminate until ParsingDone) (#229)
- retrieval: filtered-vector loss at retrieval core (#227)
- retrieval: wait out reranker 429 quota windows when a wait cap is set
- core: cap query-time reads at max_file_size_bytes, key RST cache on cycle state
- cli: let doctor diagnose broken configs, probe DirectML, remove cargo binaries
- glob: memoize the recursive matcher and hint wildcard dir prefixes
- discovery: stat and sniff through one open handle, loop short reads
- parsing: canonicalize the include-cycle stack seed
Performance
- retrieval: deduplicate vector-store open per query (#197) (#245)
- retrieval: implement #197 latency work with bounded caches and staleness proof (#240)
Other Changes
- cli,eval: harden Qwen preset identity and harness provenance (#241)
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Features
- embedding: API document prefixes with staleness guard, ROCm and config hardening
Bug Fixes
- docs: release notes and refreshed benchmark numbers for v1.2.0
- retrieval: narrow the definition-site gate to fixture paths
- retrieval: gate content-symbol definition boost by content role
- security: surface transitive unsound advisories in cargo-deny
- storage: read-only index opens, batched stats aggregates, honest vector counts
- cli: doctor blank-env scoring, uninstall exit code, non-TTY agent install
- mcp,serve: frame size cap, watcher update coalescing, per-repo watchers
- parsing: fence-aware markdown, Python inheritance, archive-token scoping
- retrieval: deep-search robustness, BM25 operator sanitizing, reranker shortfall
Performance
- indexing: overlap parse, embed, and store stages of full builds
- retrieval: cache the indexed file list across queries
- indexing: windowed parse-embed-store with staged publish
- retrieval: paged hydration for the BM25 rejection tail
- retrieval: hydrate BM25 candidates in paged batches
Other Changes
- lint: satisfy clippy 1.98 collapsible-if and chunks-exact lints
- add pull request validation workflow and correct the MSRV
- core: share index staging suffixes and deduplicate BM25 test
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Features
- local-models: pin revisions, verify digests, multi-shard weights
- retrieval: make reranking work under the potion backend, default off
- parsing: attach doc comments to symbol chunks, keep bash dispatchers whole
- parsing: extract bash case arms as named sub-symbols
- parsing: extract Lua function-valued assignments as symbols
- local-models: allow overriding the local reranker via env
- embedding: make potion-code-16M-v2 the default local backend
- core: honor pinned revisions for local embedding models
- cli: offer indexing on first search
- eval: pin Semble provenance and metric contract
- eval: configurable model lanes, task slicing, and full provenance (#141)
Bug Fixes
- security: descriptor-relative source reads via cap-std
- serve: keep in-flight model loads when the initiator disconnects
- parsing: bound RST include fan-out, cache expansions
- cli: align tests with reranking default, show sub-ms stage timings
- eval: match ground-truth paths by path-boundary suffix
- cli: repair no longer rewrites backend or reranker state, and trailing-period queries classify correctly
- core: install rustls provider before blocking prefix fetch
- cli: reject the structural query routes and sql cannot honour (#137)
- parsing: stop body-spanning containers swallowing their members (#131)
- embedding: apply jina-embeddings-v5's Query/Document retrieval prefixes (#95)
- embedding: pool jina-embeddings-v5 on the last token, not the mean (#94)
- serve: cache each model per slot instead of rebuilding it per request (#134)
- mcp: fuse multi-query search results instead of concatenating them (#124)
- retrieval: break RRF ties on a stable key so results stop varying per process (#127)
- retrieval: time query embedding and vector search separately (#113)
- core: re-root git scope paths onto the indexed directory (#138)
- cli: emit one JSON document from
vera uninstall(#128) - cli: exit non-zero when
vera doctorreports a failing check (#136) - indexing: do not follow symlinks out of the repository (#111)
- mcp: surface a stale-index warning in tool results (#130)
- core: single-source the Language wire name and honour retrieval.max_rerank_batch (#125)
- embedding: single-source the CodeRankEmbed query prefix (#129)
- cli: honour --client and --scope on
vera agent sync(#110) - parsing: Rust inline mod swallows every symbol inside it (#126)
- parsing: advance chunk coverage monotonically past nested symbols (#115)
- indexing: write hashes and the freshness stamp after the stores are rebuilt (#123)
- retrieval: contain indexed file paths within the project root (#112)
- retrieval: resolve the reranker provider before acquiring its runtime (#90)
- docs(parsing): pin the naming convention for dotted JSX components (#88)
- parsing: select the signature grammar by path, like indexing does (#87)
- indexing: make update publication cancellation-safe (#83)
- upgrade: verify the version changed, not that it equals the release tag (#63)
- indexing: treat unreadable tracked files as stale (#77)
- retrieval: bound the KNN candidate pool instead of clamping silently (#65)
- parsing: parse .tsx with the tsx grammar and index JSX call sites (#58)
- parsing: name const-assigned functions in TS/JS (#59)
Performance
- storage: exact flat-SIMD vector scan sidecar, sqlite-vec fallback
- retrieval: reuse search stores across queries
- retrieval: rerank pooled candidates with coherence, coverage, and definition signals
- reranker: length-sort local rerank batches to cut padding waste
- mcp: build the watcher's runtime and provider once, not per debounce cycle (#133)
- retrieval: build the reranker lazily, only for queries that rerank (#132)
- cli: let the update cache answer the install method before detecting it (#114)
- storage: resolve KNN rowids in one query instead of one per hit (#86)
- indexing: parallelize update path and batch metadata writes/reads (#69) (#73)
- indexing: delete BM25 documents for all changed files in one pass (#84)
- storage: seek the index when deleting a file's vectors (#81)
- storage: index the lower() lookups instead of scanning (#80)
Other Changes
- deps: tantivy 0.25 -> 0.26.1, MSRV 1.86
- remove dead code and deduplicate indexing helpers
- cli: remove runtime config forwarding helper
- docker: use ephemeral buildx builders and cap Blacksmith job runtime
- publish the openvino docker image (#61)
- build ROCm image from digest-verified GHCR base mirror (#55)
- make buildx prune non-blocking so the daemon retry always runs
- retry failed docker publishes via the runner docker daemon
- checkout the requested tag in docker recovery workflow
- scope docker concurrency per variant, least-privilege permissions
- reuse release binary for docker images, drop redundant cache
- size release runners to the macOS baseline, add docker cache repair
- move musl build to 8vcpu to tighten the wall-clock band
- balance release runner sizes to equalize build wall-clock
- serialize docker publishes, pass tag via env instead of template expansion
- speed up release builds and fix rocm docker publish
Full Changelog: v1.0.1...v1.1.0
v1.0.1
Features
- Merge pull request #39 from citron07r/fix/index-no-progress
- cli: add --no-progress to vera index and gate progress on an interactive stderr
Bug Fixes
- Merge pull request #47 from VeraTools/fix/agent-sync-non-destructive
- Merge pull request #40 from citron07r/fix/setup-non-interactive
- Merge pull request #43 from citron07r/fix/upgrade-verify-applied
- Merge pull request #42 from citron07r/fix/vector-error-context
- Merge pull request #33 from citron07r/fix/coreml-reranker-cpu-provider
- cli: quiet auto-sync, CRLF-safe snippet refresh, doc accuracy
- setup: reject empty API credential env values
- cli: stop agent sync from overwriting user-edited markdown
- storage: log KNN clamp and test error chain formatting
- setup: honor complete API credentials in non-interactive mode
- upgrade: report unconfirmed upgrades as not applied
- upgrade: verify the applied version instead of trusting the installer exit code
- storage: clamp KNN k to the sqlite-vec limit instead of losing vector search
- setup: make flag-driven setup work without a terminal
- retrieval: run the reranker on CPU under CoreML
Other Changes
- add CodeRabbit configuration tuned to project guidelines
- upgrade: single-source the version-match decision
- migrate release and docker workflows to Blacksmith runners
- point repository references at the VeraTools org
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Features
- fix(build): fail loudly when vendored grammars are missing
- Merge experimental graph augmentation (off by default)
- retrieval: experimental structural graph augmentation (VERA_GRAPH_AUGMENT)
- retrieval: rerank path-glob scoped searches
- parsing: index TS/JS/Java class methods and Java enum methods
- search: repeatable --path filter, symbol-type aliases
- reranker: support Voyage rerank endpoints
- config: support embedding model aliases
- reranker: prefer API reranking over local when credentials configured
- Merge pull request #31 from freaksdotcom/bhigh/vera-mcp-cancel
- Merge pull request #30 from freaksdotcom/bhigh/vera-mcp-progress-reporting
- update: limit files per run
- update: report progress
- serve: add idle-timeout model cache with per-request default
- serve: cancel in-progress inference when client disconnects
- serve: add vera serve command with pure inference API
- retrieval: parallelize hybrid search and strengthen ranking signals
- retrieval: add BM25 stemming, stronger definition ranking, concept augmentation
- retrieval: add potion backend and cached search
- eval: semble benchmark integration, full-pipeline adapters, benchmark_root scoping
- retrieval: adaptive RRF weighting, identifier BM25, file saturation decay
- structural: index explicit type relations
- structural: add agent-oriented search intents
- search: add git scopes, explain-path, and AST queries
Bug Fixes
- eval: harden benchmark harnesses against partial runs
- core: parse git scope paths as NUL-delimited records
- cli: cancellable indexing and local-setup reranker hygiene
- serve: load only the needed provider per request
- local-models: harden model asset and runtime setup
- indexing: close staleness and removal gaps in incremental updates
- retrieval: honor cancellation and harden hybrid search
- retrieval: correct exact-match and query-classification edge cases
- mcp: correct operation nouns in git-scope schema descriptions
- benchmarks: drop fake vector-only mode from run_vera_benchmarks
- eval: fail loudly on adapter errors, guard empty sets, harden agent-bench reruns
- build: assert vendored grammar scanner.c exists
- serve: honor return_documents and guard eviction of in-use models
- mcp: correct search_code and path filter schemas
- parsing: TS interface methods and type-relation correctness
- core: git revision validation, update atomicity, exact_paths separators
- cli: agent snippet truncation, sync refresh gating, backend wizard
- build: fail loudly when vendored grammars are missing
- local: validate ONNX model integrity and repair safely
- indexing: read source files with lossy UTF-8 decoding
- search: clamp grep byte index to char boundary
- filters: handle Unicode paths in glob matching
- Merge pull request #22 from flier268/master
- Merge pull request #22 from flier268/master
- Merge pull request #29 from freaksdotcom/bhigh/vera-bounded-inference
- Merge pull request #25 from citron07r/fix/coreml-reranker-cpu-fallback
- Merge pull request #27 from citron07r/fix/openai-embedding-token-limit
- Merge pull request #26 from citron07r/fix/intent-breaks-bm25
- Merge pull request #28 from citron07r/fix/path-glob-directory-prefix
- retrieval: prevent scoped BM25 candidate starvation
- preserve indexing APIs and review edge cases
- indexing: cancel synchronous pipeline stages
- indexing: handle cancellation edge cases
- update: bound and cancel remote work
- inference: bound abandoned remote work
- search: match bare directory path globs as directory prefixes
- embedding: auto-truncate on OpenAI token-limit errors
- search: keep reranking on for intent searches; borrow in no-intent path
- search: keep --intent prefix out of BM25 queries
- local: stop CoreML reranker fp16 CPU fallback
- serve: fix cancellation gaps in local inference providers
- serve: prevent empty-key auth bypass and redact internal errors from API responses
- lint: resolve clippy warnings and fmt violations from vera serve
- local: recover from onnx provider session failures
- eval: filter tasks to corpus instead of failing on missing repos
- retrieval: harden bm25 and local indexing
- setup: prompt for api credentials
- resolve type relation generics, structural false negatives, and minor correctness issues
- eval: keep file-backed runs out of stdout
- search: tighten structural heuristics and add eval gating
- search: detect stale indexes and improve exact-match hints
- agent: keep managed Vera snippets current
- Merge pull request #18 from maxwellsocial/fix/voyage-ai-batch-limit
- cli: surface global output flags in help
- search: preserve generated regex hits and global flags
Performance
- retrieval: skip rerank when pool has no surplus over result limit
- local: scale CoreML batch size from unified memory
- namespace-aware embedding cache key prevents cross-model poisoning (#7)
- serve: remove unnecessary clones in embeddings and rerank handlers
- retrieval: trim vector candidate overfetch
Other Changes
- eval: share search_with/index_with between the two Vera adapters
- eval: single run_full_adapter helper for the three full-pipeline lanes
- benchmarks: extract shared metric helpers into bench_common.py
- benchmarks: prune archival result JSONs, keep v1 full-suite record
- benchmarks: prune 23MB of archival result JSONs
- eval: drop unreferenced Stability subcommand
- indexing: single chunk_file_for_update helper in update.rs
- mcp: dedup repeated tool schema properties
- core: share CompactResult and truncate_to_budget via presentation module
- cli: single AgentClient::META table for variants and names
- cli: split clap definitions into cli.rs, fix two lints
- retrieval: extract exact-match augmentation from search_service
- retrieval: split ranking.rs into query/score modules
- core: split local_models.rs into focused modules
- parsing: split extractor.rs into focused modules
- parsing: merge lisp define extraction behind keyword tables
- parsing: RawSymbol::at constructor, shared name-kind tables
- parsing: table-drive node classification, drop debug prints
- core: env override helper, preset builder, misc small dedups
- embedding,storage: merge do_embed paths, api_err and collect_rows helpers
- core: drop dead helpers, use rusqlite OptionalExtension
- embedding: single concurrent embed path, shared store setup
- retrieval: share chunk mapping, result key, and content predicates
- retrieval: remove dead search wrappers, collapse fuse_rrf_multi
- repo: drop patch artifacts, tracked pycache, spikes, superseded benchmark runs
- deps: semver-compatible dependency refresh
- deps: bump crossbeam-epoch for RUSTSEC-2026-0204, drop unused serde_json
- serve: load embedding and rerank models per-request instead of at startup
- structural: narrow impl search to Rust traits
- surface: converge on agent-first search workflows
Full Changelog: v0.12.13...v1.0.0
v0.12.13
Bug Fixes
- cli: surface global output flags in help
- search: preserve generated regex hits and global flags
Full Changelog: v0.12.12...v0.12.13