amosblomqvist
5653a394ac
layered Esc: an open overlay claims Esc before the abort chain (owner 2026-10-04)
...
Esc over a mermaid focus, the plan popup, or the setup dialog opened the
question-dismiss confirm underneath — KeyboardShortcuts' window listener
registers first, so the overlays' own self-closing Esc listeners could
never outrun the lh:kbd-abort-turn dispatch. The state gate in ChatView
is the defense (the architecture's own pattern from the abort dialog):
escAbortTarget, exported pure, rules priority by stacking order — abort
confirm (claimed by its dialog) > mermaid (paints above plan) > plan >
setup (self-closing) > question > turn. The gate closes the overlay; the
overlays' own listeners stay (idempotent). Pinned in esc-layering.test.
2026-10-04 18:39:34 +03:00
..
2026-09-19 15:24:26 +03:00
2026-09-24 02:10:06 +03:00
2026-09-25 21:24:43 +03:00
2026-09-22 00:02:07 +03:00
2026-09-19 22:52:40 +03:00
2026-09-19 20:54:16 +03:00
2026-09-24 23:20:59 +03:00
2026-10-04 01:19:54 +03:00
2026-09-28 23:30:11 +03:00
2026-10-04 01:19:54 +03:00
2026-10-02 17:38:48 +03:00
2026-09-23 15:37:34 +03:00
2026-09-24 19:33:35 +03:00
2026-09-28 22:37:18 +03:00
2026-09-23 03:53:57 +03:00
2026-09-30 01:19:03 +03:00
2026-09-26 21:45:51 +03:00
2026-09-27 04:36:00 +03:00
2026-10-04 18:39:34 +03:00
2026-10-02 17:04:22 +03:00
2026-10-02 17:31:35 +03:00
2026-09-25 20:12:57 +03:00
2026-09-23 00:19:16 +03:00
2026-09-25 23:32:13 +03:00
2026-09-12 06:02:40 +03:00
2026-09-30 04:04:29 +03:00
2026-09-23 20:20:36 +03:00
2026-09-30 03:22:52 +03:00
2026-09-30 17:44:37 +03:00
2026-10-04 00:53:29 +03:00
2026-09-23 03:53:57 +03:00
2026-10-04 00:53:29 +03:00
2026-09-25 02:39:11 +03:00
2026-09-30 04:52:27 +03:00
2026-09-22 16:56:44 +03:00
2026-09-28 23:30:11 +03:00
2026-09-19 13:16:34 +03:00
2026-09-19 15:24:26 +03:00
2026-09-19 16:52:09 +03:00
2026-09-27 08:55:13 +03:00
2026-09-26 01:52:47 +03:00
2026-09-27 08:55:13 +03:00
2026-10-02 00:44:02 +03:00
2026-10-01 23:56:34 +03:00
2026-10-02 17:31:35 +03:00
2026-09-29 22:16:28 +03:00
2026-09-29 22:16:28 +03:00
2026-09-30 03:22:52 +03:00
2026-09-29 04:39:01 +03:00
2026-09-26 00:37:46 +03:00
2026-10-02 00:24:05 +03:00
2026-10-04 00:53:29 +03:00
2026-10-04 00:53:29 +03:00
2026-09-25 23:32:13 +03:00
2026-10-03 01:03:29 +03:00
2026-09-29 04:30:15 +03:00
2026-10-04 00:53:29 +03:00
2026-09-30 03:22:52 +03:00
2026-10-03 03:07:49 +03:00
2026-10-02 21:18:51 +03:00
2026-09-29 22:41:52 +03:00
2026-10-02 02:09:38 +03:00
2026-09-23 22:05:58 +03:00
2026-09-19 13:16:34 +03:00
2026-09-28 23:30:11 +03:00
2026-09-24 15:26:22 +03:00
2026-09-27 00:47:48 +03:00
2026-09-30 01:19:03 +03:00
2026-10-03 03:01:51 +03:00
2026-09-30 03:22:52 +03:00
2026-10-02 21:18:51 +03:00
2026-09-17 13:48:04 +03:00
2026-09-29 04:30:15 +03:00
2026-09-26 23:53:43 +03:00
2026-09-22 00:02:07 +03:00
2026-10-02 17:15:17 +03:00
2026-09-22 00:02:07 +03:00
2026-09-30 04:30:25 +03:00
2026-09-24 20:06:22 +03:00
2026-10-04 00:53:29 +03:00
2026-09-28 22:37:18 +03:00
2026-09-30 17:44:37 +03:00
2026-09-27 08:55:13 +03:00
2026-09-30 16:38:45 +03:00
2026-09-22 21:55:33 +03:00
2026-09-28 23:30:11 +03:00
2026-09-30 17:44:37 +03:00
2026-09-26 01:52:47 +03:00
2026-09-22 22:05:27 +03:00
2026-09-25 23:32:13 +03:00
2026-10-04 00:53:29 +03:00
2026-09-27 08:55:13 +03:00
2026-09-25 02:26:37 +03:00
2026-10-02 17:07:03 +03:00
2026-09-30 03:22:52 +03:00
2026-09-25 23:32:13 +03:00
2026-09-30 17:44:37 +03:00