Skip to content

fix(richtext): preserve selections across focus changes and editing intent - #303

Merged
howlcipher merged 7 commits into
mainfrom
fix/firefox-richtext-selection
Nov 6, 2026
Merged

howlcipher merged 7 commits into
mainfrom
fix/firefox-richtext-selection

Conversation

@howlcipher

Copy link
Copy Markdown
Owner

Rich-text formatting and link commands now preserve the selected editor range when focus moves to a toolbar or dialog. Explicit caret movement resumes selection tracking after an outside pointer interaction that did not blur; replacing editor content discards obsolete saved ranges. Separate editors retain independent state.

Regression coverage includes toolbar/dialog restoration, pointer and keyboard caret movement, an empty document selection, content replacement, and keyboard focus across two editors. Independent code review approved the compiler source/test diff with SHA-256 e500498b0c89555eb738ef092837fbc406cc0d4c7991f58b7a1dbe0b8f4a538a.

The accompanying M5 records preserve the owner-accepted-exceptions disposition, distinguish the historical Firefox candidate from production, and assess AI-DX1 → M6 → AI-DX2 → AI-DX3. Those interfaces and efficiency gains remain proposed. Private consumer PR #3 remains unmerged and no private hosted workflow is triggered by this PR.

Validation details and the retained failed attempts are in docs/journals/2026-11-05_m5_closeout.md. Require successful build, acceptance, race and latest-go checks before merge.

Local validation passed: focused rich-text regressions; prescribed WasmGC gate (Go 1.26: 4,548 tests, 31 design skips; Go 1.27.2: 4,546 tests, 33 design skips; consumer integration 8/8, no skips); SEO and whitespace checks. Scope resource events remained zero. Final signed implementation commit: b5b99f9a11ccbc86efe2a25169ea5d11821bd4e5.

@howlcipher
howlcipher merged commit db1cbc8 into main Nov 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant