mirror of
https://github.com/openai/codex.git
synced 2026-11-09 08:40:33 +00:00
## 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
19 lines
485 B
Rust
19 lines
485 B
Rust
//! Bounds and Unicode handling for model-authored question framing.
|
|
|
|
use super::*;
|
|
use pretty_assertions::assert_eq;
|
|
|
|
#[test]
|
|
fn question_context_is_bounded_and_keeps_unicode_boundaries() {
|
|
let text = "é\n".repeat(1_000);
|
|
let rendered = AnsweredQuestion::new(&text).render();
|
|
assert!(rendered.len() <= 516);
|
|
assert_eq!(
|
|
rendered,
|
|
format!(
|
|
"> {}\n\n",
|
|
text[..text.floor_char_boundary(512)].replace('\n', " ")
|
|
)
|
|
);
|
|
}
|