Skip to content

fix: skip editor side-effects during IME composition#15

Merged
PttCodingMan merged 4 commits intomainfrom
claude/fix-editor-text-cursor-WIH7u
Apr 27, 2026
Merged

fix: skip editor side-effects during IME composition#15
PttCodingMan merged 4 commits intomainfrom
claude/fix-editor-text-cursor-WIH7u

Conversation

@PttCodingMan
Copy link
Copy Markdown
Owner

Typing Chinese with the Windows IME caused characters to disappear and the cursor to jump because our custom plugins ran their update hooks during composition: the wikilink view update calls coordsAtPos and mutates an external menu element, the slash menu's shouldShow walks the doc and rebuilds the menu DOM, and the markdown listener fires setContent on the parent — each of which can interrupt the IME and make ProseMirror discard the in-flight composition.

Skip all four call sites when view.composing is true. ProseMirror dispatches a transaction at compositionend, so menus and parent state catch up with the committed text on the next update.

https://claude.ai/code/session_012rsJRUue9w7sBD3J5gmKWK

claude added 4 commits April 27, 2026 00:59
Typing Chinese with the Windows IME caused characters to disappear and
the cursor to jump because our custom plugins ran their update hooks
during composition: the wikilink view update calls coordsAtPos and
mutates an external menu element, the slash menu's shouldShow walks the
doc and rebuilds the menu DOM, and the markdown listener fires
setContent on the parent — each of which can interrupt the IME and make
ProseMirror discard the in-flight composition.

Skip all four call sites when view.composing is true. ProseMirror
dispatches a transaction at compositionend, so menus and parent state
catch up with the committed text on the next update.

https://claude.ai/code/session_012rsJRUue9w7sBD3J5gmKWK
Trigger CI on beta branch pushes and let build-and-push run for refs/heads/beta. The existing docker/metadata-action's type=ref,event=branch already maps the branch name into the image tag, so pushes to beta will publish ghcr.io/.../{backend,frontend}:beta automatically.

https://claude.ai/code/session_012rsJRUue9w7sBD3J5gmKWK
Replace the generic type=ref,event=branch tag (which produced :main / :beta from the branch name) with explicit raw rules so main publishes :latest and beta publishes :beta. Semver tag pushes still get :{version}, :{major.minor}, and the auto :latest from the default flavor; every build keeps its :{sha} tag for traceability.

https://claude.ai/code/session_012rsJRUue9w7sBD3J5gmKWK
Set flavor.latest=false so semver tag pushes no longer auto-add :latest. The explicit type=raw,value=latest,enable={{is_default_branch}} rule keeps :latest pinned to main, so a release tag won't shadow whatever main is currently shipping.

https://claude.ai/code/session_012rsJRUue9w7sBD3J5gmKWK
@PttCodingMan PttCodingMan merged commit 104011e into main Apr 27, 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.

2 participants