Skip to content

v1.5.0 — File-Based Indexing Progress Tracking

Choose a tag to compare

@github-actions github-actions released this 03 Jul 16:20

Release Notes

  • Feat(pipeline): New ProgressTracker API (src/pipeline/progress.rs) — thread-safe, pollable struct exposing snapshot() as a Serializeable IndexingProgress so knot-server can implement GET /repos/{name}/progress without a mapping layer. Counters use lock-free atomics; stage/error live behind an RwLock.
  • Feat(pipeline): Indexer logs a [Progress] [<repo>] X/Y files (Z%) — batch #N ingested (M entities) line after every ingested batch, and a final 100.0% line before reference resolution. Format pinned by tests/run_rust_e2e.sh grep assertions.
  • Feat(pipeline): run_indexing_pipeline_with_progress() and setup_watch_mode_with_progress() keep the legacy signatures, creating an internal throwaway tracker so CLI (knot-indexer) gets the log lines for free without opting into the API.
  • Feat(parser): New FileParsedCallback parameter on parse_files_stream invoked exactly once per file (success or parse error), keeping the parser decoupled from the tracker.
  • Test(progress): 10 unit tests on ProgressTracker (lifecycle, percent rules, concurrent atomicity, JSON serialization); 3 unit tests on parse_files_stream callback (once-per-file invariant, error-path counting, None regression).
  • Test(e2e): tests/run_rust_e2e.sh now asserts the [Progress] log format and the 100.0% final line.
  • Docs(readme): New "Indexing Progress" subsection with log-format example and library API sample.
  • Docs(specs): New specification docs/specs/indexing_progress_api.md covering the design, thread-safety, and knot-server integration sketch.
  • cargo fmt clean | cargo clippy --all-targets -- -D warnings clean
  • ✅ 854 unit tests passing.

Install knot 1.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/raultov/knot/releases/download/v1.5.0/knot-installer.sh | sh

Download knot 1.5.0

File Platform Checksum
knot-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
knot-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum