Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .jules/bolt.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,7 @@
## 2025-05-19 - File Discovery Allocations
**Learning:** In `discover_importing_files`, `WalkBuilder` results were being converted to `PathBuf` via `.map(|e| e.into_path())` *before* filtering. This caused allocations for every single file in the workspace (including excluded files and directories).
**Action:** Filter `ignore::DirEntry` directly using `entry.file_type()` and `entry.path()` before mapping to `PathBuf`. This avoids allocations for non-matching files.

## 2024-05-31 - is_likely_code_text Binary File Scanning Optimization
**Learning:** In `is_likely_code_text` heuristic functions, counting non-printable characters across an entire buffer without an early exit caused a significant performance penalty when scanning binary files, forcing full 8KB scans even after the failure threshold was met. Furthermore, simple mathematical checks (`non_printable * 20 < sample_len`) without early bounds checks can be heavily optimized for mismatch cases.
**Action:** When writing heuristics that iterate over buffers to classify data, always add an early exit condition as soon as a failure/success threshold is met.
Original file line number Diff line number Diff line change
Expand Up @@ -519,12 +519,19 @@ fn is_likely_code_text(content: &str) -> bool {
let sample = &content.as_bytes()[..sample_len];
let mut non_printable = 0usize;
for &b in sample {
let is_text = b == b'\n' || b == b'\r' || b == b'\t' || (b >= 0x20 && b <= 0x7e);
// Optimize range check to use .contains() to prevent clippy warnings.
let is_text = b == b'\n' || b == b'\r' || b == b'\t' || (0x20..=0x7e).contains(&b);
if !is_text {
non_printable += 1;
// Early exit optimization: abort scanning as soon as failure threshold is met
// avoiding full 8KB scan for large binary files.
if non_printable * 20 >= sample_len {
return false;
}
}
}
non_printable * 20 < sample_len
// Correctly handle zero-length inputs preserving original logic
sample_len > 0
}

fn is_obviously_irrelevant_extension(ext: &str) -> bool {
Expand Down
Loading