T23c: AI chat, input

- PromptInput: attachments and context above the field, the owner's tools and
  send below; Enter sends, Shift-Enter breaks the line; / offers commands and
  @ offers context over forms::Suggestions; files dropped on it attach behind a
  drop veil
- AttachmentButton, AttachmentChip with thumbnails and uploads, ContextChips
- VoiceInputButton and VoiceWaveform with a red dot and the time
- ParameterPanel, SystemPromptEditor, TokenCounter, CostEstimator
- forms: a Newline action on Shift-Enter keeps one-line fields to one line;
  replace_trigger moves beside Suggestions; choose and dropped shared
- gallery: composer, pickers and tuning
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 06:29:20 -04:00
1 parent fce38dec00
commit d362f08d41
17 files changed
+1562 -38

No files matched your search

+14
View File
@@ -299,3 +299,17 @@ fn a_range_gives_a_box_per_line_it_spans(cx: &mut TestAppContext) {
"the second line starts at the edge"
);
}
#[gpui::test]
fn shift_enter_breaks_only_a_field_of_many_lines(cx: &mut TestAppContext) {
let (fields, cx) = open(1, false, cx);
focus(&fields[0], cx);
cx.simulate_input("one line");
cx.simulate_keystrokes("shift-enter");
cx.run_until_parked();
assert_eq!(
text(&fields[0], cx),
"one line",
"a single line stays single"
);
}