#99 build panics on multibyte release summary
What
The release feed truncates a summary by character count, then explicitly truncates the same string by byte count:
src/feed.rs:92-94:
let mut s: String = first_line.chars().take(200).collect();
if s.len() > 200 {
s.truncate(200);
}
For multibyte characters s.len() can exceed 200 even when there are only 200 chars, and truncate(200) may land inside a UTF-8 code point.
Reproduced
Release body first line = "€" repeated 200 times (3 bytes each). hu13 build exits 101:
thread 'main' panicked at src/feed.rs:94:23:
assertion failed: self.is_char_boundary(new_len)
Impact
Any release note with enough multibyte text crashes the whole build (denial of build / release).
Fix
Remove the redundant byte truncate (the value is already at most 200 chars), or truncate only at a char boundary. Add a regression test with 200 € / emoji.
Uunknown ·
Fixed in PR #60 (
8e812dd, merged as67f5fb2) with regression coverage intests/review4_hardening.rsand the Pages inbox tests. f0rge CI run2026-10-27T18-19-28.378320411Zpassed.