Skip to content

Commit bf0cbf1

Browse files
committed
Add changelog, optimize performance, and enhance CLI features for version 0.1.2
- Introduced CHANGELOG.md to document notable changes and updates. - Added performance optimizations including auto-detection of system resources and new flags for CLI commands. - Enhanced progress tracking with a unified progress bar and improved terminal output. - Updated README.md with new features and installation instructions. - Integrated memory management and batch processing improvements for better efficiency. - Added tests for optimized configuration and memory management features.
1 parent 7c121a5 commit bf0cbf1

14 files changed

Lines changed: 3183 additions & 2469 deletions

CHANGELOG.md

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
# Changelog
2+
3+
All notable changes to Project Vectorizer will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.1.2] - 2025-10-13
9+
10+
### Added
11+
12+
#### Performance & Optimization
13+
- **Optimized Config Generation** - New `Config.create_optimized()` method that auto-detects optimal settings based on system resources
14+
- Auto-detects CPU cores and sets optimal `max_workers`
15+
- Calculates safe batch sizes based on available RAM
16+
- Dynamically adjusts memory thresholds and GC intervals
17+
- Use with `pv init --optimize` for permanent optimization
18+
- **Max Resources Flag** - New `--max-resources` flag for `index` and `index-git` commands
19+
- Temporarily overrides config with optimized settings
20+
- Perfect for one-time performance boosts
21+
- Example: `pv index . --max-resources`
22+
- **psutil Integration** - Added `psutil` library for system resource detection
23+
- Automatic CPU core detection
24+
- Memory availability monitoring
25+
- Smart resource allocation
26+
27+
#### Progress & UI Improvements
28+
- **Unified Progress Tracking** - Clean, single-line progress bar for all indexing operations
29+
- Replaces cluttered per-file logging
30+
- Real-time progress updates with file names
31+
- Shows file status tags: [New], [Modified], [Deleted]
32+
- Callback-based architecture for flexible progress reporting
33+
- **Library Progress Bar Suppression** - Suppressed sentence-transformers batch progress bars
34+
- Added `show_progress_bar=False` parameter to embedding generation
35+
- Eliminates "Batches: 0%|..." clutter during indexing
36+
- **Timing Information** - All indexing operations now display elapsed time
37+
- Shows duration in seconds (< 1 min) or minutes+seconds (≥ 1 min)
38+
- Displayed in completion panels
39+
- Example: "Time taken: 2m 17s"
40+
- **Clean Terminal Output** - Professional, easy-to-read output
41+
- Automatic log suppression when progress callback is active
42+
- Warnings and errors still shown
43+
- Verbose mode available with `--verbose` flag
44+
45+
#### Documentation
46+
- **Comprehensive Documentation Index** - New `docs/README.md` with organized navigation
47+
- Links to all feature guides
48+
- Quick reference section
49+
- CLI command reference
50+
- Configuration reference
51+
- Troubleshooting guide
52+
- **Performance Guides** - Three detailed guides added:
53+
- `MAX_RESOURCES_GUIDE.md` - Using maximum system resources
54+
- `OPTIMIZED_CONFIG.md` - Auto-optimization features
55+
- `CLEAN_PROGRESS_OUTPUT.md` - Progress tracking system
56+
- **Changelog** - This file! Track all version changes
57+
58+
### Changed
59+
60+
#### Configuration
61+
- **Chunk Size Enforcement** - Engine now enforces max 128-token chunks (line 35 in engine.py)
62+
- Improved precision for searches
63+
- Better granularity for code matching
64+
- Configurable chunk size still respected for larger values
65+
- **Default Chunk Overlap** - Optimized overlap settings
66+
- Better balance between precision and performance
67+
- Reduced from 32 to 16 tokens for 128-chunk configs
68+
69+
#### Performance
70+
- **Batch Processing** - Memory-based batch size validation
71+
- Safe batch sizes calculated based on available RAM
72+
- Prevents out-of-memory errors on large projects
73+
- **Parallel Processing** - Improved worker management
74+
- Auto-detection of optimal worker count
75+
- Better CPU utilization
76+
- Configurable via `max_workers` setting
77+
78+
#### CLI
79+
- **Progress Output** - All index commands now use unified progress bar
80+
- `pv index` - Shows clean progress with timing
81+
- `pv index-git` - Shows git reference and timing
82+
- `pv sync --watch` - Real-time progress updates
83+
84+
### Fixed
85+
86+
- **Progress Bar Clutter** - Fixed multiple progress bars appearing during indexing
87+
- **Sentence-Transformers Output** - Suppressed library-internal batch progress bars
88+
- **Memory Usage** - Better memory management with GC intervals and monitoring
89+
- **Log Suppression** - Informational logs now properly suppressed when progress callback is active
90+
91+
### Performance
92+
93+
#### Benchmarks (with --max-resources)
94+
- **Indexing Speed**: ~2m 16s for 48 files (9,222 chunks) on 8-core system
95+
- **Chunk Size Impact**: Virtually identical performance between 128 and 512 token chunks
96+
- **Optimal Settings**: Auto-detected based on system (16 workers, 400 batch size on 8-core/16GB RAM)
97+
98+
#### Improvements
99+
- **Smart Incremental**: 60-70% faster than full re-indexing
100+
- **Git-Aware**: 80-90% faster for recent changes only
101+
- **Parallel Processing**: Linear scaling with CPU cores
102+
103+
### Documentation
104+
105+
All documentation has been reorganized and consolidated:
106+
- New central `docs/README.md` with comprehensive navigation
107+
- Updated main `README.md` with latest features
108+
- Added performance optimization guides
109+
- Added troubleshooting sections
110+
- Removed overly technical implementation documents
111+
112+
---
113+
114+
## [0.1.1] - 2025-10-12
115+
116+
### Added
117+
- **Enhanced Single-Word Search** - Optimized search for single keywords with high precision
118+
- **Multi-Level Chunking** - Added micro-chunks and word-level chunks for better granularity
119+
- **Adaptive Search Thresholds** - Automatically adjusts thresholds for optimal results
120+
- **Improved Word Matching** - Enhanced exact word boundary matching with relevance boosting
121+
- **Programming Keyword Detection** - Special handling for common programming terms
122+
- **Search Result Prioritization** - Better ranking for single-word queries
123+
- **Smaller Default Chunk Size** - Reduced to 256 tokens for better precision
124+
125+
### Changed
126+
- Search algorithm prioritizes exact matches over semantic similarity
127+
- Chunk size defaults changed for better single-word search performance
128+
129+
---
130+
131+
## [0.1.0] - 2025-10-10
132+
133+
### Added
134+
- Initial release
135+
- Code vectorization with sentence-transformers and OpenAI embeddings
136+
- Smart incremental indexing with file categorization
137+
- Git-aware indexing for commit-based updates
138+
- Watch mode with configurable debouncing
139+
- MCP (Model Context Protocol) server
140+
- HTTP fallback API
141+
- ChromaDB backend for vector storage
142+
- Support for 30+ programming languages
143+
- Real-time file monitoring
144+
- Semantic search with similarity thresholds
145+
- Project status tracking
146+
- Comprehensive CLI interface
147+
148+
### Features
149+
- Parse and vectorize code files
150+
- Track changes with git integration
151+
- Multiple indexing modes (full, incremental, smart, git-aware)
152+
- Search with natural language queries
153+
- MCP server for AI agent integration
154+
- File watching with debounce control
155+
- Configurable embeddings (sentence-transformers or OpenAI)
156+
- Multi-language support
157+
- Vector similarity search
158+
159+
---
160+
161+
## Release Notes
162+
163+
### Upgrading to 0.1.2
164+
165+
**New installations:**
166+
```bash
167+
pip install project-vectorizer
168+
pv init /path/to/project --optimize
169+
```
170+
171+
**Existing projects:**
172+
```bash
173+
pip install --upgrade project-vectorizer
174+
175+
# Optional: Regenerate config with optimization
176+
pv init /path/to/project --optimize
177+
178+
# Re-index with max resources
179+
pv index /path/to/project --max-resources
180+
```
181+
182+
### Breaking Changes
183+
184+
None. Version 0.1.2 is fully backward compatible with 0.1.1 and 0.1.0.
185+
186+
### Deprecations
187+
188+
None.
189+
190+
### Migration Guide
191+
192+
No migration needed. Existing projects will continue to work with their current configurations. To take advantage of new optimization features:
193+
194+
1. **Enable optimization** (optional):
195+
```bash
196+
pv init /path/to/project --optimize
197+
```
198+
199+
2. **Use max resources** (optional):
200+
```bash
201+
pv index /path/to/project --max-resources
202+
```
203+
204+
---
205+
206+
## Links
207+
208+
- [GitHub Repository](https://github.com/starkbaknet/project-vectorizer)
209+
- [PyPI Package](https://pypi.org/project/project-vectorizer/)
210+
- [Documentation](docs/README.md)
211+
- [Issue Tracker](https://github.com/starkbaknet/project-vectorizer/issues)

0 commit comments

Comments
 (0)