v0.0.584
Warning
This release is incomplete: the darwin-amd64 (Intel macOS) binary is missing and no signatures or provenance were published, because the Intel macOS build failed (#1143 — cryptography 50 dropped Intel macOS wheels). Use v0.0.586 instead, which ships the complete, signed set of binaries. PyPI and Docker artifacts for 0.0.584 are unaffected.
Highlights
- Rust Path Resolution: Improved resolution of Rust module paths, ensuring accurate cross-crate calls and self-imports.
- Configuration Handling: Explicitly override the QDRANT_URL environment variable to prevent accidental use of remote clients.
- Trait Implementation: Enhanced dispatch of generic-bound receivers through their trait bounds.
- Dependency Updates: Updated several dependencies including uv, h2, and pymdown-extensions.
- CI Improvements: Cached the HuggingFace hub in CI to reduce download times and verified built wheels against unlocked dependency resolution.
What's Changed
- fix: keep the brace-list base path on scoped identifiers in Rust use trees by @vitali87 in #1041
- fix: resolve Rust workspace crate names in use paths so cross-crate calls bind precisely by @vitali87 in #1044
- fix: type Rust iterator-adaptor closure params from the collection's element by @vitali87 in #1046
- fix: override QDRANT_URL explicitly so .env cannot force a remote client by @vitali87 in #1052
- fix: dispatch Rust generic-bound receivers through their trait bounds by @vitali87 in #1053
- fix(dead-code): root Rust methods implementing external traits by @vitali87 in #1055
- docs(flow): correct the stale return-taint ordering ceiling by @vitali87 in #1057
- fix(rust): bind a brace-list self import under the module name by @vitali87 in #1056
- docs: state an external service policy and soften the framework rule by @vitali87 in #1059
- fix: bind a Rust block-local item over the enclosing function body use by @vitali87 in #1060
- build(deps): bump the uv group across 1 directory with 2 updates by @dependabot[bot] in #1063
- fix: scope Rust block-local items to the block that declares them by @vitali87 in #1064
- fix: resolve a Rust #[path] mod declaration to the file it names by @vitali87 in #1066
- fix: keep a Rust body-local item from taking a reachable qualified name by @vitali87 in #1068
- fix: type a Rust local from the block item its call site names by @vitali87 in #1072
- test: fail a run that swallowed a per-file pass failure by @vitali87 in #1073
- fix: give the dedup variant a column so same-line twins stay distinct by @vitali87 in #1074
- test: pin each Rust duplicate-qn method to its own outgoing calls by @vitali87 in #1075
- fix: bind a Rust trait-impl method to the trait its own block names by @vitali87 in #1077
- fix: never give a Rust inherent impl method an override edge by @vitali87 in #1079
- fix: honour a Rust #[path] redirect declared outside a crate entry file by @vitali87 in #1081
- fix: bind a Rust impl block to the trait its own written path names by @vitali87 in #1084
- fix: resolve super:: inside a Rust #[path] target against the module tree by @vitali87 in #1085
- perf: keep the Rust declaration scan linear in blank source by @vitali87 in #1090
- fix: AgentRunResult.usage API compatibility on pydantic-ai 2.x by @vitali87 in #1091
- test: stub dotnet availability so the fingerprint frontend test is hermetic by @vitali87 in #1103
- fix: prune the Rust redirect sweep with the indexer's exclude and unignore predicate by @vitali87 in #1102
- build(deps): bump h2 from 4.3.0 to 4.4.1 in the uv group across 1 directory by @dependabot[bot] in #1104
- docs: refresh stale AI model suggestions and add missing context windows by @vitali87 in #1119
- ci: cache the HuggingFace hub so unit tests stop downloading weights by @vitali87 in #1118
- fix: publish the daemon stack ports on loopback by default by @vitali87 in #1117
- fix: drop a module's function_locations before it re-parses by @vitali87 in #1113
- build(deps): bump pymdown-extensions from 11.0 to 11.0.1 in the uv group across 1 directory by @dependabot[bot] in #1122
- fix: walk the C++ module qn map with --exclude and .cgrignore by @vitali87 in #1108
- fix: resolve Rust super:: and self:: calls through the written path by @vitali87 in #1110
- feat: confirm before --clean wipes other projects from the shared graph by @vitali87 in #1106
- fix: default server.json to the keyless ollama path the runtime uses by @vitali87 in #1116
- test: wait on debounce conditions instead of wall-clock sleeps by @vitali87 in #1115
- fix: stop pre-commit hooks mutating the dev venv and lockfile by @vitali87 in #1105
- fix: gate Rust declaration reads on the indexer's exclude and unignore sets by @vitali87 in #1109
- fix: resolve a Rust super:: call against the module the caller is really in by @vitali87 in #1094
- docs: tighten release verification guidance from PR #1013 review by @vitali87 in #1015
- fix: validate role API keys at MCP startup before constructing services by @vitali87 in #1126
- ci: smoke the built wheel against unlocked dependency resolution by @vitali87 in #1107
- fix(dead-code): treat JS/TS well-known symbol members as liveness roots (#993) by @ChetanyaRathi in #1006
- fix: keep the full bracketed computed name when registering object-literal symbol members by @vitali87 in #1129
- fix: resolve Java imports through Maven and Gradle source roots to real Module nodes by @vitali87 in #1127
- fix: index ambient namespace function signatures as merged receiver bindings by @vitali87 in #1130
- fix: hold the class-body cache owner by reference so a recycled tree address cannot serve stale nodes by @vitali87 in #1131
- fix: honour cargo per-kind auto-discovery opt-outs when classifying Rust crate roots by @vitali87 in #1132
- fix: root src/bin mod.rs and explicit mod.rs targets as their own crates by @vitali87 in #1133
- fix: register watch-created files with the call pass so their CALLS edges emit in the same cycle by @vitali87 in #1134
- fix: guard the watch prefix sweep with span-record ownership so sibling registrations survive by @vitali87 in #1135
- perf: keep the Rust declaration-scan attribute groups line-local and gather blocks by a linear walk by @vitali87 in #1136
- feat: three-verdict flow reachability with per-module coverage metadata by @vitali87 in #1137
- fix(mcp): stop marking orchestrator/cypher API keys required in server.json by @AmirF194 in #1095
- chore: update retired Claude model ids in server.json and review workflow by @kasparovabi in #1067
- docs(config): update AI model suggestions and defaults to latest models by @rajkumarpawar07 in #1058
New Contributors
- @kasparovabi made their first contribution in #1067
- @rajkumarpawar07 made their first contribution in #1058
Full Changelog: v0.0.534...v0.0.584