**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>
6.3 KiB
6.3 KiB
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.shscript for easy USB drive setup with proper permissions
-
Systemd Service Support
wedding-phone.servicesystemd service fileinstall_service.shautomated 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
- Makefile for simplified commands (
-
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-projectmode 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 filesetup_usb.sh- USB drive setup script
API Endpoints Added
GET /api/backup/status- Get USB backup drive statusPOST /api/backup/test- Test backup to all USB drivesGET /api/greeting_delay- Get current greeting delayPOST /api/greeting_delay- Set greeting delayGET /api/volume- Get current volumePOST /api/volume- Set volume
Configuration Changes
New sections in config.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
-
Update Python version
python3 --version # Must be 3.8 or higher -
Update configuration file
- Copy
config.example.jsonto see new options - Add
backupsection if using USB backup - Add
gpio.extra_button_*if using extra button - Add
system.greeting_delay_secondsandsystem.volume
- Copy
-
Install UV (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh -
Install dependencies
make sync -
Delete old templates (to get new web features)
rm -rf templates/ -
Optional: Install as service
./install_service.sh -
Optional: Setup USB backup
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