fn truncate_preview(line: &str) -> StringExpand description
Truncate a preview line to PREVIEW_MAX_CHARS, appending an ellipsis
when it was actually cut. Shared by the host-tier and cross-channel
preview paths so they can’t drift out of sync again (codex P2 on
PR #2715 — the cross-channel path originally didn’t call this at all).