See the main README.md for installation and basic usage.
- TROUBLESHOOTING.md - Common issues and solutions
- Device not appearing in TIDAL app
- mDNS collision errors
- Service failures
- Complete diagnostic procedures
-
MDNS_COLLISION_FIX.md - Root cause analysis of mDNS collision issue
- Why the service was colliding with itself
- Evolution of the solution from fixed delays to state verification
- Testing and verification procedures
-
ARCHITECTURE.md - System architecture and design
- Component overview
- Defensive programming principles
- Race condition handling
- Failure scenarios and recovery
- Configuration tuning guide
-
DEFENSIVE_DESIGN_SUMMARY.md - Why state verification over fixed delays
- Problem with brittle timers
- Comparison of old vs new approaches
- Performance characteristics
- Testing commands
- WATCHDOG.md - Connection watchdog system
- Auto-recovery from token expiration
- Error detection logic
- Manual testing procedures
- CHANGELOG.md - All changes and version history
| Need to... | Read this |
|---|---|
| Fix an issue | TROUBLESHOOTING.md |
| Understand mDNS collision | MDNS_COLLISION_FIX.md |
| Understand system design | ARCHITECTURE.md |
| Understand why no fixed delays | DEFENSIVE_DESIGN_SUMMARY.md |
| Learn about auto-recovery | WATCHDOG.md |
| See what changed | CHANGELOG.md |
Scripts (in project root):
install_hifiberry.sh- Main installation scriptcheck-tidal-status.sh- Diagnostic toolfix-name-collision.sh- Helper for name conflictstidal-watchdog.sh- Auto-recovery servicevolume-bridge.sh- Volume/metadata syncwait-for-*.sh- State verification helpers
Service Templates (templates/):
tidal.service.tpl- Main service definitiontidal-watchdog.service.tpl- Watchdog servicetidal-volume-bridge.service.tpl- Volume bridge service
Container (Docker/):
Dockerfile- Container image definitionentrypoint.sh- Container startup scriptsrc/- Binaries and certificates
See ARCHITECTURE.md for complete testing procedures.
When adding features:
- Follow defensive programming principles (see ARCHITECTURE.md)
- Add retry logic with timeouts, not fixed delays
- Verify state transitions explicitly
- Update relevant documentation
- Test all failure scenarios
- Run diagnostics:
./check-tidal-status.sh - Check TROUBLESHOOTING.md
- Review logs:
docker logs tidal_connect --tail 50 journalctl -u tidal-watchdog -n 50 tail -50 /var/log/tidal-watchdog.log