diff --git a/src/config.rs b/src/config.rs index 6d341e27..e21f9fe6 100644 --- a/src/config.rs +++ b/src/config.rs @@ -145,7 +145,7 @@ impl Default for ReactionTiming { // --- loading --- fn expand_env_vars(raw: &str) -> String { - let re = Regex::new(r"\$\{(\w+)\}").unwrap(); + let re = Regex::new(r"\$\{(\w+)\}").expect("env var regex literal is valid"); re.replace_all(raw, |caps: ®ex::Captures| { std::env::var(&caps[1]).unwrap_or_default() }) diff --git a/src/discord.rs b/src/discord.rs index 77539173..d2d41fa0 100644 --- a/src/discord.rs +++ b/src/discord.rs @@ -115,7 +115,8 @@ impl EventHandler for Handler { }); let prompt_with_sender = format!( "\n{}\n\n\n{}", - serde_json::to_string(&sender_ctx).unwrap(), + serde_json::to_string(&sender_ctx) + .expect("sender_ctx is built from a serde_json::json! literal and cannot fail to serialize"), prompt ); @@ -500,7 +501,7 @@ fn compose_display(tool_lines: &[String], text: &str) -> String { } static MENTION_RE: LazyLock = LazyLock::new(|| { - regex::Regex::new(r"<@[!&]?\d+>").unwrap() + regex::Regex::new(r"<@[!&]?\d+>").expect("mention regex literal is valid") }); fn strip_mention(content: &str) -> String { @@ -509,7 +510,8 @@ fn strip_mention(content: &str) -> String { fn shorten_thread_name(prompt: &str) -> String { // Shorten GitHub URLs: https://github.com/owner/repo/issues/123 → owner/repo#123 - let re = regex::Regex::new(r"https?://github\.com/([^/]+/[^/]+)/(issues|pull)/(\d+)").unwrap(); + let re = regex::Regex::new(r"https?://github\.com/([^/]+/[^/]+)/(issues|pull)/(\d+)") + .expect("github url regex literal is valid"); let shortened = re.replace_all(prompt, "$1#$3"); let name: String = shortened.chars().take(40).collect(); if name.len() < shortened.len() {