docs(plan): add M4c radio similarity-driven candidate pool plan
6-task TDD-shaped plan covering: LoadRadioCandidatesV2 sqlc query (5-way UNION), Score() extension with SimilarityScore + SimilarityWeight, LoadCandidatesFromSimilarity Go function with CandidateSourceLimits + 10 integration tests covering all sources + dedup + exclude + recently- played + seed-excluded + empty library, radio handler with exclude param + parseExcludeParam helper + M3 fallback + 4 new HTTP tests, frontend queue refresh at 80% with radioSeedId state + clear-on-non- radio-enqueue + 5 vitest tests, final verification + branch finish (closes M4).
This commit is contained in: