Mail: Escape does not close the Morph reader #1269

Open
opened 2026-10-07 00:20:33 +00:00 by kayg · 1 comment
Owner

Steps:

  1. Open a Mail thread at desktop width and choose Morph.
  2. Press Arrow Up, then Arrow Down to move between Messages.
  3. Press Escape.

Expected: Morph closes, the selected Mail list returns, and focus returns to the selected row.

Actual: The .mail-morph-card stays visible after Escape. The production-build Playwright run times out after 30 seconds at apps/web/e2e/mail-layouts.mjs:210; the prior ArrowUp/ArrowDown selection assertions pass.

Evidence: apps/web/e2e/mail-layouts.mjs:210; local production-build run on 2026-10-07 with the real Mail API and the isolated screenshot fixture.

Severity: major. Escape is the required keyboard action to close this modal reader.

Steps: 1. Open a Mail thread at desktop width and choose Morph. 2. Press Arrow Up, then Arrow Down to move between Messages. 3. Press Escape. Expected: Morph closes, the selected Mail list returns, and focus returns to the selected row. Actual: The `.mail-morph-card` stays visible after Escape. The production-build Playwright run times out after 30 seconds at `apps/web/e2e/mail-layouts.mjs:210`; the prior ArrowUp/ArrowDown selection assertions pass. Evidence: `apps/web/e2e/mail-layouts.mjs:210`; local production-build run on 2026-10-07 with the real Mail API and the isolated screenshot fixture. Severity: major. Escape is the required keyboard action to close this modal reader.
Author
Owner

Fixed on branch in commit 389d3d2c3e. Morph now handles Escape at window scope when focus has left the reader, while a nested modal or menu keeps ownership. The production mail-layouts.mjs run passed both Morph keyboard sequences: arrow selection then Escape, and opening a row with Enter then Escape. Evidence screenshots: artifacts/bash-mail/mail-layouts/ (390, 820 and 1440 px; light and dark).

Fixed on branch in commit 389d3d2c3e4bc0eaa17056fcd5a5d18392277a86. Morph now handles Escape at window scope when focus has left the reader, while a nested modal or menu keeps ownership. The production `mail-layouts.mjs` run passed both Morph keyboard sequences: arrow selection then Escape, and opening a row with Enter then Escape. Evidence screenshots: `artifacts/bash-mail/mail-layouts/` (390, 820 and 1440 px; light and dark).
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1269
No description provided.