|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to Straw 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 | +## [Unreleased] |
| 9 | + |
| 10 | +### Added |
| 11 | +- Initial documentation site with MkDocs |
| 12 | +- Comprehensive user guides and reference documentation |
| 13 | + |
| 14 | +## [1.0.0] - 2024-XX-XX |
| 15 | + |
| 16 | +### Added |
| 17 | +- Initial release of Straw file automation system |
| 18 | +- Background daemon (`strawd`) for filesystem monitoring |
| 19 | +- Interactive TUI client (`straw`) for real-time monitoring |
| 20 | +- Rule-based file processing engine |
| 21 | +- Support for glob and regex pattern matching |
| 22 | +- File attribute matching (extension, size, age, hidden) |
| 23 | +- Four action types: move, copy, trash, shell |
| 24 | +- Cross-platform support (Linux, macOS, Windows) |
| 25 | +- JSON-RPC IPC over Unix sockets |
| 26 | +- Live configuration reloading |
| 27 | +- Systemd service support on Linux |
| 28 | +- Interactive Rule Wizard in TUI |
| 29 | +- Event logging and monitoring |
| 30 | +- Multi-directory watching with recursive support |
| 31 | + |
| 32 | +### Features |
| 33 | + |
| 34 | +#### Daemon (strawd) |
| 35 | +- Filesystem watching using fsnotify |
| 36 | +- Rule evaluation and action execution |
| 37 | +- Configuration management |
| 38 | +- IPC server for client communication |
| 39 | +- Signal-based configuration reloading |
| 40 | +- Comprehensive logging |
| 41 | + |
| 42 | +#### TUI Client (straw) |
| 43 | +- Real-time event monitoring |
| 44 | +- Rule management interface |
| 45 | +- Interactive Rule Wizard |
| 46 | +- Configuration editing |
| 47 | +- Status monitoring |
| 48 | +- Keyboard-driven interface |
| 49 | + |
| 50 | +#### Configuration |
| 51 | +- TOML-based configuration |
| 52 | +- Platform-specific default paths |
| 53 | +- Watch directory configuration |
| 54 | +- Rule definition with multiple criteria |
| 55 | +- Multiple actions per rule |
| 56 | + |
| 57 | +#### Actions |
| 58 | +- `move`: Move files to target directory |
| 59 | +- `copy`: Copy files to target directory |
| 60 | +- `trash`: Move files to system trash |
| 61 | +- `shell`: Execute custom shell commands |
| 62 | + |
| 63 | +#### IPC API |
| 64 | +- JSON-RPC 2.0 protocol |
| 65 | +- Methods: GetStatus, GetEvents, GetRules, AddRule, RemoveRule, EnableRule, DisableRule, ReloadConfig, GetWatches, TriggerAction |
| 66 | +- Unix Domain Sockets (named pipes on Windows) |
| 67 | + |
| 68 | +### Platform Support |
| 69 | +- Linux with systemd integration |
| 70 | +- macOS with launchd support |
| 71 | +- Windows 10 1803+ with Task Scheduler support |
| 72 | + |
| 73 | +### Performance |
| 74 | +- Minimal resource footprint (~7MB RAM, <0.1% CPU idle) |
| 75 | +- Efficient event-driven architecture |
| 76 | +- Concurrent action execution |
| 77 | +- Scalable to hundreds of watched directories |
| 78 | + |
| 79 | +[Unreleased]: https://github.com/raythurman2386/straw/compare/v1.0.0...HEAD |
| 80 | +[1.0.0]: https://github.com/raythurman2386/straw/releases/tag/v1.0.0 |
0 commit comments