fix: skip editor side-effects during IME composition#15
Merged
PttCodingMan merged 4 commits intomainfrom Apr 27, 2026
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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