Ian MacLeod
6ae8dcf6e1
Add TUI building blocks for inline async question editing ( #42889 )
...
## What changed
- Introduce an async-question editor component with per-question drafts, navigation, replay deduplication, and submit or queue handling using the shared composer.
- Add bounded `AnsweredQuestion` framing that truncates question text at a UTF-8 boundary and flattens line breaks before prepending it to an answer.
- Add `prompt_stack_back` and `skip_question` keybinding actions and the `tui.question_esc_back` setting. Normalize `Ctrl+]` and `Ctrl+5` for key matching and conflict detection, and let default question shortcuts yield to explicit bindings.
- Flush buffered typing in both the main composer and the covering view so background input cannot keep the draw loop waiting.
The async-question component is not yet connected to the TUI event flow.
## Testing
Add regression coverage for bounded Unicode question framing, question-shortcut conflicts, and paste-buffer flushing in background and covering editors.
GitOrigin-RevId: 4098043cf588ddafc05c27505645495edd690cb9
2026-09-04 23:56:25 +00:00
..
2026-07-29 13:53:15 +00:00
2026-07-23 19:19:35 +00:00
2026-07-21 22:44:43 +00:00
2026-08-24 22:40:35 +00:00
2026-09-04 21:17:25 +00:00
2026-07-29 13:53:15 +00:00
2026-09-04 21:17:25 +00:00
2026-09-03 01:26:35 +00:00
2026-09-03 01:26:35 +00:00
2026-09-04 21:17:25 +00:00
2026-07-30 19:47:30 +00:00
2026-09-03 06:02:25 +00:00
2026-09-04 03:40:37 +00:00
2026-08-20 08:10:08 +00:00
2026-08-31 13:44:12 +00:00
2026-08-31 13:44:12 +00:00
2026-09-03 23:20:54 +00:00
2026-08-24 21:39:48 +00:00
2026-09-02 21:50:51 +00:00
2026-08-11 03:39:02 +00:00
2026-08-14 05:03:39 +00:00
2026-08-17 22:37:14 +00:00
2026-09-04 20:48:16 +00:00
2026-09-02 20:07:11 +00:00
2026-09-03 01:46:37 +00:00
2026-08-28 19:44:50 +00:00
2026-08-29 02:52:58 +00:00
2026-09-01 17:17:45 +00:00
2026-09-01 01:00:50 +00:00
2026-09-01 01:00:50 +00:00
2026-09-04 12:56:26 +00:00
2026-08-18 23:47:00 +00:00
2026-08-13 23:13:37 +00:00
2026-08-25 21:20:51 +00:00
2026-09-03 18:36:58 +00:00
2026-08-29 02:46:06 +00:00
2026-09-04 23:56:25 +00:00
2026-08-31 21:27:51 +00:00
2026-09-02 01:06:18 +00:00
2026-09-04 23:56:25 +00:00
2026-09-04 23:56:25 +00:00
2026-09-03 23:20:54 +00:00
2026-09-02 18:34:27 +00:00
2026-08-07 11:30:17 +00:00
2026-08-13 00:00:16 +00:00
2026-09-04 21:17:25 +00:00
2026-09-04 23:06:00 +00:00
2026-09-02 21:58:58 +00:00
2026-08-17 04:37:50 +00:00
2026-09-04 21:07:14 +00:00
2026-09-02 15:07:11 +00:00
2026-09-04 10:22:43 +00:00
2026-09-04 18:02:08 +00:00
2026-07-31 21:37:56 +00:00
2026-08-27 20:44:47 +00:00
2026-09-02 03:46:24 +00:00
2026-09-04 20:27:18 +00:00
2026-09-04 21:07:14 +00:00
2026-09-01 18:02:27 +00:00
2026-09-04 12:56:26 +00:00
2026-09-01 15:12:53 +00:00
2026-08-26 23:41:18 +00:00
2026-07-22 04:17:34 +00:00
2026-08-25 21:08:22 +00:00
2026-09-03 23:20:54 +00:00
2026-09-02 21:50:51 +00:00
2026-09-03 21:21:09 +00:00
2026-09-03 21:21:09 +00:00
2026-09-04 22:47:01 +00:00
2026-09-04 20:09:04 +00:00
2026-09-04 12:08:02 +00:00
2026-07-30 04:26:36 +00:00
2026-09-04 23:06:00 +00:00
2026-09-01 17:17:45 +00:00
2026-09-01 18:02:27 +00:00
2026-08-25 15:50:19 +00:00
2026-09-04 22:11:14 +00:00
2026-09-04 05:07:02 +00:00
2026-08-26 17:45:42 +00:00
2026-08-21 16:45:05 +00:00
2026-09-04 13:35:41 +00:00
2026-09-04 21:17:25 +00:00
2026-08-28 01:14:02 +00:00
2026-09-04 20:09:04 +00:00
2026-08-10 15:43:10 +00:00
2026-09-01 18:24:56 +00:00
2026-08-08 16:58:26 +00:00
2026-09-03 01:33:32 +00:00
2026-09-04 21:17:25 +00:00
2026-09-02 18:34:27 +00:00
2026-09-04 23:56:25 +00:00
2026-09-04 21:17:25 +00:00
2026-09-02 02:09:35 +00:00
2026-09-04 23:56:25 +00:00
2026-09-02 18:42:06 +00:00
2026-09-04 01:56:38 +00:00
2026-07-22 16:18:08 +00:00
2026-09-04 05:07:02 +00:00
2026-09-03 20:01:07 +00:00
2026-09-04 19:40:01 +00:00
2026-09-02 22:19:51 +00:00
2026-08-15 14:31:04 +00:00
2026-09-04 01:56:38 +00:00
2026-09-04 23:56:25 +00:00
2026-09-04 20:48:16 +00:00
2026-07-28 20:49:22 +00:00
2026-07-29 13:53:15 +00:00
2026-09-04 05:07:02 +00:00