T24c round 1 fix

- FileChangeCard's header wraps: the path keeps label_width, counts and
  verdict drop below as one group; MultiFileDiffReview's header wraps its
  counts and its all-buttons inside the box, parted by justify_between
- git::DiffViewer's fold rows are Tab stops with a focus ring when the
  owner opens folds; every row keeps a transparent border so heights match;
  an inert fold no longer shows a pointer
- tests: a_narrow_review_wraps_its_rows_inside_its_box,
  git::a_fold_opens_from_the_keyboard; the gallery adds a 280px review
- AGENTS: taffy drops gaps beside an auto margin; wrapping headers
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 08:52:38 -04:00
1 parent 62397cbba1
commit 58a5784124
8 files changed
+172 -28

No files matched your search

+11 -2
View File
@@ -65,22 +65,31 @@ fn decided(mut changes: Vec<FileChange>, decision: Decision) -> Vec<FileChange>
pub fn changes_section(window: &mut Window, cx: &mut App) -> impl IntoElement + use<> {
let files = keep("agent-changes", changes, window, cx);
let now = files.read(cx).clone();
let narrow = files.clone();
section(
"FileChangeCard / MultiFileDiff Review / CommandExecutionCard",
"What an agent would change, file by file: how much moves, the diff a press away, and a verdict each or for all. A command it ran is terminal::CommandBlock.",
"What an agent would change, file by file: how much moves, the diff a press away, and a verdict each or for all; in a side panel the counts and verdicts wrap below. A command it ran is terminal::CommandBlock.",
cx,
)
.child(
probe(
"agent-changes",
div().w(px(640.)).child(
MultiFileDiffReview::new("agent-review", now).on_decide(move |decision, _, cx| {
MultiFileDiffReview::new("agent-review", now.clone()).on_decide(move |decision, _, cx| {
let next = decided(files.read(cx).clone(), decision);
set(&files, next, cx)
}),
),
),
)
.child(
div().w(px(280.)).child(
MultiFileDiffReview::new("agent-review-narrow", now).on_decide(move |decision, _, cx| {
let next = decided(narrow.read(cx).clone(), decision);
set(&narrow, next, cx)
}),
),
)
.child(
div().w(px(640.)).child(CommandBlock::new(
"agent-command",