pdfx 0.1.0

A lightning-fast terminal-native PDF indexing and search toolkit
Documentation
# Release Notes

## v0.1.3 - Cross-Platform Release 🌍
*Released: August 2025*

### πŸŽ‰ **Fully Cross-Platform Release**

Major improvements to build system and cross-platform compatibility! Now with automatic binary generation for all major platforms.

### ✨ **What's New in v0.1.2**

#### **πŸ”§ Build System Improvements**
- **πŸͺŸ Windows Build Fix**: Added bundled SQLite feature to resolve Windows linking issues
- **πŸš€ Automated Releases**: GitHub Actions now automatically builds binaries for all platforms
- **πŸ“¦ Four Platform Support**: Linux x86_64, Windows x86_64, macOS Intel, macOS Apple Silicon
- **πŸ”’ Reproducible Builds**: Updated `Cargo.lock` for consistent dependency versions

#### **🧹 Repository Cleanup**
- **πŸ“ Code Formatting**: Applied `rustfmt` standards across entire codebase
- **πŸ” Linter Compliance**: Fixed all `clippy` warnings for better code quality
- **πŸ—‚οΈ Module Organization**: Resolved module inception issues (`database.rs` β†’ `db.rs`, `indexer.rs` β†’ `scanner.rs`)
- **πŸ“‹ Enhanced `.gitignore`**: Prevents accidental commit of binaries and temporary files

#### **βš™οΈ CI/CD Pipeline**
- **βœ… Continuous Integration**: Automated testing, formatting, and linting on every commit
- **πŸ” Security Auditing**: Daily dependency vulnerability scanning
- **πŸ“Š Build Status**: Real-time build status badges
- **πŸ—οΈ Multi-Platform Builds**: Simultaneous building across Linux, Windows, and macOS

### **πŸ“¦ Core Features** *(Stable)*
- **πŸ” Smart PDF Indexing**: SQLite-powered database with metadata extraction
- **⚑ Lightning Fast**: Two-phase scanning with accurate progress tracking  
- **🎨 Beautiful Progress Bars**: Custom Braille character indicators (`β£Ώβ£·β£―β£Ÿβ‘Ώβ’Ώβ Ώβ Ÿβ ›β ‹`)
- **πŸ“Š Zero Duplicates**: Intelligent `INSERT OR REPLACE` prevents duplicate entries
- **πŸ›‘οΈ System-Aware**: Gracefully skips protected directories (Photos, System, etc.)
- **🧹 Clean Uninstall**: Complete data removal with `pdfx cleanup`

### **πŸ–₯️ Commands Available**
```bash
pdfx init [path]        # Index PDFs in specified directory (one-time setup)
pdfx search "query"     # Search indexed PDFs (coming in v0.2.0)
pdfx list [-a]          # List indexed PDFs (coming in v0.2.0)  
pdfx recent [-l N]      # Show recent PDFs (coming in v0.2.0)
pdfx cleanup            # Complete data cleanup and uninstall
```

#### **Database & Storage**
- **Local SQLite Database**: Stored in OS-appropriate data directories
- **Complete Privacy**: No cloud storage, no tracking, no data sharing
- **Clean Uninstall**: `pdfx cleanup` removes all traces

### πŸ› οΈ **Technical Highlights**

- **Architecture**: Clean modular design with proper separation of concerns
- **Error Handling**: Robust error handling with graceful degradation
- **Performance**: Efficient two-phase scanning for accurate progress tracking
- **Memory Safe**: Built with Rust for memory safety and performance

### πŸ“Š **Database Schema**
Your PDFs are indexed with:
- Full file path and filename
- File size and modification timestamps  
- Indexing timestamp for change detection
- Unique path constraints to prevent duplicates

### πŸš€ **Getting Started**

1. **Install**:
   ```bash
   cargo install --git https://github.com/ionnss/pdfx
   ```

2. **Index your PDFs**:
   ```bash
   pdfx init ~/Documents
   ```

3. **Enjoy lightning-fast PDF management!**

### πŸ› **Fixes**
- **Windows Compilation**: Resolved `LNK1181: cannot open input file 'sqlite3.lib'` error
- **CI Build Failures**: Fixed formatting and linting issues that broke automated builds
- **Module Organization**: Eliminated clippy warnings about module inception
- **Binary Artifacts**: Prevented accidental commit of large binary files

### πŸ“‹ **Technical Details**
- **SQLite Integration**: Uses bundled SQLite (no system dependencies required)
- **Cross-Compilation**: Supports building for multiple targets simultaneously
- **Memory Safe**: 100% Rust implementation with zero unsafe code
- **Dependency Management**: All dependencies locked for reproducible builds

---

## v0.1.1 - Workflow Integration πŸ”„
*Released: January 2025*

### πŸ› οΈ **GitHub Actions Integration**
- Added CI/CD workflows for automated testing and building
- Cross-platform build matrix (Linux, Windows, macOS)
- Security audit workflow for dependency monitoring

---

## v0.1.0 - Initial Release πŸš€  
*Released: January 2025*

### πŸŽ‰ **First Public Release**
- Core PDF indexing functionality with SQLite backend
- Two-phase scanning with Braille progress indicators
- Cross-platform data directory support
- Graceful error handling for system permissions
- Complete cleanup functionality

---

## πŸ—ΊοΈ **Roadmap**

### **v0.2.0 - Search & Discovery** *(Next Release)*
- **πŸ” Search Implementation**: Full-text search through indexed PDFs
- **πŸ“‹ List Command**: Display and filter indexed PDFs with sorting options
- **πŸ“… Recent Command**: Show recently modified PDFs with timestamps
- **🎯 Enhanced Filtering**: Search by file size, modification date, path patterns
- **πŸ“Š Statistics**: Show indexing statistics and storage usage

### **v0.3.0 - Content Intelligence** *(Future)*
- **πŸ“„ PDF Content Extraction**: Index text content for full-text search
- **πŸ” Advanced Search**: Search inside PDF content, not just filenames  
- **🏷️ Auto-Tagging**: Automatic categorization based on content
- **πŸ“ˆ Analytics Dashboard**: Visual statistics and insights

### **v0.4.0 - AI Integration** *(Vision)*
- **πŸ€– AI Summaries**: Automatic PDF content summarization
- **❓ Question Generation**: Study questions from PDF content
- **🎯 Key Point Extraction**: Highlight important information
- **πŸ”— Smart Linking**: Connect related PDFs automatically

---

## πŸ“‹ **System Requirements**
- **Operating System**: Linux, macOS, or Windows  
- **Architecture**: x86_64 (Intel/AMD64) or ARM64 (Apple Silicon)
- **Terminal**: Modern terminal with Unicode/UTF-8 support
- **Storage**: ~50MB for installation, variable for database (depends on PDF count)

---

## πŸ™ **Acknowledgments**
Built with excellence using:
- **[Rust]https://rust-lang.org** πŸ¦€ - Systems programming language
- **[rusqlite]https://crates.io/crates/rusqlite** - SQLite database operations
- **[clap]https://crates.io/crates/clap** - Command-line argument parsing
- **[indicatif]https://crates.io/crates/indicatif** - Progress bars and spinners
- **[walkdir]https://crates.io/crates/walkdir** - Recursive directory traversal
- **[chrono]https://crates.io/crates/chrono** - Date and time handling
- **[dirs]https://crates.io/crates/dirs** - Cross-platform directory paths

---

## πŸ› **Known Issues**
- **Command Placeholders**: Search, List, and Recent commands show "not implemented" messages
- **System Permissions**: Some directories may show permission warnings (this is normal)
- **Large Directories**: Very large directory trees (>100k files) may take longer to scan
- **Unicode Filenames**: Some special Unicode characters in filenames may display incorrectly

---

## πŸ”— **Links**
- **πŸ“¦ Download**: [GitHub Releases]https://github.com/ionnss/pdfx/releases
- **πŸ’» Source Code**: [GitHub Repository]https://github.com/ionnss/pdfx  
- **πŸ› Bug Reports**: [GitHub Issues]https://github.com/ionnss/pdfx/issues
- **πŸ“š Documentation**: [README.md]https://github.com/ionnss/pdfx/blob/main/README.md