From 17826df1b4685f78328540848e033a3d0d16383d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Wed, 14 Oct 2026 17:43:37 -0400 Subject: [PATCH] T10: reviewed, ticked --- TASKS.md | 2 +- tasks/reviews.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/TASKS.md b/TASKS.md index 57e737c..ff60e49 100644 --- a/TASKS.md +++ b/TASKS.md @@ -22,7 +22,7 @@ Progress truth. Top to bottom, one at a time. A task is ticked only after its co - [x] T07 Box drawing, block elements and powerline shapes (U+E0B0–E0B7) painted as geometry; tests. - [x] T08 Keys: xterm encoding, cursor mode, Option as Alt, kitty keyboard protocol, IME; tests. - [x] T09 Mouse: selection, mouse reporting, wheel and scrollback, clipboard, copy on select, OSC 52, links; tests. -- [ ] T10 Focus reporting, title, silent bell, scrollback limit, find. +- [x] T10 Focus reporting, title, silent bell, scrollback limit, find. ## 6. Main window and layout diff --git a/tasks/reviews.md b/tasks/reviews.md index e40f4e5..5e0bb6a 100644 --- a/tasks/reviews.md +++ b/tasks/reviews.md @@ -48,3 +48,9 @@ Each task gets at most three codex rounds. Each round: the commit, the verdict, - Round 1, 9f81f1f: FAIL. Resetting mode 9 revived an older 1000 (alacritty keeps each mouse mode apart); a second held button wiped the first one's release; URLs lost their combining marks; selections logged nothing; two shot comments ran past 200 characters. Fixed in d6fa38e: the tap holds one tracking and one format as xterm does; reported buttons kept as a set, motion reports the first held; marks kept; selection start, run and end logged; the gesture syntax moved to AGENTS.md. shot now hands real buttons to the view and shows its window without activating. - Round 2, d6fa38e: FAIL. A NUL inside CSI ? 1000 l ended the tap's sequence while vte runs it and goes on, so tracking stayed on. Fixed in 8bb2763: the scanner mirrors vte's escape and CSI transitions (C0 runs, DEL and high bytes skipped, CAN and SUB cancel, ESC restarts, subparameters count toward 32 values); a test compares it with vte's parser after every byte. Copy on select and OSC 52 primary writes go to Linux's selection. - Round 3, 8bb2763: PASS. + +## T10 + +- Round 1, 4d8788f: FAIL. Matches went stale after a resize or a scrollback trim; the current match kept its index, not its line; alacritty's search read no combining marks; whole word used ASCII edges; a reset left the old title. Fixed in 1c21dfd: find runs Ely's find_all on the grid's shown text (marks, hidden cells blank, wrapped rows joined, Unicode words); output, resizes and settings changes search again; the current match follows its line; a reset replays the title. +- Round 2, 1c21dfd: FAIL. Following was quadratic on a long line (60 s on a million characters); text appended to the current line moved the current match; a reset inside a synchronized update kept the old title. Fixed in 11b2ce6: one pass, a forward walk and line ends found once, guarded by a timed test; identical lines rank first, then lines grown or cut, then line and column; a cleared or trimmed history moves no line; the title replays on CursorBlinkingChange, in the parser's order. +- Round 3, 11b2ce6: FAIL. With two identical lines, growing the current one moved the match to its twin. The three-round cap reached: fixed in 39761d9 on a red-green test, a line kept, grown or cut ranks first when held under the same line above or in its place. The reviewer's round 2 and 3 scenario records replayed with fresh homes, focus and long-line cases aside, all as expected; three mutations of the rule each fail a test.