Back to Plate

4268 4162

docs/slate-issues/open-issues-dossiers/4268-4162.md

53.0.622.4 KB
Original Source

Issue #4268

Issue Summary

The paste-html example preserves DOMParser whitespace and lands the caret awkwardly, so the official example behaves worse than users expect from rich paste.

Thread Summary

The comments narrow it quickly: this is mostly an example/parser seam, not a mysterious core editor failure.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in the example cluster and do not let it inflate core architecture pressure.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with the current scope and point at the example/parser seam.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4263

Issue Summary

Mod+Delete regressed so empty blocks stop collapsing the way users expect, leaving command-delete behavior inconsistent across versions.

Thread Summary

The report is tight and version-scoped, so this is a clean current bug instead of a vague editor preference debate.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in the delete/caret cluster.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to command-delete behavior.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #4262

Issue Summary

The test harness was hard to discover and hard to run selectively, which made core contribution friction higher than it should be.

Thread Summary

Ian’s response is the useful part: the pain is real, but better test utilities mattered more than switching runners.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in contributor DX, not architecture.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with scope rather than treat it like a v2 requirement.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4261

Issue Summary

The issue argues that built-in delete behavior should not silently unwrap or lift nodes, because that creates structurally surprising intermediate states.

Thread Summary

The thread does not settle the whole proposal, but it exposes a real missing contract around hanging selections and structural transforms.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as architecture signal, not a one-off bug.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply with the current contract and capture it as structural-runtime pressure.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4260

Issue Summary

Deleting backward inside nested empty blocks can unwrap and delete the wrong structure, which makes normalization rules brittle and hard to reason about.

Thread Summary

The provided tests are the valuable part here: this is a real structural-runtime seam, not a fuzzy complaint.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in the structural delete cluster.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to nested empty-block delete semantics.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #4239

Issue Summary

This is just an empty issue template about Chrome extensions with no repro, no scope, and no actionable detail.

Thread Summary

There is no thread to rescue it.

Repro Status

Not enough.

Workaround Status

None.

Validity Assessment

Invalid.

Duplicate / Invalid / Stale Assessment

Do not let this contaminate the signal.

Maintainer Action Suggestion

close-invalid

Future Reply Direction

Request a real repro or close it.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4236

Issue Summary

Old IE11 support with legacy slate-html-serializer falls into exception-heavy typing because required DOM APIs were missing.

Thread Summary

The only useful signal is that IE11 support was more brittle than the docs implied, not that this old stack should drive v2 design.

Repro Status

Strong enough with minor setup.

Workaround Status

Acceptable.

Validity Assessment

Stale candidate.

Duplicate / Invalid / Stale Assessment

Keep it with browser-support debt, not current runtime architecture.

Maintainer Action Suggestion

close-stale

Future Reply Direction

Share the current support stance instead of treating it like active product debt.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4233

Issue Summary

Editable hardcodes a min-height style that can override consumer styling, so basic editor layout starts fighting normal CSS control.

Thread Summary

The thread is short but enough: this is a runtime default/style surface issue, not a deep editor model problem.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in runtime surface ergonomics.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with the supported styling seam or current workaround.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4232

Issue Summary

After select-all delete, entering composition mode can reverse input and even paste page text into the editor on blur.

Thread Summary

The comments sharpen it: this is a composition-mode bug, not random typing corruption.

Repro Status

Strong enough with minor setup.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it adjacent to #4231, not merged into generic IME noise.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to composition after select-all delete.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready with minor setup.

Issue #4231

Issue Summary

Deleting everything after Cmd+A can leave the editor with an invisible or ghost selection state.

Thread Summary

The valuable detail is in the follow-up: the original symptom was fixed in 0.62.1, but empty-editor selection weirdness remained.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Stale candidate.

Duplicate / Invalid / Stale Assessment

Treat the original report as mostly fixed and keep any residual empty-editor issue separate.

Maintainer Action Suggestion

close-stale

Future Reply Direction

Reply with the fixed scope and ask for a fresh minimal repro if the residual case still exists.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4228

Issue Summary

Deleting a line behaves differently depending on whether the line contains marks, which means the caret model still leaks formatting structure into basic delete behavior.

Thread Summary

The comment points at normalization-driven node removal, which makes this more useful than a cosmetic cursor complaint.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in delete/caret positioning.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to delete-line caret consistency.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #4225

Issue Summary

Collapsed marks do not render anything, so cursor-affecting formatting like color cannot reflect the current editor state.

Thread Summary

No noisy thread here. The report is already a clean runtime/rendering seam.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it with renderer-state issues, not general formatting UX.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to collapsed-mark rendering.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #4223

Issue Summary

This is the first strong articulation that Android support should live in swappable reconciliation hooks instead of a forked Editable.

Thread Summary

The comments are gold. They capture abstraction level, mutation timing, testability, and long-term maintainability tradeoffs instead of just “Android is hard.”

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Treat it as architecture signal, not a bug ticket.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply in architecture terms, not patch terms.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4221

Issue Summary

On Firefox, select-all in an empty editor highlights the placeholder, which exposes the empty-editor rendering bridge bleeding into native selection.

Thread Summary

The thread is light but it confirms the browser-specific behavior persisted.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in empty-editor/placeholder behavior.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to the Firefox placeholder seam.

v2 Relevance

Indirect.

Red-Test Extraction Note

Ready now.

Issue #4216

Issue Summary

The GitHub latest-release badge was wrong because release titles were not automated.

Thread Summary

Pure release-process hygiene, nothing architectural.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it out of v2 architecture.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with the release workflow scope.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4210

Issue Summary

Even tiny edits and cursor moves can light up the whole document in React devtools, which is exactly the renderer invalidation problem people keep tripping over.

Thread Summary

There is no noisy thread. The issue is already a clean renderer-performance signal.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

This is a core rerender-breadth benchmark issue.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to subscription breadth.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4209

Issue Summary

Transforms.setNodes can make nodes disappear entirely when normalization and inline/void semantics are not aligned with the target structure.

Thread Summary

The thread is messy, but the useful core is clear: the transform contract feels too easy to violate and too hard to reason about.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in structural transform contract issues.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to setNodes contract and normalization interaction.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready with minor setup.

Issue #4202

Issue Summary

The default placeholder check walks more of the tree than it probably needs to, which makes placeholder rendering look heavier than necessary.

Thread Summary

Useful as an implementation note, not as a major architecture driver.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as implementation/perf hygiene.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with current scope rather than over-indexing on it.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4195

Issue Summary

Pressing Enter at the edge of a marked leaf creates the new block but leaves the caret in the wrong place.

Thread Summary

The linked prior issue strengthens it: this is recurring split/caret debt, not a one-off example glitch.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it near split/caret issues and linked to #4163.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Keep it open and scoped to Enter/split behavior.

v2 Relevance

Direct.

Red-Test Extraction Note

Ready now.

Issue #4189

Issue Summary

Some tests were aliasing input as output, so they could pass while asserting nothing meaningful.

Thread Summary

This is exactly the kind of testing debt that should be fixed instead of romanticized.

Repro Status

Strong enough.

Workaround Status

Strong.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it in test infrastructure.

Maintainer Action Suggestion

keep-open

Future Reply Direction

Share status or merge the obvious fix path.

v2 Relevance

None.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4181

Issue Summary

The request is for per-element keypress hooks, but the current supported seam is still editor method overrides, not event handlers injected into render elements.

Thread Summary

The comment is enough: this is a current-contract mismatch, not a missing hidden API.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Likely invalid.

Duplicate / Invalid / Stale Assessment

Useful as plugin ergonomics signal, but not a current bug.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with the supported override seam and keep it as API pressure only.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4178

Issue Summary

There is no built-in way to distinguish local, remote, and programmatic operations, which makes collaboration-aware business logic ugly and fragile.

Thread Summary

The comments are useful because they show the current apply override trick is not good enough once collaboration middleware strips metadata.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Treat this as collaboration/runtime architecture pressure.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply in terms of engine contracts, not local plugin tricks.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4173

Issue Summary

Replacing a node shell while preserving children is common enough that people keep reinventing it or doing unsafe type mutation.

Thread Summary

The interesting part is the typing discussion underneath: transform APIs and normalization do not line up cleanly with stronger type safety.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as transform API pressure, not a must-ship bug.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Share status and treat it as API-shape pressure.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4165

Issue Summary

useSlate mixes “give me the editor object” with “rerender me on editor state changes,” which makes the hook surface misleading and harder to optimize.

Thread Summary

Ian’s comment is the valuable part: this is exactly the split between stable editor access and stateful subscription that slate-react still needs.

Repro Status

Strong enough.

Workaround Status

Acceptable.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Treat it as hook-surface architecture pressure.

Maintainer Action Suggestion

v2-roadmap

Future Reply Direction

Reply in terms of hook contracts and subscription semantics.

v2 Relevance

Direct.

Red-Test Extraction Note

Not a direct test candidate.

Issue #4162

Issue Summary

Getting the current word under a collapsed cursor is far more complicated than it should be, especially once custom delimiters matter.

Thread Summary

The comments prove this is not one user whining. Everyone keeps reimplementing the same stepping logic.

Repro Status

Strong enough.

Workaround Status

Poor.

Validity Assessment

Valid.

Duplicate / Invalid / Stale Assessment

Keep it as API ergonomics, not core correctness.

Maintainer Action Suggestion

share-status

Future Reply Direction

Reply with current scope and keep it as helper-surface pressure.

v2 Relevance

Indirect.

Red-Test Extraction Note

Not a direct test candidate.