chore(backlog): resolve corrupted conflict in TASK-029 task file
9732e1f8cbf0423781d46bd4846c48e7ad589dc6
Kevin Kortum <kevinkortum@me.com> · 2026-06-30 07:45
parent a3c1891c
chore(backlog): resolve corrupted conflict in TASK-029 task file The task-029 markdown had a materialized jj conflict (mangled frontmatter: empty title, id 'TASK-TASK-'), which rendered wrong on the forge. Restored the clean resolved state: TASK-029, title intact, status Done, ACs checked. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KjNrdAWUdkaxFyGdrPHaBj
1 files changed
- → Mouse-wheel-scroll-sequences-leak-into-buffer-as-text.md +0 −28
@@ -1,4 +1,3 @@
-+++++++ ssysuoqq 836fac3b "fix(app): drop leaked mouse-wheel escape residue from text input (TASK-029)" (squash destination)
---
id: TASK-029
title: Mouse-wheel scroll sequences leak into buffer as text
@@ -30,30 +29,3 @@
<!-- SECTION:NOTES:BEGIN -->
Added looksLikeMouseLeak (mouseleak.go): regexp ^(<?\d+;\d+;\d+[Mm])+$ matches a KeyRunes that is entirely SGR mouse residue; guarded at top of app.handleKey to drop it. Defense against Bubble Tea v1.3.10 input parser splitting a burst of wheel-scroll SGR sequences and emitting the tail as text. Normal input (lone '<', text with '<'/';', comparisons) unaffected. TDD, all tests pass.
<!-- SECTION:NOTES:END -->
-%%%%%%% diff from: nmqwytxt 4ec44590 "docs: note font embedding in the export section (TASK-021)" (parents of squashed revision)
-\\\\\\\ to: rvqpptop 66279105 (squashed revision)
-+---
-+id: TASK-029
-+title: Mouse-wheel scroll sequences leak into buffer as text
-+status: "\U0001F7E2 In progress"
-+assignee: []
-+created_date: '2026-06-30 04:05'
-+updated_date: '2026-06-30 04:06'
-+labels:
-+ - bug
-+dependencies: []
-+priority: high
-+ordinal: 29000
-+---
-+
-+## Description
-+
-+<!-- SECTION:DESCRIPTION:BEGIN -->
-+Fast wheel-scrolling (esp. near the top of a doc, Ghostty) inserts literal SGR mouse escape residue into the buffer, e.g. '<64;68;26M<64;68;26M...'. Cause: Bubble Tea's input parser splits a burst of SGR mouse sequences across read boundaries and emits the leftover as a KeyRunes text event, which the editor inserts. Mouse is enabled (WithMouseCellMotion) and wheel events ARE handled; this is parser leakage, not missing handling. bubbletea v1.3.10 is already latest. Fix: drop KeyRunes events that are entirely a leaked mouse sequence at the input boundary.
-+<!-- SECTION:DESCRIPTION:END -->
-+
-+## Acceptance Criteria
-+<!-- AC:BEGIN -->
-+- [ ] #1 A KeyRunes event whose content is entirely SGR mouse residue is ignored, never inserted
-+- [ ] #2 Normal typing (including a lone '<' or text containing '<' / ';') is unaffected
-+<!-- AC:END -->