Files
ElyOffice/tasks/reviews/R6.8-r1.md
T
ZacharyZhang-NYandClaude Opus 5.5 d1c1ce97cd R6.8 round 1 fix: measure with the current text; the line end is a stop
Component cd61653. Round 1 verdict kept in tasks/reviews.

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

2.1 KiB

FAIL

  • Ely-GPUI-Components/src/editor/ime.rs:117 — P1: IME measurement combines the current buffer with bracket highlights cached from the previous frame. Reproduction on Windows with DirectWrite: render (a) with the caret at the start, insert 测 through replace_and_mark_text_in_range, then request bounds_for_range(1..1) before the next redraw. The retained bracket offsets (0, 2) split the new character into invalid UTF-8 font runs, and DirectWrite panics: “end byte index 1 is not a char boundary.” Refresh the derived highlight positions for the current buffer before measurement, and cover this edit-before-redraw sequence with native text-layout tests. The probe fails on 9fb607b and passes on its parent; evidence: .work/R6.8-r1-review/review_native_ime_bounds_before_redraw.log and the corresponding parent- log.

  • Ely-GPUI-Components/src/editor/measure.rs:73 — P2: closest_index_for_x in the pinned GPUI returns the line end for positions just beyond the last glyph's start whenever the line contains more than one UTF-8 byte. Consequently, clicking 10% into the final b of ab returns byte 2 instead of 1; clicking 10% into a single 测 returns byte 3 instead of 0. Mouse placement, dragging, and IME point lookup therefore select the wrong boundary. Make nearest-boundary lookup compare the final glyph's start with the line-end edge, and test both halves of final ASCII and CJK characters. Both probes fail on 9fb607b and pass on its parent, although all 62 existing editor-related tests pass. Evidence: .work/R6.8-r1-review/review_last_ascii_character_uses_its_midpoint.log, review_single_cjk_character_uses_its_midpoint.log, and their parent- logs.

  • Ely-GPUI-Components/src/editor/line.rs:117 — P3: Six newly added comments exceed the explicit ten-word limit. Counting whitespace-separated words, line.rs:117 has 14, line.rs:168 has 12, and measure.rs:1, measure.rs:9, measure.rs:60, and tests/wide.rs:9 each have 11. Shorten or remove these comments. The changed-line audit is recorded in .work/R6.8-r1-review/scope-audit.log.