You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: suggest-mode-testing/README.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -877,17 +877,17 @@ Priority is P1 (fix before ship), P2 (fix before the feature is considered done)
877
877
| ✅ |**F-02**| P1 |**The block inserter is live in Viewing mode.** It opens and inserts. | Same as F-01. One editor-wide read-only setting covers Enter, the inserter and the block toolbar together. |[#81661](https://github.com/WordPress/gutenberg/pull/81661)|
878
878
| ✅ |**F-04**| P1 | Editing raw HTML in the **code editor** while Suggesting corrupts the document: 7 → 5 blocks, markup parsed into a `freeform` block, every surviving block re-flagged `pending-insert`, notes duplicated, 98 `Block validation failed` errors. | The round trip **alone** is clean (EX-06) - the damage comes from re-parsing an edited document. Disable the code editor in Suggest intent, and make block capture ignore a full-document reset (shared with F-21). |[#81662](https://github.com/WordPress/gutenberg/pull/81662)|
879
879
| ✅ |**F-23**| P1 | Suggestion markers carry **no accessibility semantics**: `role`, `aria-label`, `title` and visually-hidden text are all absent on add, del and format markers alike. Pending state is colour-and-decoration only. | Add visually-hidden text bracketing each marker ("suggested addition by <author>, start / end"), optionally `role="insertion"` / `role="deletion"`. Settle before the markup calcifies. |[#81663](https://github.com/WordPress/gutenberg/pull/81663)|
880
-
|⬜|**F-15**| P1 | Nothing above the block layer is captured. In Suggesting mode the **post title, excerpt, featured image and post status** are all changed outright, zero notes created. Status moved `draft` → `pending`. | The interceptor covers block-editor actions only; `core/editor`'s `editPost` bypasses it. **Post status is the urgent one** - it lets a suggester advance the editorial workflow. Per-field decision needed for the rest (see D-4). |[#81664](https://github.com/WordPress/gutenberg/pull/81664)|
880
+
|✅|**F-15**| P1 | Nothing above the block layer is captured. In Suggesting mode the **post title, excerpt, featured image and post status** are all changed outright, zero notes created. Status moved `draft` → `pending`. | The interceptor covers block-editor actions only; `core/editor`'s `editPost` bypasses it. **Post status is the urgent one** - it lets a suggester advance the editorial workflow. Per-field decision needed for the rest (see D-4). |[#81664](https://github.com/WordPress/gutenberg/pull/81664)|
881
881
| ⬜ |**F-12**| P2 | A second format toggle on the same run records a suggestion with **empty `beforeHTML` and empty `afterHTML`** - it encodes no change, is unreviewable and unapplyable - and every marker in the block disappears. The italic exists only in the live DOM, never in saved markup. | Two stacked defects: marker disappearance is F-09; the empty payload is separate and worse. At minimum refuse to store a suggestion whose before and after are both empty. Better, extend the existing `format` marker instead of falling back. |[#81665](https://github.com/WordPress/gutenberg/pull/81665)|
882
882
| ✅ |**F-08**| P2 | From the **second forward-Delete onward**, markers vanish and the rendered text actually loses characters ("umps" at 2 presses, "mps" at 3, "s" at 5) while the block attribute still holds the original string. A stale `Delete: "j"` note is left orphaned. |`suggestion-deletion-keyboard.js` handles the backward merge case but not `deleteContentForward`, so press 2 falls through to the F-09 fallback. Mirror the Backspace logic and clean up the orphaned note. |[#81666](https://github.com/WordPress/gutenberg/pull/81666)|
883
883
| ✅ |**F-06**| P2 | Typing inside your own pending addition **splits it into two markers and two notes**, and "XX" is claimed by both: note 41 summarises `Add: "ADDXXED"`, note 42 `Add: "XX"`. | The addition path never checks whether the caret is inside an existing `add` marker owned by the same author. Detect and extend in place. Accept/reject is currently incoherent - accepting 42 while rejecting 41 keeps "XX" and drops the text it was typed into. |[#81667](https://github.com/WordPress/gutenberg/pull/81667)|
884
884
| ⬜ |**F-18**| P2 |**Undo after accept** puts the `<mark>` back but restores no note. The result is a marked-up run with no Accept/Reject and no way to resolve it through the UI. | Accept has two effects, only one of which is in the undo stack. Push the note transition into the same undo level, or use `history: 'ignore'` on the content change as the notes delete-cleanup already does. |[#81669](https://github.com/WordPress/gutenberg/pull/81669)|
885
-
|⬜|**F-34**| P2 |**Copying content into a new post carries the markers and note ids with it.** The new post has zero notes, so `metadata.noteId: [192]` points at a note belonging to a different post. | Strip `wp-suggestion` marks and `metadata.noteId` on copy - or on paste into a different post id, since copy targets outside the editor cannot be intercepted. Leaves permanently highlighted text with no way to clear it, same dead end as F-22. |[#81670](https://github.com/WordPress/gutenberg/pull/81670)|
886
-
|⬜|**F-14**| P2 | An **attribute suggestion and an inline suggestion coexist on one block** - the same invariant break as F-09, reached from the other direction. Here the marker still renders and both summaries read sensibly. | Gated on **D-1** - this is the non-destructive ordering, so it is the better case to reason from when deciding whether coexistence is actually acceptable. Resolve both directions with one decision, not two patches. |[#81685](https://github.com/WordPress/gutenberg/pull/81685)|
885
+
|✅|**F-34**| P2 |**Copying content into a new post carries the markers and note ids with it.** The new post has zero notes, so `metadata.noteId: [192]` points at a note belonging to a different post. | Strip `wp-suggestion` marks and `metadata.noteId` on copy - or on paste into a different post id, since copy targets outside the editor cannot be intercepted. Leaves permanently highlighted text with no way to clear it, same dead end as F-22. |[#81670](https://github.com/WordPress/gutenberg/pull/81670)|
886
+
|✅|**F-14**| P2 | An **attribute suggestion and an inline suggestion coexist on one block** - the same invariant break as F-09, reached from the other direction. Here the marker still renders and both summaries read sensibly. | Gated on **D-1** - this is the non-destructive ordering, so it is the better case to reason from when deciding whether coexistence is actually acceptable. Resolve both directions with one decision, not two patches. |[#81685](https://github.com/WordPress/gutenberg/pull/81685)|
887
887
| ✅ |**F-17**| P2 | Making a suggestion **pops the notes sidebar open even when the user deliberately closed it**, narrowing the canvas and reflowing the block they are mid-sentence in. | Only switch when `getActiveComplementaryArea()` already returns a truthy area. Keep NS-02's behaviour (a *different* sidebar is open → switch it), which works correctly. |[#81671](https://github.com/WordPress/gutenberg/pull/81671)|
888
888
| ✅ |**F-10**| P2 | Note summaries are **unreadable**: inter-word spaces stripped and `<strong>` tags shown as literal text - e.g. `Add: "hcontaining<strong>bold…"`. Whitespace-only additions always read `Add: " "` regardless of how many spaces. | The diff tokenizes raw HTML rather than plain text. Strip to text (or diff the rich-text value) before diffing, rejoin with original separators, render as text content. Render spaces visibly. |[#81686](https://github.com/WordPress/gutenberg/pull/81686)|
889
-
|⬜|**F-29**| P2 | Pasting rich text into a Suggesting-mode selection **discards its formatting and links**. `<strong>` and `<a href>` are both stripped; the marker holds plain text. Accepting the suggestion silently destroys the link. | Nested formats inside a `<mark>` are representable in rich-text format state, so the constraint is in the capture diff, not the serializer. At minimum, warn when normalisation is lossy. |[#81672](https://github.com/WordPress/gutenberg/pull/81672)|
890
-
|⬜|**F-24**| P2 |**Pending block treatments are invisible in List View** - every row reports no suggestion class, with pending-insert blocks in the document. (The move ghost is correctly not keyboard-focusable.) | A badge or class on rows whose block carries `metadata.suggestion`. Lands badly as-is: List View is the main way to perceive *structural* change and a key non-visual surface, so it compounds F-23. |[#81687](https://github.com/WordPress/gutenberg/pull/81687)|
889
+
|✅|**F-29**| P2 | Pasting rich text into a Suggesting-mode selection **discards its formatting and links**. `<strong>` and `<a href>` are both stripped; the marker holds plain text. Accepting the suggestion silently destroys the link. | Nested formats inside a `<mark>` are representable in rich-text format state, so the constraint is in the capture diff, not the serializer. At minimum, warn when normalisation is lossy. |[#81672](https://github.com/WordPress/gutenberg/pull/81672)|
890
+
|✅|**F-24**| P2 |**Pending block treatments are invisible in List View** - every row reports no suggestion class, with pending-insert blocks in the document. (The move ghost is correctly not keyboard-focusable.) | A badge or class on rows whose block carries `metadata.suggestion`. Lands badly as-is: List View is the main way to perceive *structural* change and a key non-visual surface, so it compounds F-23. |[#81687](https://github.com/WordPress/gutenberg/pull/81687)|
891
891
| ✅ |**F-31**| P2 | Clicking a note **selects the block but does not highlight or scroll to the marker**. Separately, a floating note card can sit on top of the Accept button and swallow the click. | Add an active class on the marker itself and scroll it into view - block selection is the wrong granularity when a block holds several markers. The click interception is a separate z-order bug and more urgent than it looks: it can make a review control unclickable. |[#81674](https://github.com/WordPress/gutenberg/pull/81674)|
892
892
| ✅ |**F-07**| P3 | A suggested **block split renders as a completed split**, not a reviewable diff: the canvas shows block 0 truncated and the tail as a separate pending-insert block, so it looks like it already happened. Data layer is correct. | Give the delete half of a split an inline `del` marker on block 0 rather than relying on the overlay to hide it. Overlaps F-09. |[#81688](https://github.com/WordPress/gutenberg/pull/81688)|
893
893
| ⬜ |**F-27**| P3 | Summaries **lack the context needed to review from the sidebar**: three spaces read `Add: " "`; a merge reads as delete-plus-re-add; "teh"→"the" reads `del:"eh"` + `add:"he"` ("tehhe"); a link records no URL; a block inside a Group is summarised identically to one at top level. | Solve with F-10. Three pieces: render whitespace visibly, diff at **word** granularity not character, and include the operation payload (link URL, parent block name). |[#81677](https://github.com/WordPress/gutenberg/pull/81677)|
0 commit comments