daemon: fix UTF-8 panics on multi-byte character truncation
&str[..n] panics when n falls inside a multi-byte UTF-8 sequence. This crashed the daemon when processing IRC messages containing Hebrew/Yiddish characters (ehashman's messages hit byte 79-81). Replace all byte-index truncation with chars().take(n).collect() in tmux send_prompt preview, notification logging, and git context truncation. Co-Authored-By: ProofOfConcept <poc@bcachefs.org>
This commit is contained in:
parent
308fbe4c28
commit
bea1bd5680
3 changed files with 4 additions and 3 deletions
|
|
@ -50,7 +50,7 @@ pub fn git_context() -> String {
|
|||
}
|
||||
let ctx = parts.join(" | ");
|
||||
if ctx.len() > 300 {
|
||||
ctx[..300].to_string()
|
||||
ctx.chars().take(300).collect()
|
||||
} else {
|
||||
ctx
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ impl NotifyState {
|
|||
|
||||
info!(
|
||||
"notification: type={ntype} urgency={urgency} threshold={threshold} msg={}",
|
||||
&message[..message.len().min(80)]
|
||||
message.chars().take(80).collect::<String>()
|
||||
);
|
||||
|
||||
self.pending.push(Notification {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ pub fn find_claude_pane() -> Option<String> {
|
|||
///
|
||||
/// Sequence: Escape q C-c C-u (clear input), wait, type message, Enter.
|
||||
pub fn send_prompt(pane: &str, msg: &str) -> bool {
|
||||
info!("SEND [{pane}]: {}...", &msg[..msg.len().min(100)]);
|
||||
let preview: String = msg.chars().take(100).collect();
|
||||
info!("SEND [{pane}]: {preview}...");
|
||||
|
||||
let send = |keys: &[&str]| {
|
||||
Command::new("tmux")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue