Back to Plate

3878 3798

docs/slate-issues/open-issues-dossiers/3878-3798.md

53.0.624.6 KB
Original Source

Issue #3878

Issue Summary

Programmatic value replacement can leave useSlate().selection pointing at a dead path, which is still one of the clearest controlled-value runtime failures in old Slate.

Thread Summary

The comments are useful because they confirm the issue survived later versions, produced real crashes in production, and pushed users into ugly remount workarounds instead of a real fix.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as controlled-value and selection-reconciliation debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to selection remapping during external value replacement.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3874

Issue Summary

This is direct pressure for explicit history transaction grouping instead of inferring undo boundaries from a loose stream of operations.

Thread Summary

The thread is thoughtful, not noisy. It compares the ask to existing batching patterns and makes it clear this is a history API seam, not random sugar.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it on the roadmap as real transaction-boundary pressure.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply with scope/status instead of pretending this is a tiny patch.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3873

Issue Summary

Slate still lets normal keydown logic punch through during IME composition, which is exactly how composition bugs keep becoming caret bugs.

Thread Summary

The thread is short but sharp. It ties the problem to the broader composition-gating family instead of leaving it as one weird keyboard anecdote.

Linked Artifacts Summary

The thread points at Issue #4127, which looks like the same composition-gating family rather than unrelated noise.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Likely part of the same composition-gating family as later issues, but still worth keeping as its own repro.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to composition gating instead of generic key handling.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3872

Issue Summary

Triple-click selection is still wrong when inline elements sit inside the block, which means Slate is not faithfully owning common paragraph-selection gestures.

Thread Summary

The comments add a useful extension: the issue is not just missing text, it is the whole selection envelope around inline content.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as part of the triple-click and inline-selection family.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to gesture-level block selection.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3871

Issue Summary

Triple-click selection can bleed into the block below, which is the other half of the paragraph-gesture bug family.

Thread Summary

The thread is useful because it captures the common workaround, and that workaround is basically “turn off the browser gesture,” which is not a serious fix.

Linked Artifacts Summary

The comments point toward Issue #4908, which looks like a more specific descendant of the same selection-gesture family.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Related to later triple-click selection bugs, but still a distinct repro shape.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to triple-click block selection boundaries.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3870

Issue Summary

The crash report is real enough, but the thread points back to an invalid void-node contract rather than a core Slate failure.

Thread Summary

The comments are what matter here. They make it clear the repro depends on missing required children, so this should not steer architecture work.

Repro Status

Strong enough.

Workaround Status

Strong.

Validity Assessment

Invalid.

Duplicate / Invalid / Stale Assessment

This is a current-contract problem, not an open engine mystery.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

Reply with the void-element contract and close it if nobody produces a valid repro.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3868

Issue Summary

Selection deletion still falls apart when the range crosses void nodes, which is one of the clearest structural-delete failures in old Slate.

Thread Summary

The comments narrow it to a real public seam: delete/remove over an expanded selection containing an image should delete the selected thing, not some adjacent text.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as real structural deletion debt around void content.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to deletion semantics over expanded selections.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3858

Issue Summary

Deeply emptying the editor still looks like controlled-value reset debt: Slate keeps references to descendants that no longer exist.

Thread Summary

The thread broadens the issue into multiple reset variants, which makes it slightly messier, but still clearly about stale paths after external value replacement.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep it in the same external-value and selection-reset family as other stale-path crashes.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to stale path cleanup on external resets.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3857

Issue Summary

Cutting selected blocks copies them but can leave them in place, which is a clean user-facing structural-edit bug.

Thread Summary

The comments do real work here: they tie the bug to the same deleteFragment and expanded-selection family instead of leaving it as a vague clipboard complaint.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as part of the structural delete and cut family.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to cut/delete semantics on expanded block selections.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3841

Issue Summary

Firefox still diverges on one of the most common extension seams: overriding insertBreak and then moving the caret.

Thread Summary

The thread is tiny, but the repro is crisp enough that the issue should stay in the browser-specific caret-placement pile.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as browser-specific insert-break caret debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to Firefox caret movement after custom line breaks.

v2 Relevance

Indirect.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3836

Issue Summary

This is one more Cannot resolve a Slate point from DOM point thread, but the issue is too generic to trust without a stronger repro.

Thread Summary

The comments are mostly confirmations and stack traces. They increase noise more than they improve classification.

Repro Status

Weak.

Workaround Status

Poor.

Validity Assessment

Unclear.

Duplicate / Invalid / Stale Assessment

Needs a tighter repro or a sharper duplicate target before it should influence architecture work.

Maintainer Action Suggestion

ask-for-repro

Future Reply Direction

Ask for a reproduction that narrows the DOM/Slate mismatch instead of treating this as stand-alone signal.

v2 Relevance

Indirect.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3834

Issue Summary

This is a slightly better-written DOM-point crash than the other generic threads, but it still does not isolate the actual owning seam.

Thread Summary

The thread never gets past “same here,” so it should stay de-weighted until someone produces a real repro.

Repro Status

Weak.

Workaround Status

Poor.

Validity Assessment

Unclear.

Duplicate / Invalid / Stale Assessment

Still too generic to become meaningful architecture input.

Maintainer Action Suggestion

ask-for-repro

Future Reply Direction

Ask for a tighter reproduction or consolidate it under a cleaner DOM-point issue.

v2 Relevance

Indirect.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3828

Issue Summary

This is simple docs debt: the custom-formatting walkthrough omitted a required import and left readers to fail in avoidable ways.

Thread Summary

The thread is small, but it proves the docs path was rough enough to block a real user.

Repro Status

Strong enough.

Workaround Status

Strong.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in docs debt, not architecture pressure.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with scope/status or fix the docs silently; it does not need a grand roadmap answer.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3826

Issue Summary

This thread is mostly user surprise about how active marks behave after deletion, not evidence of a broken core mark model.

Thread Summary

The comments are decisive: they explain that the observed behavior is expected unless the consumer clears marks explicitly.

Repro Status

Strong enough.

Workaround Status

Strong.

Validity Assessment

Invalid.

Duplicate / Invalid / Stale Assessment

Close it as expectation mismatch unless someone produces a stronger contract argument.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

Point at the current mark behavior and close it if the user still expects a different default.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3821

Issue Summary

useFocused lies when the editor is rendered through portals, which is exactly the sort of focus-state ownership bug that keeps surfacing in Slate React.

Thread Summary

The issue is already precise enough. It does not need a long thread to prove the runtime assumption is wrong.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as focus-state ownership debt around external DOM trees.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to focus tracking across portals.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3818

Issue Summary

PathRef affinity is still too blunt for real operation sequences, which is a real API pressure point for anyone doing nontrivial structural edits.

Thread Summary

The thread is light, but the ask is precise and easy to map to deeper path-tracking design debt.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as API design pressure, not patch work.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply with scope/status and keep it in the path-ref design pile.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3813

Issue Summary

Programmatic caret placement still goes wrong around mention-like inline flows, which makes one of Slate’s core imperative seams feel brittle.

Thread Summary

The workaround is useful because it confirms this is timing- and selection-reconciliation debt, not a misunderstanding of the API.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as programmatic selection-placement debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to imperative caret placement around inline content.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3812

Issue Summary

This is mostly an example-scope mismatch: users expect the paste-html example to also own image file ingestion.

Thread Summary

The comments clarify that the real gap is example scope, not proof that Slate’s HTML handling is fundamentally broken.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Likely invalid.

Duplicate / Invalid / Stale Assessment

Share scope/status instead of treating it as core serialization architecture.

Maintainer Action Suggestion

share-status

Future Reply Direction

Explain the example’s scope and point users at the right example or custom file-handling surface.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3811

Issue Summary

This was filed while Android was still effectively unsupported, but it is still valuable because it captures real demand and a concrete failure mode.

Thread Summary

The comments matter because they explicitly say Android support was not there yet, which keeps this out of current-contract bug counts while preserving it as v2 signal.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Invalid for current Slate, but valuable for v2.

Duplicate / Invalid / Stale Assessment

Do not count it as a current-contract bug, but do keep it as Android demand signal.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Share status honestly: unsupported in current Slate, but still relevant to future platform scope.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3808

Issue Summary

This is half API ergonomics request and half real transform bug, both living on the same setNodes seam.

Thread Summary

The later recording/comment is what keeps it meaningful. Without that split repro, the issue would look like ordinary API wishfulness.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it on the transform API and structural-edit design pile.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply with scope/status instead of pretending the two asks are unrelated.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3805

Issue Summary

This is niche, but it still looks like a real offset-zero node-resolution seam rather than user error.

Thread Summary

The workaround helps a lot because it narrows the failing condition to cursor-at-start behavior and wrong node lookup.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep it open, but do not overweight it architecturally.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it scoped to node resolution at offset zero.

v2 Relevance

Indirect.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3802

Issue Summary

This is a docs request around a real core quirk: node identity and object references behave in ways that surprise people over and over again.

Thread Summary

The comments make it clear this is not hypothetical. People really do get cut by this identity rule repeatedly.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in docs and design signal, not bug counts.

Maintainer Action Suggestion

share-status

Future Reply Direction

Document the identity rule plainly instead of treating it like trivia.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3801

Issue Summary

Cutting a selection with nested list content leaves the survivor with the wrong block type, which is textbook structural-delete debt.

Thread Summary

The follow-up comment is valuable because it ties the issue to the same delete/backspace family instead of a random list oddity.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it open as structural cut/delete normalization debt.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Acknowledge the issue and keep it tied to selection deletion and post-cut normalization.

v2 Relevance

Direct.

Red-Test Extraction Note

See the paired test-candidate map entry.

Issue #3800

Issue Summary

This is old IE11 compatibility churn, not meaningful v2 architecture pressure.

Thread Summary

The thread never escapes old-browser support territory, so it should stay de-weighted.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Stale candidate.

Duplicate / Invalid / Stale Assessment

Close or de-weight it as legacy-browser debt.

Maintainer Action Suggestion

close-stale

Future Reply Direction

Share status plainly if anyone still asks, but do not let it steer modern design.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #3798

Issue Summary

This looks much more like browser and contenteditable interaction pain than a strong Slate-owned selection bug.

Thread Summary

The workaround comment supports that read: users can dodge it, but Slate does not obviously own the underlying behavior.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Likely invalid.

Duplicate / Invalid / Stale Assessment

Do not let this count as core architecture pressure without a stronger argument.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

Share status or close if nobody can show a clearly Slate-owned failure.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.