Files
lidify/CONTRIBUTING.md
Your Name cc8d0f6969 Release v1.3.0: Multi-source downloads, audio analyzer resilience, mobile improvements
Major Features:
- Multi-source download system (Soulseek/Lidarr with fallback)
- Configurable enrichment speed control (1-5x)
- Mobile touch drag support for seek sliders
- iOS PWA media controls (Control Center, Lock Screen)
- Artist name alias resolution via Last.fm
- Circuit breaker pattern for audio analysis

Critical Fixes:
- Audio analyzer stability (non-ASCII, BrokenProcessPool, OOM)
- Discovery system race conditions and import failures
- Radio decade categorization using originalYear
- LastFM API response normalization
- Mood bucket infinite loop prevention

Security:
- Bull Board admin authentication
- Lidarr webhook signature verification
- JWT token expiration and refresh
- Encryption key validation on startup

Closes #2, #6, #9, #13, #21, #26, #31, #34, #35, #37, #40, #43
2026-01-06 20:07:33 -06:00

1.3 KiB

Contributing to Lidify

First off, thanks for taking the time to contribute! 🎉

Getting Started

  1. Fork the repository
  2. Clone your fork locally
  3. Set up the development environment (see README.md)
  4. Create a new branch from main for your changes

Branch Strategy

All development happens on the main branch:

  • All PRs should target main
  • Every push to main triggers a nightly Docker build
  • Stable releases are created via version tags

Making Contributions

Bug Fixes

  1. Check existing issues to see if the bug has been reported
  2. If not, open a bug report issue first
  3. Fork, branch, fix, and submit a PR referencing the issue

Small Enhancements

  1. Open a feature request issue to discuss first
  2. Keep changes focused and minimal

Large Features

Please open an issue to discuss before starting work.

Code Style

Frontend

The frontend uses ESLint. Before submitting a PR:

cd frontend
npm run lint

Backend

Follow existing code patterns and TypeScript conventions.

Pull Request Process

  1. Target the main branch
  2. Fill out the PR template completely
  3. Ensure the Docker build check passes
  4. Wait for review - we'll provide feedback or approve

Questions?

Open a Discussion thread for questions that aren't bugs or feature requests.

Thanks for contributing!