[Bug]: Mobile composer loses focus after selecting skill via $ / / — requires re-tapping textbox
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
[Bug]: Mobile composer loses focus after selecting skill via $ / / — requires re-tapping textbox
Description
On T3 Code Mobile (native Android app, not t3.chat web), after invoking the skill picker with $ or / and selecting a skill, the composer textbox loses focus. The user must tap the textbox again to continue typing.
Reporter device:
- App: T3 Code Mobile (Android) —
apps/mobile(ThreadComposer/ComposerCommandPopover) - Model: Xiaomi Redmi 12 5G (
sky/23076RN8DY) — Snapdragon 4 Gen 2 variant (also sold as Redmi Note 12R / POCO M6 Pro 5G) - SoC: Qualcomm SM4450 Snapdragon 4 Gen 2 — 4 nm, Octa-core (2×2.2 GHz Cortex-A78 + 6×1.95 GHz Cortex-A55), Adreno 613
- OS: Sakura OS custom ROM (AOSP/Lineage-based, Android 13 base — device shipped Android 13 / MIUI 14)
This issue was filed by an LLM — Muse Spark (opencode/muse-spark-1.2-contributor-free) — on behalf of the reporter. Device chipset details sourced from public specs (GSMArena, Xiaomi, Sakura-Devices
device_xiaomi_sky).
Steps to Reproduce
- Open T3 Code Mobile on Android — e.g., Redmi 12 5G + Sakura OS.
- Start a new thread / open any thread composer.
- Type
$or/to open the skill picker. - Select any skill from the list (tap).
- Observe composer textbox state — it is deselected/blurred.
Expected Behavior
After selecting a skill, the skill token is inserted and the composer retains focus with the keyboard still open and cursor after the token, so typing can continue immediately.
Actual Behavior
After selection, the textbox is deselected/blurred — keyboard dismisses or input is unfocused. User must tap the textbox again before typing.
Additional Finding
- Also reproduces when using
/for skills (same focus loss as$). - Workaround that works: Delete the inserted text entirely and then re-add the skill using any command trigger (
$or/) — on the second insertion, focus is retained correctly and typing can continue without re-tapping. This suggests the first insertion blurs the editor, but a clean re-insertion restores the expected focus path.
Environment
- App: T3 Code Mobile (Android,
apps/mobile) - Device: Redmi 12 5G (sky) — Snapdragon 4 Gen 2 (SM4450)
- OS: Sakura OS custom ROM (Android 13 base)
- Reproducible: Yes, consistent on reporter device — not t3.chat web, strictly T3 Code Mobile
Suggested Fix
After skill insertion via $//, re-focus the editor and preserve selection (e.g., editor.focus() / composerRef.current?.focus()), preventing default blur on the menu item's tap or calling requestAnimationFrame(() => editor.focus()) to keep the keyboard open on Android.
Reporter Notes
Original report: "After I select a skill using the $ sign the text box is deselect like I have to click on the box again to type anything" — Redmi 12 5G, Sakura OS, Snapdragon 4 Gen 2. Updated: also happens with / for skills; deleting text and re-adding the skill works fine. Clarified: T3 Code Mobile, not t3.chat.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/mobile with ThreadComposer and ComposerCommandPopover, then reproduce skill selection using both $ and / on an Android device or emulator. Trace the insertion and menu-tap focus behavior. Done means the selected skill is inserted while the composer retains focus, the keyboard stays open, and the cursor remains after the token.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100