Back to Plate

Slate v2 Open Issue Dossiers: 5558-5480

docs/slate-issues/open-issues-dossiers/5558-5480.md

53.0.624.7 KB
Original Source

Slate v2 Open Issue Dossiers: 5558-5480

Scope

These dossiers cover issues #5558 through #5480 from the pilot set. Use the top-level index for the range map and the ledger for the canonical structured cache.


Issue #5558

Issue Summary

Small but legitimate TypeScript/API ergonomics request. Operation.isNodeOperation is too coarse if you want operation-specific narrowing in custom-op-heavy code.

Thread Summary

No follow-up yet. The ask is straightforward: either expose finer-grained type guards or accept that consumers will keep reimplementing them.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep this small. It is API polish, not evidence that the whole operation model is broken.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

State clearly whether Slate wants first-class operation-specific guards or whether this stays consumer-land helper code.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5557

Issue Summary

Real transform-semantics issue. moveNodes becomes hard to reason about when multiple matched siblings are moved to a later sibling path.

Thread Summary

The follow-up comment makes the real pain explicit: the current one-by-one move behavior is technically explainable, but semantically awful for multiselect drag/drop.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Do not collapse this into generic drag-and-drop noise. It is really about path semantics for grouped moves.

Maintainer Action Suggestion

keep-open

Future Reply Direction

The useful maintainer reply is to decide whether to is defined against the pre-operation tree or the sequential intermediate states, then lock that down with tests.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #5551

Issue Summary

Probably real browser-selection weirdness, but it lives inside a custom table plugin with rowspan, which is not a normal Slate-owned surface.

Thread Summary

No maintainer follow-up yet. The repro is solid, but the ownership boundary is not.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Unclear.

Duplicate / Invalid / Stale Assessment

Do not let this inflate core table architecture pressure. It is a custom table/runtime boundary problem first.

Maintainer Action Suggestion

ask-for-scope-clarification

Future Reply Direction

Ask whether there is a reduced repro without custom rowspan table logic before treating it as Slate-owned.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5550

Issue Summary

Selection breaks when content is rendered through Web Components. That is not surprising; encapsulated DOM boundaries are hostile to Slate’s selection mapping.

Thread Summary

No comments. The repro is visual only, and the report never narrows the ownership question beyond “Web Components break selection.”

Repro Status

Acceptable.

Workaround Status

Poor.

Validity Assessment

Likely invalid.

Duplicate / Invalid / Stale Assessment

This is interesting for future renderer portability, but it is not a clean current Slate contract bug.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

State plainly that Web Component encapsulation is outside Slate’s supported DOM assumptions.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5548

Issue Summary

This is not an engine regression. The issue body calls Editor.start(editor) without the root path, and the comment gives the correct call immediately: Editor.start(editor, []).

Thread Summary

The single comment effectively resolves the report.

Repro Status

Strong enough.

Workaround Status

Strong.

Validity Assessment

Invalid.

Duplicate / Invalid / Stale Assessment

Treat this as docs or migration confusion, not a live core bug.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

Point at the root-path API contract and close it.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5538

Issue Summary

Could be a real focus/scroll interaction, but the report is muddy. The original case is user code selecting the end on focus, and the later comment broadens the symptom without a fresh repro.

Thread Summary

Comments prove there is at least one workaround (preventDefault on focus), but they do not establish a stable current-Slate bug shape.

Repro Status

Weak.

Workaround Status

Acceptable.

Validity Assessment

Unclear.

Duplicate / Invalid / Stale Assessment

Keep it de-weighted until someone posts a cleaner repro that separates consumer focus logic from Slate scroll behavior.

Maintainer Action Suggestion

ask-for-repro

Future Reply Direction

Ask for a minimal repro that does not rely on app-specific whiteboard focus wiring.

v2 Relevance

Indirect.

Red-Test Extraction Note

Blocked on repro.

Issue #5537

Issue Summary

This looks like consumer focus misuse, not a proven Slate bug. The issue focuses a raw DOM node with .focus() instead of going through Slate’s focus utilities, and never ships a repro.

Thread Summary

No follow-up, no sandbox, no maintainer context.

Repro Status

Weak.

Workaround Status

Acceptable.

Validity Assessment

Likely invalid.

Duplicate / Invalid / Stale Assessment

Do not let “multiple editors” alone push this into the shared-identity cluster. The real seam here is raw DOM focus.

Maintainer Action Suggestion

share-status

Future Reply Direction

Point users toward Slate-owned focus APIs and ask for a reduced repro if the problem still exists with those.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5533

Issue Summary

Clean collaboration feature request. The ask is not “support Yjs better”; it is “can Slate operations be the collaboration primitive directly?”

Thread Summary

No comments, but the issue body is already sharp enough to matter.

Repro Status

Strong enough.

Workaround Status

None.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

This should feed collaboration requirements, not get buried as generic feature chatter.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply with the current status honestly: operations are the right primitive direction, but the repo does not ship a first-party OT/collab layer today.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5532

Issue Summary

Real selection-gesture instability report. The anchor jumps during mouse drag after a triple-click block selection.

Thread Summary

No extra comments, but the repro uses the official richtext example, which makes it more credible than random app code.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep it with gesture-selection bugs, not generic selection complaints.

Maintainer Action Suggestion

keep-open

Future Reply Direction

The useful reply is to confirm whether this is Chrome-only block-selection drift and ask for a reduced browser-only diagnosis if needed.

v2 Relevance

Indirect.

Red-Test Extraction Note

Ready now.

Issue #5524

Issue Summary

Potentially real, but the contract is muddy. The report cares about previous-character inference around soft breaks, not just cursor motion itself.

Thread Summary

No comments yet. The sandbox is useful, but the issue still mixes visual cursor movement with model-position expectations.

Repro Status

Acceptable.

Workaround Status

Poor.

Validity Assessment

Unclear.

Duplicate / Invalid / Stale Assessment

Worth keeping around, but low-confidence until someone states the expected model position more precisely.

Maintainer Action Suggestion

ask-for-scope-clarification

Future Reply Direction

Ask whether the bug claim is about actual selection points or only about deriving “line” state from characters around soft breaks.

v2 Relevance

Indirect.

Red-Test Extraction Note

Ready with minor setup.

Issue #5520

Issue Summary

Good docs issue. The current description of Node.common blurs the “common ancestor” case with the special-case same-text-node return.

Thread Summary

No comments needed. The report is already precise.

Repro Status

Strong enough.

Workaround Status

Strong.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Pure docs cleanup. Do not overcomplicate it.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Reply with the intended semantics and tighten the docs wording.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5515

Issue Summary

Legitimate history API request, and the comment immediately surfaces the real design constraint: collaboration makes “undo all” semantics messy fast.

Thread Summary

The lone reply is valuable because it converts a seemingly simple feature request into a real history/collaboration design question.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Good roadmap input. Not a current bug.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

The right reply is to frame this as semantics-first, not implementation-easy.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5509

Issue Summary

Strong slate-react runtime smell. Parent observer rerenders appear to desynchronize DOM and Slate points unless the editor subtree is memoized away from the reactive parent.

Thread Summary

The follow-up comment is the useful part: wrapping the editing component in memo stabilizes it again, which points straight at rerender pressure and stale DOM-point mapping.

Repro Status

Acceptable.

Workaround Status

Acceptable.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep it in the React runtime cluster, not generic MobX support noise.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Reply should ask for a reduced repro, but the memo workaround already says enough about where to look.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready with minor setup.

Issue #5508

Issue Summary

Clear TypeScript regression. Overriding any BaseEditor member that uses OmitFirstArg collapses the editor type to any.

Thread Summary

No comments needed; the repro is already strong and specific.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

This is a real typing seam, not docs confusion.

Maintainer Action Suggestion

keep-open

Future Reply Direction

The best maintainer reply is to confirm the regression and point at a type-test PR seam.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #5507

Issue Summary

Maintainer-authored repo maintenance issue. Useful for roadmap context, but not architecture signal for Slate v2.

Thread Summary

The comments are useful process signal: Dependabot would create noise before the dependency baseline and test debt are fixed.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Do not let repo maintenance issues distort runtime architecture priorities.

Maintainer Action Suggestion

keep-open

Future Reply Direction

No reply needed beyond status if this ever gets revisited.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5498

Issue Summary

This is a rendering/DOM misuse seam. Padding individual text leaves changes the DOM selection geometry enough to make cursor navigation skip positions.

Thread Summary

No comments, but the repro is already specific enough to blame the rendered DOM shape rather than Slate’s model.

Repro Status

Strong.

Workaround Status

Acceptable.

Validity Assessment

Likely invalid.

Duplicate / Invalid / Stale Assessment

This belongs with custom render DOM interference, not core selection architecture.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

Point users toward wrapping/styling higher-level containers instead of altering the leaf text boxes themselves.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5493

Issue Summary

Major Android IME thread. The first composed character is duplicated, and the comments dig all the way into missing selection updates inside the Android input manager.

Thread Summary

This thread is high-value. Multiple reporters confirm the bug across Korean, Chinese, Japanese, and even plain English composition, and the deeper comments narrow it to Android input manager selection syncing.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

This is a core mobile input cluster issue, not one-off Korean IME noise.

Maintainer Action Suggestion

keep-open

Future Reply Direction

The useful reply is not “any update?”; it is to capture the narrowed AndroidInputManager seam and point future fixes there.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready with minor setup.

Issue #5490

Issue Summary

Good TypeScript issue. PropsMerge is typed as object-level merge, but setNodes actually invokes it per property value.

Thread Summary

The later comment sharpens the mismatch and proposes the right direction for the generic shape.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

This is a real typing contract mismatch, not docs confusion.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Reply should point at a type-test seam and the per-key invocation reality.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #5488

Issue Summary

Real API ergonomics pain, not a bug. Users want to replace editor content programmatically without faking a controlled value model or triggering onChange feedback loops.

Thread Summary

The later “same problem” comments show this did not die as one-off confusion.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

This should inform runtime/API design, not get treated as a support-thread annoyance.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply should explain the current uncontrolled model plainly and point at the least-awful update pattern, while acknowledging the ergonomics gap.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5487

Issue Summary

Strong type-system design complaint. createEditor returning the fully-augmented Editor type hides plugin-order mistakes that should fail at compile time.

Thread Summary

No comments, but the report is well-argued and specific.

Repro Status

Strong.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

This is not just typing polish. It is about whether plugin composition can be expressed honestly in the type system.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

The right reply is to say whether Slate intentionally chose global CustomTypes over plugin-order type safety, or whether this is v2 material.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #5485

Issue Summary

Likely real caret-restoration issue in Chrome. Delete a character, type it back, and the caret lands behind it.

Thread Summary

No comments and no sandbox, so confidence is not perfect, but the behavior report is concrete.

Repro Status

Acceptable.

Workaround Status

Poor.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep it with browser caret-restoration bugs, not IME-specific composition issues.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Ask for a reduced repro if someone wants to actually fix it, but the symptom itself is clear.

v2 Relevance

Indirect.

Red-Test Extraction Note

Ready with minor setup.

Issue #5484

Issue Summary

Legit input-method compatibility issue. Using Keyman’s Malayalam keyboard drops letters and corrupts the composed output.

Thread Summary

No comments, but the repro path is concrete and uses the public demo.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Likely valid.

Duplicate / Invalid / Stale Assessment

Keep this with external IME/input-method support, not generic Android composition bugs.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Reply should ask whether the behavior still reproduces on current versions, but the class of bug is clear.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready with minor setup.

Issue #5482

Issue Summary

This is release-process feedback, not a runtime issue. The maintainer reply already explains the major-zero semver position and monorepo version skipping.

Thread Summary

The thread is effectively resolved in comments, and it cross-links to the dependency/test modernization work in #5507.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Stale candidate.

Duplicate / Invalid / Stale Assessment

Do not let this weigh on v2 architecture. It is release-process feedback with an in-thread answer.

Maintainer Action Suggestion

close-stale

Future Reply Direction

Point at the existing maintainer explanation and close it if someone triages stale process issues.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #5481

Issue Summary

Clean iOS placeholder bug. Placeholder text can be partially selected even though it should behave like non-content decoration.

Thread Summary

No comments needed. The issue reproduces on the official examples.

Repro Status

Strong.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Good DOM/selection seam. Keep it out of generic placeholder chatter.

Maintainer Action Suggestion

keep-open

Future Reply Direction

A good reply would confirm whether the placeholder is being exposed as real selectable text in iOS selection APIs.

v2 Relevance

Indirect.

Red-Test Extraction Note

Ready now.

Issue #5480

Issue Summary

Originally a real browser integration problem: accepting one spellcheck suggestion cleared the others. The thread now says Chromium fixed it and the behavior looks resolved on current Chrome/Edge.

Thread Summary

This is exactly why comments matter. Without them, it looks like a current Slate bug. With them, it is mostly stale upstream browser fallout.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Stale candidate.

Duplicate / Invalid / Stale Assessment

Do not keep this hot in the architecture set. It should probably be closed as resolved upstream.

Maintainer Action Suggestion

close-stale

Future Reply Direction

Point at the Chromium bug and ask for retest only if someone can still reproduce it on current stable builds.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.