All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.21.0 - 2025-02-23
- Glob pattern handling in e2e tests
- Update README with glob pattern and file selection support
- Handle glob patterns in input paths
- Add comprehensive tests for glob pattern support
- Run release and publish jobs on main branch
- Only run release and publish on tag pushes
- Trigger release on tag merge to main
0.20.0 - 2025-02-22
- Handle root directory paths correctly
- Update input_dirs to input_paths in benchmarks
- Allow files as input
- Use absolute path in test_empty_input_defaults_to_cwd
- Add integration test
- V0.20.0
0.19.0 - 2025-02-19
- Improve token counting accuracy
- Ensure token and max-size limits are respected
- Remove unnecessary mut keywords from test configs
- Update token limit enforcement test
- Use tiktoken for accurate token counting
- Add token count to debug output
- Bump clap from 4.5.28 to 4.5.30
- Bump tempfile from 3.16.0 to 3.17.1
- Only count tokens when debug logging is enabled
- V0.19.0
0.18.0 - 2025-02-13
- Ensure files with same timestamp get same boost
- S/json/coveralls
- It is covdir
- Print debug statements only when --debug is set
- Code coverage
- Typo
- Fix repo path and author in Cargo.toml
- Remove unused byte-unit dependency
- Upgrade dependencies
- Bump config from 0.15.6 to 0.15.7
- Bump toml from 0.8.19 to 0.8.20
- Bump clap from 4.5.27 to 4.5.28
- Bump config from 0.15.7 to 0.15.8
- Bump bytesize from 1.3.0 to 1.3.2
- Add more unit tests
- Handle missing base branch coverage gracefully
- covdir
- V0.17.0
- V0.18.0
0.16.0 - 2025-01-30
- Add explicit target installation to build action
- Fix arguments help in README
- Update README.md
- Print version with --version
- Ci
- Also skip strss in main
- Refactor build action to use explicit inputs
- Remove unused upload_artifacts from build action
- Simplify build action inputs
- Optimize build pipeline
- Consolidate workflows into ci.yml
- Add concurrency control to perf jobs
- Add source-based caching for builds
- Rewrite most of the CI automation
- Use QEMU for ARM binary stress tests
- Do not wait for test to finish in build
- Remove musl arm
- Fix logic on which job to run baased on changes
- V0.16.0
0.15.0 - 2025-01-29
- Add musl toolchain support for Linux builds
- Improve aarch64-musl cross-compilation setup
- Use musl cross-compiler for aarch64-musl builds
- Update readme to reflect recent changes and more
- Pr feedback
- Make max_git_depth a configuration (read only)
- Safer type casting
- Cargo fmt
- Do not go beyond 100 commits reading git history
- Do checksum and serializing in parallel
- Simplify GitHub Actions workflow structure
- If crates is already published, skip
- Separate bench + stress testing
- Install openssl for bench workflow too
- Use checkout v4
- Organize ci better to not DRY too much
- Organize build into its own action
- V0.15.0
0.14.0 - 2025-01-29
- Clean up imports and remove duplicates
- Add #[allow(dead_code)] to is_effectively_absolute
- Add musl-tools installation for MUSL targets
- Remove leading slash from Windows drive path in test
- Add OpenSSL setup for macOS builds
- Add OpenSSL setup for MUSL builds
- Use muslrust container for MUSL builds
- Add OpenSSL static build for MUSL targets
- Add output directory for benchmarks
- Improve OpenSSL configuration for macOS builds
- Remove unsupported --output-dir flag from benchmark commands
- Add OpenSSL setup for all Linux targets
- Add YEK_OUTPUT_DIR env var for benchmarks
- Add output directory config to benchmarks
- Update OpenSSL setup for MUSL builds
- Resolve dead code warnings and MUSL cross-compilation issues
- Update benchmark groups in CI to match actual benchmark definitions
- Correct TOML format in yek.toml
- Add required pattern field to yek.toml
- Correct priority_rules format in yek.toml
- Ensure output_dir takes precedence and properly sets stream flag
- Add git config in tests
- Update README to reflect YAML config usage
- Fix yek.yaml example
- Add multi-arch support and fix OpenSSL issues
- Print output directory path when not streaming
- Improve output messages and logging
- Introduce config.rs with ClapConfigFile integration
- Add priority.rs for advanced file scoring
- Delete dead code
- Bump git-cliff from 1.4.0 to 2.3.0
- Bump clap from 4.5.26 to 4.5.27
- Bump byte-unit from 4.0.19 to 5.1.6
- Clean up git leftovers from the tokenizer branch
- PR review
- Update .gitignore and add VSCode launch config
- Revamp Cargo deps (config-file support, JSON, YAML, etc.)
- Add sample yek.yaml config
- Fix clippy issues in parallel.rs
- Add majo/minor to make release
- Add new serialization bench with FullYekConfig
- Remove unnecessary info log
- Streamline defaults.rs, remove old binary checks
- Update lib and parallel code to rely on FullYekConfig
- Update main.rs to use new config system
- Replace map_or with is_some_and
- Remove legacy integration tests, add new e2e config tests
- Add bench.toml
- Fix single small file benchmark
- Force release for now
- Improve release action
- Reuse build from ci.yaml in release
- Attempt #2, fix release action
- Add fail-fast: false to build job
- Allow manual invocation of release
- Merge build and release actions
- Add rustup target add before building for each target
- Add bench back
- Use cross to build in CI
- Fix build
- Introduce the AI loop
- Fix AI Loop
- Bring new changes from tokenizer work to main (ai loop)
- Improve AI loop
- Install yek in ai loop
- Fix release
- Add unique names to artifacts
- Add unique names to artifacts
- V0.13.9
- V0.14.0
0.13.8 - 2025-01-20
- Ensure files are processed only once and fix priority test
- Use WalkBuilder in streaming mode to respect gitignore
- Include hidden files in WalkBuilder configuration
- Move big lists to defaults.rs
- Organization
- Fix the release script
- Move size parsing tests to dedicated test file
- Move normalize_path tests to dedicated file
- Improve gitignore handling and fix clippy warnings
- Improve binary file handling and remove duplicate gitignore checks
- Add lots of e2e and integration tests
- Add comprehensive gitignore end-to-end tests
- Fix binary file test assertion
- Add git 2
- Simpler release script
- Fix e2e tests to pass
- Ignore temp txt files
- V0.13.8
0.13.7 - 2025-01-19
- Ensure most important chunks are output last when streaming
- Handle Windows paths correctly in gitignore matching
- Make chunk order test platform-independent
- Make chunk order test more robust across platforms
- Improve test robustness and error handling
- Handle logging initialization gracefully in tests
- Manually update Formula version
- Handle Windows paths correctly in gitignore matching
- Update Formula version to match project version
- Get version using cargo pkgid
- Add aarch64-linux-gnu linker configuration
- Use configured max_size in aggregator instead of hardcoded value
- Ensure files with different priorities are in separate chunks
- Normalize Windows paths for priority calculation
- Standardize path handling using PathBuf and normalize_path
- Handle Windows path normalization correctly
- Handle Windows UNC paths correctly
- Normalize paths consistently in gitignore matching and priority sorting
- Add --no-verify flag to cargo publish
- Add roadmap
- Make chunking clear in README
- Fix note formatting
- Update changelog for v0.13.2
- Improve readme
- Add documentation for file_index field
- Prioritize high-priority files in streaming mode
- Integrate git-cliff for changelog generation
- Bump version to 0.13.1
- Remove semantic release and sync versions
- Improve benchmark configuration and accuracy
- Remove duplicate formula update from release workflow
- Optimize chunk priority check and improve debug logging
- Use consistent chunk size constants
- Add test to verify chunk ordering behavior
- Normalize Windows paths in chunk order test
- Publish to crates.io
- Improve benchmark job configuration
- Parallelize benchmark groups in serialization tests
- V0.13.5
- V0.7.5
- V0.13.1
- V0.13.3
- V0.13.4
- V0.13.5
- V0.13.5
- V0.13.6
0.13.5 - 2025-01-19
- Add aarch64-linux-gnu linker configuration
- Integrate git-cliff for changelog generation
- V0.13.5
0.13.4 - 2025-01-19
- Lint
- V0.13.4
0.13.3 - 2025-01-19
- Update Formula version to match project version
- Get version using cargo pkgid
- Update changelog for v0.13.2
- Remove semantic release and sync versions
- Remove duplicate formula update from release workflow
- V0.13.3
0.13.2 - 2025-01-19
- Handle Windows paths correctly in gitignore matching
- Handle Windows paths correctly in gitignore matching
0.13.1 - 2025-01-19
- Bump version to 0.13.1
- V0.13.1
0.7.5 - 2025-01-19
- Manually update Formula version
- V0.7.5
0.13.0 - 2025-01-19
- Make tag cleanup cross-platform compatible
0.7.4 - 2025-01-19
- Pr feedback
- Cross-platform SHA256 computation and artifact handling
- Improve version parsing and changelog handling
- Include all files in release commit
- Implement tag-based release workflow
- Update Cargo.lock and gitignore
- Improve Makefile cross-platform support and remove redundant target
- Use HTML comments for installation script extraction
- Remove automatic script path updating
- V0.7.3
- V0.7.4
0.12.4 - 2025-01-19
- Use GITHUB_TOKEN for authentication in CI workflow
0.12.3 - 2025-01-19
- Update GitHub authentication in CI workflow
0.12.2 - 2025-01-19
- Add PAT token to git push command in CI workflow
0.12.1 - 2025-01-19
- Improve git change detection in CI workflow
0.12.0 - 2025-01-19
- Add aarch64 Linux target configurations
- Install cross-compilation tools for ARM64 Linux targets
- Add linker configuration for ARM64 Linux targets
- Add linux-musl target support
- Add ARM64 Linux support
0.11.0 - 2025-01-19
- Update README with K suffix example
- Support K suffix for token count
0.10.0 - 2025-01-19
- Remove default priority list
- Update benchmark comparison parameter to use --noise-threshold
- Output directory handling in non-streaming mode
- Run serialization in parallel
- Remove unused import from benchmark
- Optimize file processing performance
- Optimize file processing with single-pass reads and smart parallelization
- Reduce benchmarking threshold
0.9.0 - 2025-01-19
- Use tempfile::tempdir() for performance tests
0.8.1 - 2025-01-19
- Update readme
- Grammatical error
- Add performance test
- Parallel execution for better perf
- Add benchmark regression test with 5% threshold
- Add comprehensive benchmarks for serialization
- Fix linting issues in parallel.rs
- Undo parallel execution in test branch
0.8.0 - 2025-01-19
- Improve installation test workflow
- Improve installation test error handling and diagnostics
- Fix YAML linting in installation test workflow
- Improve Windows installation test
- Add macOS support to installation test
- Remove ARM64 Windows target and cleanup CI workflow
- Improve file chunking and debug output
- Correct file priority sorting order
- Ensure higher priority files come last in output
- Ensure consistent priority boost across platforms
- Ensure consistent commit timestamps in tests
- Ensure consistent commit timestamps in tests
- Ensure consistent path handling in tests
- Skip test_git_priority_boost_with_path_prefix in windows
- Skip test_git_priority_boost
- Remove redundant ignore pattern check
- Normalize path separators on Windows for consistent pattern matching
- Type inference issue in HashMap::get
- Normalize path separators for gitignore matching on Windows
- Normalize path separators for custom ignore patterns on Windows
- Normalize path separators in output on Windows
- Add installer script and update README with installation instructions
- Add Windows installer script and update README
- Add semantic release and GitHub Pages deployment
- Add installation testing to CI workflow
- Add build optimizations and improve CI caching
- Add installation test workflow and update README markers
- Update installation URLs to use bodo.run
- Remove unused import
- Remove unused functions and imports
- Remove unnecessary mut declarations
- Add installer tests
0.6.0 - 2025-01-15
- Remove --stream flag in favor of automatic pipe detection
- Add user-friendly size input format
- Prepare for v0.6.0
0.5.0 - 2025-01-15
- Update README to match actual CLI implementation
0.4.0 - 2025-01-13
- Add git-based priority boost for recently changed files
0.3.0 - 2025-01-13
- Improve file processing and error handling
- Swap -s and -x flags for stream and max-size options
- Add homebrew formula and release automation
- Fix formatting and linting issues
0.2.0 - 2025-01-13
- Fix token counting flag handling
- Fix token counting flag handling
- Fix clippy warnings
- Resolve -d flag conflict and clarify stream flag behavior - Change delay flag from -d to -w to avoid conflict with debug flag - Update stream flag help text to clarify it disables output directory
- Add debug logging and fix warnings - Add --debug flag and tracing, add detailed debug logs throughout code, clean up build warnings
- Update default ignore patterns
- Add configurable output directory - Add output_dir field to LlmSerializeConfig - Add -o/--output-dir CLI flag - Support output directory configuration in yek.toml - Implement output directory override logic with CLI precedence
- Bump version to 0.2.0
- Fix clippy warning about redundant closure
- Apply cargo fmt suggestions