storkit: done 447_bug_element_tab_completion_display_name_breaks_bot_command_matching

This commit is contained in:
dave
2026-03-31 10:18:24 +00:00
parent 10be86587a
commit 4d1e388a48
2 changed files with 27 additions and 20 deletions
@@ -1,20 +0,0 @@
---
name: "Send OAuth login link via chat when credentials are missing"
---
# Story 448: Send OAuth login link via chat when credentials are missing
## User Story
As a storkit user on Matrix or WhatsApp, I want the bot to send me a clickable OAuth authorize link when credentials are missing or expired, so that I can authenticate without terminal access or manually constructing the URL.
## Acceptance Criteria
- [ ] When storkit detects missing or expired credentials during a chat interaction, it sends the user a clickable /oauth/authorize link
- [ ] Works on Matrix and WhatsApp transports
- [ ] After successful OAuth callback, the user can immediately resume chatting without restarting storkit
- [ ] If credentials are already valid, no login link is sent
## Out of Scope
- TBD
@@ -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 ⚡️