- Shipped
- September 18, 2026 at 5:22 AM UTC
- Author
- Kamo
- Commit
- 20d15da
Three agents and the first sweep each taught the app the same trick — format a translated sentence with a mark where the name goes, split on it, draw the name as a MemberName — and it ended up written six times: two helpers (sentenceSlots' sentenceParts, memberSentence's aroundMemberName), five inline '\\u0000' splits and the history page's own lineWithMembers, with two different marks between them. app/lib/sentenceSlots.ts is now the one place: sentenceParts for a line with several slots, aroundMemberName for the common one-name case (built on it). memberSentence.ts is gone; every caller imports from sentenceSlots, and its tests moved with it.