Files
ElyOffice/tasks/reviews/C14.3-r2.md
T
2026-10-12 02:03:41 -04:00

2.4 KiB

FAIL

  1. ../Ely-GPUI-Components/src/documents/document/edit.rs:41 — Round 1 defect 1 remains above the asynchronous parsing threshold. A write-back changes the editor before its Changed subscription advances edits; reparse schedules background work without invalidating read, so read_now() still accepts the old block ranges. Start with A\n\nB\n\nCCCC\n\n followed by enough paragraphs to exceed 128 KiB, replace A with AAAA, and press B: its field opens B\n\nC, including part of the untouched next block. Invalidate the parsed revision synchronously and reject or defer opening until the ranges belong to the current text. Cover write-backs above the threshold. Reproduced by review_async_parse_cannot_open_a_stale_range in .work/C14.3-r2/probes-final.log; probe source is in probe-source.log in that directory.

  2. ../Ely-GPUI-Components/src/documents/document/place.rs:55 — Scroll reads discard offset_in_item, and the setter at line 79 always writes zero. In a 100-line fenced code block, source top line 40 becomes 0 after switching to Visual. Scrolling 500 pixels into that block in Visual and switching to Preview also jumps to its beginning. Thus round 1 defect 5 is only partly fixed, and the final AGENTS.md claim that mode switches preserve the top line is false. Preserve the position within a block when reading, restoring and switching views; cover tall blocks rather than only separate one-line paragraphs. Both scenarios fail in review_top_line_inside_a_code_block_survives_modes and review_visual_to_preview_keeps_inside_block_offset in .work/C14.3-r2/probes-final.log.

  3. ../Ely-GPUI-Components/src/documents/document/place.rs:76 — Restoring scroll immediately after replacing text uses the preceding document's parsed blocks. Open old in Visual, then call reset with 100 separate paragraphs and set_top_line(40) in the same owner update: after parsing and rendering settle, the top line is 0. The replacement's Changed subscription reparses later, but nothing reapplies the requested position. This breaks C14.3's owner-controlled scroll restoration and MARK-12 session restoration. Resolve the request against the replacement revision, deferring it until that revision is parsed when necessary. Reproduced by review_reset_then_restore_scroll in .work/C14.3-r2/probes-final.log. The unmodified library passed all 1,779 tests and cargo clippy --all-targets --features test-support -- -D warnings; logs are in the same directory.