- **Consolidate modules**: All root JS files moved to `lib/` folder
- **Extract add handlers**: New `lib/add-handlers.js` module (874 lines removed from index.js)
- Rename `spotify-async.js` → `lib/spotify.js`
- Fix duplicate playlist queueing bug (was queueing twice)
- Fix tolerance calculation for small values in integration tests
- Fix pluralization in searchalbum ("1 track" vs "1 tracks")
- Add Spotify null guards in search functions
- Replace `.map()` with `.forEach()` for side effects
- Add `githubToken` to setconfig with sensitive value masking
- Improve feature request error messages with setup instructions
- Add exact queue size verification (catches duplicate queueing bugs)
- Three-level validation: exact (silent), within tolerance (warning), outside (fail)
- Search album/playlist before adding to verify expected track count
- Fix test runner to detect threaded bot responses
- Add rate-limit handling and reduce polling frequency
- Add automatic retry with 10s backoff on test failure
- Show track count in searchalbum results
- Pin Node.js to 20.20.0 (meets posthog-node engine requirement)
- Fix Slack RTM → Socket Mode in AI generator prompt
- Fix heredoc variable expansion in workflow
- Bump posthog-node to 5.24.2
- 25 files changed, +2224 -955 lines
- 10 modules moved to `lib/`
- 42 new unit tests for add-handlers
- 8 new integration tests with queue size verification
- All 553 unit tests passing