Back to Plate

3705 3568

docs/slate-issues/open-issues-dossiers/3705-3568.md

53.0.624.9 KB
Original Source

Issue #3705

Issue Summary

Undo and redo can still emit incomplete set_selection operations when the editor has no current selection, which is especially nasty in off-screen or collaborative flows.

Thread Summary

The comments improve the issue a lot because they move it from generic history crash to a concrete partial-selection edge case with a duplicate target.

Linked Artifacts Summary

The thread points back to Issue #3921, and the later comment makes it clear this is the same partial-selection-history family rather than a fresh bug line.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Duplicate candidate.

Duplicate / Invalid / Stale Assessment

Keep the signal, but consolidate it under the stronger history-selection parent instead of counting it twice.

Maintainer Action Suggestion

close-duplicate

Future Reply Direction

Share the duplicate target and keep the collaboration-flavored note, because that is the useful part.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3696

Issue Summary

Tabbing into the editor can show focus and then immediately lose it, leaving the user unable to type until they click again.

Thread Summary

The comments are useful because they isolate rerender timing as the real trigger, not just keyboard tab handling.

Linked Artifacts Summary

The thread ties this directly to Issue #3634, which is useful because both issues collapse into the same focus-versus-rerender ownership bug.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as real focus ownership debt in slate-react.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it grouped with the broader rerender-driven focus failures.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3695

Issue Summary

IME input next to marked text can render twice or desync after a left-arrow move, which is another mark-boundary composition failure.

Thread Summary

The comments are strong. They reason through browser versus Slate ownership and converge on composition plus mark-boundary mismatch rather than random React churn.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as part of the long-running IME and mark-boundary family.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it tied to composition behavior near formatted text.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3689

Issue Summary

Normalization can remove the wrong node in a very specific reproduced tree shape.

Thread Summary

The issue is valuable because it already comes with a precise test-shaped reproduction instead of a hand-wavy GIF.

Linked Artifacts Summary

The issue exists because PR #3602 already had a concrete reproduction, which makes this better than a vague normalization complaint.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as a strong core normalization regression.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it attached to exact reproduced tree shapes, not generic normalization fear.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3682

Issue Summary

Toggling a list on Safari can throw the caret to the top of the document.

Thread Summary

The comments make the regression shape useful: this appears tied to a specific selection change introduced in a narrow version window.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep it open as Safari caret-placement debt around list formatting.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it tied to selection regression history on Safari.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3671

Issue Summary

Editor.addMark could apply to the wrong node when the selection anchor sat exactly on an edge.

Thread Summary

The useful part of the thread is the fix breadcrumb, not more confirmations.

Linked Artifacts Summary

The comments point at PR #4168 as the fix path, which makes this look more like resolved history than current roadmap pressure.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Stale candidate.

Duplicate / Invalid / Stale Assessment

De-weight it unless someone revalidates it on a current build.

Maintainer Action Suggestion

close-stale

Future Reply Direction

Share the likely fix path instead of treating it like fresh debt.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3656

Issue Summary

Editing one text leaf can rerender far too many sibling leaves inside the same block, which turns rich inline documents into a performance mess.

Thread Summary

The comments are useful because maintainers already agreed the expectation is reasonable, even if the implementation surface is tricky.

Linked Artifacts Summary

The thread explicitly points at Issue #3507 and PR #3515, which is useful because it shows this is not one isolated complaint but a known renderer-breadth family.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as a real slate-react performance lane, not vague perf whining.

Maintainer Action Suggestion

share-status

Future Reply Direction

Share status and keep it attached to render breadth, not generic optimization wishes.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3641

Issue Summary

Slate still throws page-killing errors for a bunch of selection and DOM-mapping failures that could often degrade more gracefully.

Thread Summary

The comments make the design pressure clearer: this is about fail-fast policy and runtime boundaries, not just one broken handler.

Linked Artifacts Summary

The thread points at Issue #3575 and similar DOM-point failures, which reinforces that this is a systemic error-policy question, not one bad stack trace.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as design pressure for error policy and runtime resilience.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Share status and frame it as error-policy design, not a one-line bugfix.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3636

Issue Summary

Transforms.unwrapNodes appears to fail on a very specific nested structure that already exists as a test-shaped repro.

Thread Summary

There is barely any thread, but the issue body does the real work because it already provides input and expected output trees.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep it open as a crisp structural transform repro.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it tied to the exact failing test, not generic unwrap behavior.

v2 Relevance

Indirect.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3634

Issue Summary

Calling ReactEditor.focus can appear to work but still drop the next typed input.

Thread Summary

The comments narrow it to focus and blur ordering plus rerender timing, which is exactly the runtime seam we care about.

Linked Artifacts Summary

The later workaround link to Issue #3696 is useful because it proves this is the same rerender-driven focus bug, not a separate focus API.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as real focus timing debt in slate-react.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it grouped with the same-tick rerender focus bugs.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3621

Issue Summary

This mostly turns out to be a stale-closure and editor-recreation problem, not a core Slate state bug.

Thread Summary

The comments do useful triage work: they keep pointing back to recreating the editor and stale closures instead of exposing a broken core invariant.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Invalid for current Slate.

Duplicate / Invalid / Stale Assessment

Treat it as current-contract misuse and API ergonomics confusion, not a live engine bug.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

Point at editor lifetime and closure stability instead of keeping it as generic state corruption.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3618

Issue Summary

People keep wanting a stable DOM ref for Editable, mostly for focus and positioning work.

Thread Summary

The comments are useful because they separate true DOM access needs from the existing focus helpers.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Low urgency, but legitimate API-surface pressure.

Maintainer Action Suggestion

share-status

Future Reply Direction

Share the existing helpers and decide whether exposing the ref is worth the extra surface area.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3614

Issue Summary

This is mostly example-scope pressure around paste-html, not a case for shipping paste-from-websites as core policy.

Thread Summary

The maintainer response is the important part. It explains why paste handling stays domain-specific even if the example could be nicer.

Linked Artifacts Summary

The comments and linked PR #3472 make it clear the real pain is example behavior and line-break handling, not proof that this belongs in core.

Repro Status

Strong enough.

Workaround Status

None.

Validity Assessment

Invalid for current Slate.

Duplicate / Invalid / Stale Assessment

Keep it de-weighted as example and package-scope chatter.

Maintainer Action Suggestion

share-status

Future Reply Direction

Share scope and keep it out of core architecture counts.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3611

Issue Summary

If a void image is selected, IME composition can still slip text into the spacer around it.

Thread Summary

There is no thread, but the issue body is concrete enough to keep it as real void-plus-IME debt.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as void focus and IME ownership debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it tied to composition around selected void elements.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3605

Issue Summary

Select-all then delete can leave empty blocks and trailing void content behind instead of actually clearing the editor.

Thread Summary

The thread is strong because later comments widen the same failure to void nodes and multiple examples, not just plaintext placeholder weirdness.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as high-signal structural delete debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it in the select-all delete family.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3601

Issue Summary

A background requestAnimationFrame or setInterval loop can make Slate accept focus only for a split second.

Thread Summary

There is no thread, but the repro is sharp and it fits the same rerender-driven focus loss family as later issues.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as focus ownership debt around background rerenders.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it grouped with focus loss under unrelated rerender pressure.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3599

Issue Summary

This is real ecosystem demand for Angular, but not a case for first-party Angular support inside Slate core.

Thread Summary

The maintainer answer is already the classification: built-in Angular support is unlikely, but ecosystem adapters are real and welcome.

Repro Status

Strong enough.

Workaround Status

None.

Validity Assessment

Invalid for current Slate.

Duplicate / Invalid / Stale Assessment

Treat it as ecosystem demand, not a core roadmap bug or feature.

Maintainer Action Suggestion

share-status

Future Reply Direction

Share status and point at the ecosystem adapter path.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3587

Issue Summary

Chinese input can still desync data and view on the stock examples.

Thread Summary

The comments are strong because they reason through the event order and explain why IME plus React reconciliation is the real fault line.

Linked Artifacts Summary

The comments link this to Issue #3824 and walk through event-flow differences, which makes it much more useful than a generic Chinese-input complaint.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as real IME event-normalization debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it tied to event normalization across IME flows.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3586

Issue Summary

Applying bold or italic with keyboard shortcuts can crash with Cannot find DOMPoint in the official examples.

Thread Summary

The thread is small, but the workaround hint is useful because it narrows the fault line to custom handling in onDOMBeforeInput.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as high-signal DOM-point debt around formatting shortcuts.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it attached to shortcut handling through onDOMBeforeInput.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3585

Issue Summary

Selection can occasionally look stale in a consumer onClick handler, but the repro is weak and intermittent.

Thread Summary

The comments do not improve the issue much beyond confirming that somebody else has seen something similar.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Unclear.

Duplicate / Invalid / Stale Assessment

Needs a tighter repro before it should influence architecture work.

Maintainer Action Suggestion

ask-for-repro

Future Reply Direction

Ask for a sharper reproduction that isolates selection timing on click.

v2 Relevance

Indirect.

Red-Test Extraction Note

Blocked on a tighter public repro.

Issue #3584

Issue Summary

In read-only mode, consumers still want selection changes to flow through onChange without allowing content edits.

Thread Summary

The comments keep the issue grounded in real use cases like comments and review flows, not generic API bikeshedding.

Linked Artifacts Summary

The thread points at PR #4375, which matters because this is a real API seam and not just a random idea.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as legitimate runtime API pressure for read-only interaction.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Share status and frame it as read-only interaction design, not a trivial callback tweak.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3582

Issue Summary

Slate breaks event handling inside iframes because it assumes the wrong document.

Thread Summary

The single comment does the key work: it points straight at document ownership as the real fault line.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as strong cross-document runtime debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it grouped with iframe and external-document ownership bugs.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3581

Issue Summary

This looks like docs confusion around Editor.isBlock, not live runtime debt.

Thread Summary

The thread already points readers at the next walkthrough page, which makes this more like stale docs friction than an open platform issue.

Repro Status

Strong enough.

Workaround Status

Strong.

Validity Assessment

Stale candidate.

Duplicate / Invalid / Stale Assessment

Close or de-weight it as resolved docs confusion.

Maintainer Action Suggestion

close-stale

Future Reply Direction

Share the docs breadcrumb and move on.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3573

Issue Summary

This is not a current bug ticket, but it is strong evidence that Android support kept demanding specialized work and economic support.

Thread Summary

The thread is valuable because it shows sustained user demand and maintainer acceptance that Android is a major separate investment.

Repro Status

Strong enough.

Workaround Status

None.

Validity Assessment

Invalid for current Slate.

Duplicate / Invalid / Stale Assessment

Do not count it as current-contract bug debt, but keep it as strong platform-scope signal.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Share status honestly and treat it as Android platform demand, not a hidden patch request.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3568

Issue Summary

Calling addMark during onDOMBeforeInput with a non-collapsed selection can crash Slate.

Thread Summary

The thread is useful because it leaves the issue open instead of pretending the usage is obviously invalid, and it documents a workaround path.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as real mark-mutation timing debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge it and keep it tied to mark changes during DOM-before-input handling.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.