Files
wedding-phone/CHANGELOG.md
grabowski 6ff7664f31 Comprehensive documentation update - v1.2.0
**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>
2025-10-24 17:19:31 +07:00

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