From cb6ebf1d697dc2df5eadb20e5cc8de62f7e451ed Mon Sep 17 00:00:00 2001 From: dave Date: Tue, 31 Mar 2026 09:58:58 +0000 Subject: [PATCH] storkit: create 447_bug_element_tab_completion_display_name_breaks_bot_command_matching --- .../446_story_oauth_login_button_in_web_ui.md | 20 -------------- ...isplay_name_breaks_bot_command_matching.md | 27 +++++++++++++++++++ 2 files changed, 27 insertions(+), 20 deletions(-) delete mode 100644 .storkit/work/1_backlog/446_story_oauth_login_button_in_web_ui.md create mode 100644 .storkit/work/1_backlog/447_bug_element_tab_completion_display_name_breaks_bot_command_matching.md diff --git a/.storkit/work/1_backlog/446_story_oauth_login_button_in_web_ui.md b/.storkit/work/1_backlog/446_story_oauth_login_button_in_web_ui.md deleted file mode 100644 index 37dd327d..00000000 --- a/.storkit/work/1_backlog/446_story_oauth_login_button_in_web_ui.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: "OAuth login button in web UI" ---- - -# Story 446: OAuth login button in web UI - -## User Story - -As a user of the storkit web UI, I want a login button that triggers the Anthropic OAuth flow, so that I can authenticate without manually navigating to /oauth/authorize. - -## Acceptance Criteria - -- [ ] Web UI shows a login/authenticate button when no OAuth token is active -- [ ] Clicking the button navigates to /oauth/authorize which starts the Anthropic OAuth flow -- [ ] After successful OAuth callback, the UI updates to show the authenticated state -- [ ] If already authenticated, the button is hidden or shows the current auth status - -## Out of Scope - -- TBD diff --git a/.storkit/work/1_backlog/447_bug_element_tab_completion_display_name_breaks_bot_command_matching.md b/.storkit/work/1_backlog/447_bug_element_tab_completion_display_name_breaks_bot_command_matching.md new file mode 100644 index 00000000..d5ebc812 --- /dev/null +++ b/.storkit/work/1_backlog/447_bug_element_tab_completion_display_name_breaks_bot_command_matching.md @@ -0,0 +1,27 @@ +--- +name: "Element tab-completion display name breaks bot command matching" +--- + +# Bug 447: Element tab-completion display name breaks bot command matching + +## Description + +When a user tab-completes a bot mention in Element, the Matrix client inserts the display name (e.g. `timmy ⚡️`) rather than the user ID (`@timmy`). If the display name contains emoji or special characters, the `strip_bot_mention` function in chat::util may fail to match it against the bot name, causing commands like `ambient on` to not be recognized. + +## How to Reproduce + +1. Set bot display_name to include emoji (e.g. `timmy ⚡️`) in bot.toml\n2. In Element, tab-complete the bot name to get `timmy ⚡️`\n3. Send `timmy ⚡️ ambient on`\n4. The bot does not respond — command not matched + +## Actual Result + +Bot ignores the command. The display name with emoji doesn't match during strip_bot_mention, so the command text is not correctly extracted. + +## Expected Result + +Bot should recognize commands regardless of whether the mention was tab-completed with the display name (including emoji) or typed manually as @localpart. + +## Acceptance Criteria + +- [ ] strip_bot_mention handles display names containing emoji and special characters +- [ ] strip_bot_mention handles Element's tab-completion format (display name followed by colon or comma) +- [ ] Commands work whether the user types @timmy, timmy, or tab-completes timmy ⚡️