cc48309c7c6c4cebe0c5e559e500259bce2828a6
Both PhraseReminder copies truncated with summary[:57] on a byte length. A Cyrillic letter is two bytes, so a Russian summary was cut at about 28 letters rather than 60, and byte 57 lands inside a letter roughly half the time. Sendable.Summary is what voicesink hands to piper and what the telegram sink posts, so the half letter was spoken and sent. The existing truncation test is ASCII-only, which is why the arithmetic survived. One shared reminderSummary counts runes now. Two phrasing paths returned an empty string with a nil error where the third had guarded it since it was written: the evidence branch of PhraseQuery and the bare-prose tail of PhraseChat. The daemon callers substitute a fallback on an empty reply, so the cost was confined to the eval, which scores an error as a failure but scored an empty reply as bad phrasing. Both return their fallback and errEmptyResponse now. Stub.PhraseReminder set no Mood where its sibling PhraseNudge documents the rule. Nothing reads it today. (V-620)
Description
No description provided
Languages
Go
97.1%
HTML
0.9%
Shell
0.6%
CSS
0.5%
Makefile
0.3%
Other
0.6%