Merge train
Three fixes finished. Two approved. One sent back — and it holds the whole train, because it merges first.
1
Camp teams — stop the song-eater
Reshuffling teams deleted every submission. Merges first: it protects real songs.
SENT BACK
↓
2
A&R sign-up actually saves
Applications were thrown away. Now stored, admins notified, approval queue works.
APPROVED
↓
3
Editable emails
You can edit what the site sends, without a developer.
APPROVED
Why number one was sent back
- The save has a guard. It checks the list of team members.
- If that list is missing entirely — not empty, missing — the check never runs.
- The database treats a missing value as “unknown”. Unknown is not “true”, so the guard stays silent.
- The code carries on, wipes every team member, and reports success.
The reviewer proved it against the real database, then undid the test. Nothing was lost.
The second, smaller problem
The duplicate-team check compares IDs as plain text. The same ID written in capitals looks different from the same ID in small letters — so a duplicate slips through. Fix: compare them as IDs, not as text.
Where it stands
Both problems are back with the agent that wrote the fix. Nothing merges until camp teams passes. That order is deliberate — the song-protecting fix goes in first, then the A&R funnel, then the email editor.
Worth noting: this is the second layer of the same bug. We fixed the obvious version this morning; the reviewer found it hiding one level deeper by attacking the fix instead of reading it.