Files
ElyOffice/tasks/reviews/R4.9-r1.md
T
ZacharyZhang-NYandClaude Opus 5.5 f84f990f90 ElyMark: R4.9 round 1 fixes
Menus act on an open block's selection (component 6d90351), clipboard
keys reach a focused field outside the document, Strike binds per
platform, platform-correct key tests, Delete Table in the table menu
(component 24ffc45), short comments. Pin 6b033f3 -> 24ffc45.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-14 17:18:57 -04:00

3.9 KiB

FAIL

  1. apps/ely-mark/src/blocks.rs:126 — The new menus do not execute while a visual block is being edited. On Windows and Linux, open alpha beta, select alpha in its block, then choose Format → Strong: the text remains unchanged. Copy as Markdown from the Edit menu likewise leaves the clipboard unchanged. Opening MenuBar blurs and commits the block, discarding its selection and input entity; closing the menu restores that removed input's focus, so action dispatch never reaches Desk. The same menu operation succeeds in Source mode, and the shortcut succeeds in the open visual block. Preserve the document selection and a live dispatch target across the shared menu/document focus handoff, and test actual menu interaction rather than only menu models and root-focused shortcuts. Evidence: .work/R4.9-r1/full-menu.log, probes.log, linux-probes.log, and probe-source.log.

  2. apps/ely-mark/src/clip.rs:16 — Paste as Plain Text is bound throughout the office context, but its handler always inserts into the active document, regardless of the focused input. Open alpha beta, press Ctrl+F, put query on the clipboard, and press Ctrl+Shift+V in the Find field: the document becomes queryalpha beta, while the search field receives nothing. This reproduces on Windows and Linux. Scope document paste to document focus and let other focused text fields receive their own paste; cover Find and dialog inputs. Evidence: plain_paste_in_find_does_not_edit_document in .work/R4.9-r1/probes.log and linux-probes.log.

  3. apps/ely-mark/src/blocks.rs:82 — Strike skips the platform-specific punctuation handling used by the other bindings. On a US Linux layout, GPUI converts Alt+Shift+5 to alt-% and clears Shift for the symbol; the registered alt-shift-5 cannot match it. Sending that normalized event leaves alpha unchanged instead of producing ~~alpha~~. The existing test passes only because it injects the Windows-shaped event. Bind Strike using each platform's actual punctuation representation and test the normalized event. Evidence: .work/R4.9-r1/linux-probes.log (native_linux_strike_key; the adjacent list/zoom controls pass), and the pinned GPUI Linux keystroke_from_xkb implementation.

  4. apps/ely-mark/src/blocks/tests.rs:81 — The new test module breaks the non-Windows gates. On Linux, paragraph_keys_retype_the_caret_block fails at line 82 because ctrl-shift-[ does not match ctrl-{; view_keys_follow_typora fails at line 144 because ctrl-shift-= does not match ctrl-+. The literal ctrl chords also ignore macOS's secondary mapping. Separately, the unconditional keys helper at line 251 has only a Windows-gated caller, so Linux Clippy with -D warnings fails on dead code. Make the interaction events platform-correct and compile the helper on the same platforms as its callers. Evidence: .work/R4.9-r1/linux-tests.log (6 passed, 2 failed) and linux-clippy.log.

  5. apps/ely-mark/src/tools.rs:62 — Paragraph → Table ends at Prettify Source Code and omits Typora's Delete Table item. This is not covered by the decision to omit unsupported component operations: the pinned component's public block(BlockCommand::Delete) already removes the table at the caret. A probe with a table between before and after successfully removes just that table. Users currently cannot invoke this supported Typora menu operation, contrary to MARK-15's matching-items requirement. Add the table-specific action with an outside-table refusal, using the existing block command, and cover its menu dispatch and undo. Evidence: .work/R4.9/typora-main-menus.txt and component_can_delete_table in .work/R4.9-r1/linux-probes.log.

  6. apps/ely-mark/src/clip.rs:1 — This new comment has 12 words; the new comment at apps/ely-mark/src/blocks/tests.rs:161 has 11. Both exceed the explicit ten-word limit, and python tests/scripts/comments.py fails on exactly these two lines. Shorten or remove them. Evidence: .work/R4.9-r1/comments.log.