Repository navigation
[lexical-y] Documentation Update: Add five open questions to the decision register and update the comment-spread row - #9611
Conversation
…sion register and update the comment-spread row ## Description The `@lexical/y` decision register did not list several design questions that came up on 10-30. This adds them as `OPEN` rows, each with where it stands and its links: - D74: keeping the run ends of text an undo removes from inside a format run. #9561 is parked after it regressed a concurrent undo (#9593); option C would settle the kept ends inside the undo that makes them stale, where the undoing client has seen them. Its tests move to main in #9605. - D75: the table padding contract under collaboration (#9582): only the client that created a row pads it, or a width that is a function of the document. Meanwhile #9539 pads only the rows that lost cells. - D76: a code-token-aware trim for remade text (#9608). - D77: a stale comment on a word a collaborator rewrites lands on the new word for one client id order only (#9610): clarify the docs or make both orders agree. - D78: a format spreading after one client's triple undo (#9599). D65 (a comment spreading after an offline client types plain text into it) now says that #9562 is parked, that the case is tracked in #9609 with tests in #9605, and links #9603, the 64-item end scan cap. ## Changeset None: documentation only. ## Test plan ### Before The register had no rows for #9561, #9582, #9608, #9610 or #9599, and D65 linked only #9564. ### After ``` $ pnpm run ci-check ... Changeset check passed: 41 pending changeset(s) valid. ... Found 0 errors ```
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
lexical
@lexical/a11y
@lexical/clipboard
@lexical/code
@lexical/code-core
@lexical/code-prism
@lexical/code-shiki
@lexical/compiler
@lexical/devtools-core
@lexical/dragon
@lexical/eslint-plugin
@lexical/extension
@lexical/fast-check
@lexical/file
@lexical/hashtag
@lexical/headless
@lexical/history
@lexical/html
@lexical/internal
@lexical/link
@lexical/list
@lexical/mark
@lexical/markdown
@lexical/mdast
@lexical/offset
@lexical/overflow
@lexical/plain-text
@lexical/react
@lexical/rich-text
@lexical/selection
@lexical/table
@lexical/tailwind
@lexical/text
@lexical/utils
@lexical/y
@lexical/yjs
commit: |
|
AI review status for this pull request.
|
There was a problem hiding this comment.
This looks good to me. The five new OPEN rows (D74 to D78) and the D65 update match the issues and pull requests they link, the row IDs continue from D73 without gaps, and every new link reference is defined and points at the right issue or pull request page.
One optional, non-blocking suggestion:
packages/lexical-y/DECISIONS.mdline 134 (D75): "Meanwhile [#9539] … pads only the rows that lost cells" reads as current behaviour, but #9539 is still an open pull request. The Open table's Where it stands column is where the register records status (D65 and D74 say when their pull requests are parked), so consider "Meanwhile the open [#9539] would pad only the rows that lost cells …". A pointer to D55, the accepted limit for two clients padding a table at once, would also connect the two rows.
No changeset is needed: DECISIONS.md is not in the files list of packages/lexical-y/package.json, so nothing published changes, and CONTRIBUTING.md says changes with no effect on people who use Lexical need none.
| | D68 | **Splice-based text edit helpers exported from Lexical** for agents that rewrite text, and named APIs for intent that `setTextContent` drops. | Agents should edit text in place; the API shape is undecided. | `OPEN` | 10-27 | [#9483] | | ||
| | D69 | **Comments on block decorators** (an image), as in Google Docs. | Not today, same as `MarkNode`; keep the door open. | `OPEN` | 10-23 | [#9380] | | ||
| | D74 | **Keeping the run ends of text an undo removes from inside a format run.** | [#9561] keeps them, but regressed a concurrent undo ([#9593]) and is parked. Option C: settle the kept ends inside the undo that makes them stale, where the undoing client has seen them; the truly concurrent case would stay a documented limit. Its tests move to main in [#9605]. | `OPEN` | 10-30 | [#9561], [#9593], [#9605] | | ||
| | D75 | **The table padding contract under collaboration.** When every client re-runs the table transforms after remote changes, concurrent pads add cells and the table never settles. | Padding that converges needs a rule: only the client that created a row pads it, or a width that is a function of the document instead of each client's write. Meanwhile [#9539], when an edit leaves the table's rows in place, pads only the rows that lost cells. | `OPEN` | 10-30 | [#9582], [#9539] | |
There was a problem hiding this comment.
Optional, non-blocking: #9539 is still an open pull request, so "Meanwhile [#9539] … pads only the rows that lost cells" reads as current behaviour. D65 and D74 say when their pull requests are parked; consider "Meanwhile the open [#9539] would pad only the rows that lost cells …", plus a pointer to D55, the accepted limit for two clients padding a table at once.
…, and point to D55 ## Description D75 described #9539's padding as current behaviour, but #9539 is an open pull request. The row now says what it would do, and points to D55, the accepted limit for two clients padding a table at once. ## Changeset None: documentation only. ## Test plan ### Before D75 read "Meanwhile #9539 ... pads only the rows that lost cells". ### After ``` $ pnpm run ci-check ... Found 0 errors ```
There was a problem hiding this comment.
This looks good: D74-D78 and the D65 update match the issues and pull requests they link, the row ids and link definitions are consistent, and no changeset is needed because DECISIONS.md is outside @lexical/y's published files. Two optional, non-blocking suggestions:
- D75 (
packages/lexical-y/DECISIONS.md, line 134): #9539 was merged intomainon 10-30, shortly before the commit that changed this sentence to "the open [#9539] would pad", so the row now describes shipped padding as pending.packages/lexical-y/AGENTS.mdasks contributors and reviewers to read this register before working on@lexical/y, so it is worth keeping the status current, for example: "Meanwhile [#9539], merged on 10-30, pads only the rows that lost cells when an edit leaves the table's rows in place." (The first commit's present-tense wording was accurate.) - D74 (line 133): #9607, also open, adds a different D74 (an
ACCEPTED LIMITfor the Yjs version guard) in the Accepted limits table. Because the two rows land in different tables, merging both conflicts only in the link definitions at the end of the file and would leave two D74 rows. The register's preamble says rows are never deleted, so whichever of the two pull requests lands second could take the next free id.
| | D67 | **The rest of the server-defence proposals:** a relay gate judging version records against a published ceiling, budgets, recovery, an author map, agent write policies. | Researched and proposed; nothing decided beyond D46. | `OPEN` | 10-29 | | | ||
| | D68 | **Splice-based text edit helpers exported from Lexical** for agents that rewrite text, and named APIs for intent that `setTextContent` drops. | Agents should edit text in place; the API shape is undecided. | `OPEN` | 10-27 | [#9483] | | ||
| | D69 | **Comments on block decorators** (an image), as in Google Docs. | Not today, same as `MarkNode`; keep the door open. | `OPEN` | 10-23 | [#9380] | | ||
| | D74 | **Keeping the run ends of text an undo removes from inside a format run.** | [#9561] keeps them, but regressed a concurrent undo ([#9593]) and is parked. Option C: settle the kept ends inside the undo that makes them stale, where the undoing client has seen them; the truly concurrent case would stay a documented limit. Its tests move to main in [#9605]. | `OPEN` | 10-30 | [#9561], [#9593], [#9605] | |
There was a problem hiding this comment.
Optional: #9607 (also open) adds a different D74, an ACCEPTED LIMIT for the Yjs version guard, in the Accepted limits table. The two rows are in different tables, so merging both conflicts only in the link definitions at the end of the file and would leave two D74 rows. The register's preamble says rows are never deleted, so whichever of the two pull requests lands second could take the next free id.
| | D68 | **Splice-based text edit helpers exported from Lexical** for agents that rewrite text, and named APIs for intent that `setTextContent` drops. | Agents should edit text in place; the API shape is undecided. | `OPEN` | 10-27 | [#9483] | | ||
| | D69 | **Comments on block decorators** (an image), as in Google Docs. | Not today, same as `MarkNode`; keep the door open. | `OPEN` | 10-23 | [#9380] | | ||
| | D74 | **Keeping the run ends of text an undo removes from inside a format run.** | [#9561] keeps them, but regressed a concurrent undo ([#9593]) and is parked. Option C: settle the kept ends inside the undo that makes them stale, where the undoing client has seen them; the truly concurrent case would stay a documented limit. Its tests move to main in [#9605]. | `OPEN` | 10-30 | [#9561], [#9593], [#9605] | | ||
| | D75 | **The table padding contract under collaboration.** When every client re-runs the table transforms after remote changes, concurrent pads add cells and the table never settles. | Padding that converges needs a rule: only the client that created a row pads it, or a width that is a function of the document instead of each client's write. Meanwhile the open [#9539] would pad, when an edit leaves the table's rows in place, only the rows that lost cells. Two clients padding at once is the accepted limit D55. | `OPEN` | 10-30 | [#9582], [#9539] | |
There was a problem hiding this comment.
Optional: #9539 was merged into main on 10-30, shortly before the commit that changed this sentence to "the open [#9539] would pad", so the row now describes shipped padding as pending. packages/lexical-y/AGENTS.md asks contributors and reviewers to read this register first, so keeping the status current helps:
| | D75 | **The table padding contract under collaboration.** When every client re-runs the table transforms after remote changes, concurrent pads add cells and the table never settles. | Padding that converges needs a rule: only the client that created a row pads it, or a width that is a function of the document instead of each client's write. Meanwhile the open [#9539] would pad, when an edit leaves the table's rows in place, only the rows that lost cells. Two clients padding at once is the accepted limit D55. | `OPEN` | 10-30 | [#9582], [#9539] | | |
| | D75 | **The table padding contract under collaboration.** When every client re-runs the table transforms after remote changes, concurrent pads add cells and the table never settles. | Padding that converges needs a rule: only the client that created a row pads it, or a width that is a function of the document instead of each client's write. Meanwhile [#9539], merged on 10-30, pads only the rows that lost cells when an edit leaves the table's rows in place. Two clients padding at once is the accepted limit D55. | `OPEN` | 10-30 | [#9582], [#9539] | |
Description
The
@lexical/ydecision register did not list several design questions that came up on 10-30. This adds them asOPENrows, each with where it stands and its links:D65 (a comment spreading after an offline client types plain text into it) now says that #9562 is parked, that the case is tracked in #9609 with tests in #9605, and links #9603, the 64-item end scan cap.
Changeset
None: documentation only.
Test plan
Before
The register had no rows for #9561, #9582, #9608, #9610 or #9599, and D65 linked only #9564.
After