From 21e5ee9071ff170bc6e34a1079cdd8f3aa4d73d6 Mon Sep 17 00:00:00 2001 From: Yichen Jiang Date: Wed, 26 Aug 2026 16:35:49 +0800 Subject: [PATCH] test(web): derive the editable gate from the gesture target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review follow-ups: wait on the caller's own locator instead of assuming it is the page's first composer, describe the actual read-only window (submit adjudication and locked states — a running turn stays editable for queueing), drop the pre-Lexical narration from the JSDoc, and record the gesture-semantics trap as an Agent Note. --- ...6-composer-gesture-editable-gate.i18n.yaml | 6 +++++ ...26-08-26-composer-gesture-editable-gate.md | 25 +++++++++++++++++++ ...08-26-composer-gesture-editable-gate.zh.md | 25 +++++++++++++++++++ apps/web/tests/support.ts | 16 ++++++------ 4 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 .agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.i18n.yaml create mode 100644 .agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.md create mode 100644 .agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.zh.md diff --git a/.agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.i18n.yaml b/.agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.i18n.yaml new file mode 100644 index 0000000000..2b3943b416 --- /dev/null +++ b/.agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.md +2026-08-26-composer-gesture-editable-gate.md: 9b01a79d8d8a546641eaf87040d7a19fc5b4d5bc +2026-08-26-composer-gesture-editable-gate.zh.md: b5dc8d36c7b195a152d32e92fac7ae36eea880d9 diff --git a/.agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.md b/.agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.md new file mode 100644 index 0000000000..9b01a79d8d --- /dev/null +++ b/.agents/notes/implemented/bug-fix/2026-08-26-composer-gesture-editable-gate.md @@ -0,0 +1,25 @@ +# Agent Note: Composer e2e gestures gate on the contenteditable attribute + +Status: implemented + +English | [中文](2026-08-26-composer-gesture-editable-gate.zh.md) + +## Problem + +Two Playwright gesture semantics silently changed when the composer became a Lexical `contenteditable` `
`, and both bit only under CI load. While the input machine is adjudicating or submitting a send — and in every locked state — the composer renders read-only by flipping `contenteditable` to `"false"` on the same element. On that element `fill()` throws immediately (`Element is not an ,