Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 20 May 02:01
· 29 commits to main since this release

v0.5 chunker wave: 5 new languages — Kotlin, SQL, Terraform (HCL), C, C++ — bringing pluck to 16 languages and formats total. First release with Homebrew.

Performance (gated on benchmarks/baseline.json)

Metric Value What it gates
chunker_medium_ms_p50 1.05 ms tree-sitter parse + chunk extraction on a 500-line file
indexer_files_per_sec_medium 2 747 files/s cold-start indexing throughput
warm_search_p50_ms_medium 0.07 ms warm BM25F + RRF hybrid search
freshness_p50_ms_medium 171 ms save → re-indexed → visible to next query
session_dedup_session_savings_pct 23 % re-shown chunks replaced with a 1-token placeholder
digest_savings_pct 71 % pluck.digest compression of CI / test / build logs

Every release proves these on a real bench; every PR is gated against them. The frozen values are floor invariants, not aspirations.

16 languages / formats supported

Programming: Rust · TypeScript · TSX · JavaScript · Python · Go · Java · Kotlin · C · C++
Data / config: SQL · Terraform (HCL) · YAML · JSON · TOML
Docs / scripts: Markdown / MDX · HTML · CSS / SCSS · Dockerfile · Shell

Highlights

  • 5 new chunkers (Kotlin, SQL, Terraform / HCL, C, C++) — each shipped with a smoke test AND a real-world fixture in the same PR. Notable design choices:
    • HCL emits dotted symbols matching HCL's own reference syntax (resource.aws_s3_bucket.main, variable.region) so agents grep either the block type or the address and land.
    • C++ captures = delete / = default special members, qualified out-of-class member impls, reference-return variants, and templated class / function with both outer + inner surface for grep-by-either.
    • SQL emits a module chunk per ALTER TABLE so migration files surface the touched object even when the original CREATE TABLE lives elsewhere.
  • 7 repo-format chunkers from the unreleased v0.4 train ride along — HTML, CSS / SCSS, Markdown / MDX, YAML / JSON / TOML, Dockerfile, Shell, Java.
  • Prompt-first agent install — a single copy-pastable prompt installs pluck, registers the MCP server, and applies the strongest pluck-first retrieval layer the agent officially supports (Claude Code / Codex / Cursor + universal fallback for any MCP-capable agent).
  • pluck init writes .mcp.json / ~/.codex/config.toml / .cursor/mcp.json for one-command install-time replacement of the retrieval channel.
  • Release infraworkflow_dispatch re-runs the release workflow on a specific tag without re-pushing; version-management gate enforces Cargo.toml / Cargo.lock / CHANGELOG consistency on PRs; scripts/bump-version.py keeps internal pluck-core deps + Cargo.lock in lockstep.

Fixed

  • PLUCK_MCP_PROTOCOL_VERSION lets pluckd pin the advertised MCP protocol for clients that have not caught up to 2025-11-25.
  • TSX files now parse with tree-sitter's TSX grammar; parse warnings include the repo-relative path; index summaries count parse-error files.
  • pluck.grep is literal-by-default (--fixed-strings unless an explicit mode flag is passed). Identifiers with regex metacharacters like Foo( no longer fail with an unclosed-group error.
  • pluck.grep pre-validates cwd and surfaces a clear "cwd does not exist" diagnostic instead of a misleading "is rg on PATH?" spawn error.
  • Release workflow ownership split: release.yml owns GitHub Release + binaries, scripts/release.sh owns crates.io publish.

Install

# Cargo
cargo install pluck-cli pluck-mcp

# Homebrew (NEW in 0.5.0)
brew tap hunhee98/pluck
brew install pluck

# Or pre-built binaries — see assets below
#   • x86_64-apple-darwin
#   • aarch64-apple-darwin
#   • x86_64-unknown-linux-gnu

Then register pluckd with your AI agent using the agent install prompt.

Known limitations

  • aarch64-unknown-linux-gnu binary is NOT in this release. Azure-hosted Ubuntu runners cannot fetch arm64 apt indexes through their default mirror, breaking libssl-dev:arm64 install. Tracked for v0.5.1 (ports.ubuntu.com sources or cross-rs/cross Docker container). Workaround on ARM Linux today: cargo install pluck-cli pluck-mcp (builds from source, no binary needed).
  • CREATE PROCEDURE is not indexed in SQL files — tree-sitter-sequel grammar limitation. Functions, triggers, views, and ALTER TABLE migrations are fully supported. Waits on upstream grammar fix or parser swap.

Full changelog

See CHANGELOG.md for the complete entry list and the v0.3.0…v0.5.0 PR list for every merged change.