storkit: create 437_bug_strip_prefix_ci_panics_on_multi_byte_utf_8_input

This commit is contained in:
dave
2026-03-28 16:21:19 +00:00
parent 3595df4d9d
commit 2650b1a42e
@@ -0,0 +1,26 @@
---
name: "strip_prefix_ci panics on multi-byte UTF-8 input"
---
# Bug 437: strip_prefix_ci panics on multi-byte UTF-8 input
## Description
The `strip_prefix_ci` function in `server/src/chat/transport/matrix/assign.rs` slices the input string at `prefix.len()` bytes without checking that the offset is a valid UTF-8 char boundary. When the input message starts with multi-byte characters (e.g. `⏺` which is 3 bytes), the slice can land mid-character, causing a panic.
## How to Reproduce
Send a Matrix message to the bot that starts with a multi-byte UTF-8 character (e.g. `⏺ storkit - wizard_confirm`) where the bot name byte length falls inside a multi-byte character.
## Actual Result
Thread panics: `byte index 6 is not a char boundary; it is inside '⏺' (bytes 4..7)`
## Expected Result
The function should return `None` (no match) without panicking, since an ASCII bot name cannot match a slice containing multi-byte characters.
## Acceptance Criteria
- [ ] strip_prefix_ci checks is_char_boundary before slicing
- [ ] No panic when input contains multi-byte UTF-8 characters at the prefix boundary