**CHANGELOG.md Created:** - Complete version history from 1.0.0 to 1.2.0 - Detailed changelog with all features, changes, fixes - API endpoints documentation - Configuration changes documentation - Upgrade notes from 1.0.0 to 1.2.0 - Known issues and future enhancements **README.md Enhanced:** - Added Quick Start section at top - Added comprehensive Table of Contents - Updated Python version requirement (3.7 -> 3.8) - Added UV and Make to software requirements - Added new API endpoints (backup, delay) - Expanded Contributing section with guidelines - Added Version History section (current: v1.2.0) - Enhanced License section with clear permissions - Added Credits and Technologies Used sections - Added Support & Community section - Added proper closing with emoji - Updated file structure with CHANGELOG.md - Better file descriptions in structure **Documentation Improvements:** - Clear upgrade path from 1.0.0 to 1.2.0 - All new features documented - All configuration changes documented - Better organization with TOC - More professional presentation - Complete feature list - Development guidelines for contributors **Version Information:** - Current version: 1.2.0 - Major features: USB backup, systemd service, UV support - Breaking changes: Python 3.8+ required - New scripts: setup_usb.sh, install_service.sh - New commands: make start, make test, make sync **Key Highlights:** - ✅ Professional documentation structure - ✅ Easy to navigate with TOC - ✅ Quick Start for new users - ✅ Complete changelog for upgrading - ✅ Clear contribution guidelines - ✅ Proper version tracking 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
219 lines
6.3 KiB
Markdown
219 lines
6.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to the Wedding Phone project are documented in this file.
|
|
|
|
## [1.2.0] - 2025-01-24
|
|
|
|
### Added
|
|
- **USB Backup System with CRC32 Verification**
|
|
- Automatic backup to multiple USB drives
|
|
- CRC32 checksum verification for data integrity
|
|
- Configurable backup paths in config.json
|
|
- Web interface for monitoring USB drive status
|
|
- Test backup functionality
|
|
- Automatic cleanup of corrupted backups
|
|
- `setup_usb.sh` script for easy USB drive setup with proper permissions
|
|
|
|
- **Systemd Service Support**
|
|
- `wedding-phone.service` systemd service file
|
|
- `install_service.sh` automated service installer
|
|
- Auto-start on boot capability
|
|
- Automatic restart on failure
|
|
- Service log viewing with journalctl
|
|
|
|
- **UV Package Manager Integration**
|
|
- Makefile for simplified commands (`make start`, `make test`, `make sync`)
|
|
- UV-based dependency management
|
|
- No-build direct script execution
|
|
- Faster, more reliable installation
|
|
|
|
- **Greeting Delay Feature**
|
|
- Configurable delay (0-10 seconds) before greeting plays
|
|
- Web interface slider for real-time adjustment
|
|
- Useful for giving guests time to position phone
|
|
|
|
- **Extra Button Support**
|
|
- Optional GPIO button for playing sounds during recording
|
|
- Button sound only plays during recording phase (not greeting)
|
|
- Separate PyAudio instance prevents blocking
|
|
- Configurable button sound upload via web interface
|
|
|
|
### Changed
|
|
- **Immediate Hook Detection**
|
|
- Playback and recording now check GPIO directly for instant response
|
|
- No more delays when handset is hung up
|
|
- Greeting stops immediately when phone is hung up
|
|
- Recording stops immediately when phone is hung up
|
|
|
|
- **Recording Improvements**
|
|
- Minimum 1-second duration required to save recording
|
|
- Recordings shorter than 1 second are automatically deleted
|
|
- Aborted recordings are cleaned up automatically
|
|
- No more empty or accidental recordings
|
|
|
|
- **Volume Control Enhancement**
|
|
- Real-time volume adjustment (0-100%)
|
|
- Volume persists in user_config.json
|
|
- Applies to both greetings and button sounds
|
|
|
|
- **Configuration System Overhaul**
|
|
- Separated system config (config.json) from runtime config (user_config.json)
|
|
- No hardcoded paths (e.g., /home/berwn)
|
|
- All GPIO pins configurable
|
|
- All paths configurable (relative or absolute)
|
|
- Backup settings in configuration
|
|
|
|
- **Python Version Requirement**
|
|
- Updated from Python 3.7+ to Python 3.8+ (Flask requirement)
|
|
|
|
### Fixed
|
|
- **USB Backup Permissions**
|
|
- Fixed "Permission denied" errors on USB backup
|
|
- Better error messages with fix suggestions
|
|
- Proper permission checking for user-mounted drives
|
|
- No longer requires running as root
|
|
|
|
- **UV Build Issues**
|
|
- Removed hatchling build system (not needed for scripts)
|
|
- Uses `--no-project` mode for direct execution
|
|
- Simplified dependency installation
|
|
- No more build errors
|
|
|
|
- **Extra Button Sound Playback**
|
|
- Fixed button sound not playing during recording
|
|
- Uses separate PyAudio instance to prevent stream conflicts
|
|
- Button sound plays completely without interruption
|
|
- Recording continues while button sound plays
|
|
|
|
- **Template Regeneration**
|
|
- Templates now regenerate when deleted
|
|
- New features appear after template deletion
|
|
- Documented template regeneration process
|
|
|
|
### Security
|
|
- **Service Hardening**
|
|
- NoNewPrivileges enabled
|
|
- PrivateTmp enabled
|
|
- Runs as regular user (not root)
|
|
- GPIO and audio group access configured
|
|
|
|
### Documentation
|
|
- **Comprehensive README Updates**
|
|
- Added USB backup guide with mounting instructions
|
|
- Added systemd service installation guide
|
|
- Added Makefile usage documentation
|
|
- Added greeting delay documentation
|
|
- Added extra button operation guide
|
|
- Added troubleshooting section expansions
|
|
- Updated Python version requirements
|
|
- Added UV installation and usage guide
|
|
|
|
- **New Documentation Files**
|
|
- `CHANGELOG.md` - This file
|
|
- `setup_usb.sh` - USB drive setup script
|
|
|
|
### API Endpoints Added
|
|
- `GET /api/backup/status` - Get USB backup drive status
|
|
- `POST /api/backup/test` - Test backup to all USB drives
|
|
- `GET /api/greeting_delay` - Get current greeting delay
|
|
- `POST /api/greeting_delay` - Set greeting delay
|
|
- `GET /api/volume` - Get current volume
|
|
- `POST /api/volume` - Set volume
|
|
|
|
### Configuration Changes
|
|
New sections in `config.json`:
|
|
```json
|
|
{
|
|
"backup": {
|
|
"enabled": true,
|
|
"usb_paths": ["/media/usb0", "/media/usb1"],
|
|
"verify_crc": true,
|
|
"backup_on_write": true
|
|
},
|
|
"gpio": {
|
|
"extra_button_enabled": true,
|
|
"extra_button_pin": 27,
|
|
"extra_button_pressed_state": "LOW"
|
|
},
|
|
"system": {
|
|
"greeting_delay_seconds": 0,
|
|
"volume": 70
|
|
}
|
|
}
|
|
```
|
|
|
|
## [1.0.0] - Initial Release
|
|
|
|
### Features
|
|
- Rotary phone hookswitch detection via GPIO
|
|
- Custom greeting message playback
|
|
- Voice recording after greeting
|
|
- Web interface for file management
|
|
- HiFiBerry DAC+ADC Pro support
|
|
- Dial tone generation
|
|
- Basic configuration via config file
|
|
|
|
---
|
|
|
|
## Upgrade Notes
|
|
|
|
### Upgrading from 1.0.0 to 1.2.0
|
|
|
|
1. **Update Python version**
|
|
```bash
|
|
python3 --version # Must be 3.8 or higher
|
|
```
|
|
|
|
2. **Update configuration file**
|
|
- Copy `config.example.json` to see new options
|
|
- Add `backup` section if using USB backup
|
|
- Add `gpio.extra_button_*` if using extra button
|
|
- Add `system.greeting_delay_seconds` and `system.volume`
|
|
|
|
3. **Install UV (recommended)**
|
|
```bash
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
```
|
|
|
|
4. **Install dependencies**
|
|
```bash
|
|
make sync
|
|
```
|
|
|
|
5. **Delete old templates** (to get new web features)
|
|
```bash
|
|
rm -rf templates/
|
|
```
|
|
|
|
6. **Optional: Install as service**
|
|
```bash
|
|
./install_service.sh
|
|
```
|
|
|
|
7. **Optional: Setup USB backup**
|
|
```bash
|
|
sudo ./setup_usb.sh
|
|
```
|
|
|
|
---
|
|
|
|
## Known Issues
|
|
|
|
- Template files must be manually deleted to get UI updates (this is by design)
|
|
- USB drives must be mounted with proper user permissions for backup to work
|
|
- PyAudio installation may require system packages: `sudo apt-get install python3-pyaudio portaudio19-dev`
|
|
|
|
---
|
|
|
|
## Future Enhancements
|
|
|
|
Potential features for future releases:
|
|
- Web-based configuration editor
|
|
- Multiple language support
|
|
- Email notifications for new recordings
|
|
- Cloud backup integration
|
|
- Mobile app for remote management
|
|
- Recording transcription
|
|
- Guest photo capture
|
|
- QR code generation for easy access
|