diff --git a/CHANGELOG.md b/CHANGELOG.md index e2c6fb12..c8907e7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -201,6 +201,9 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit. ### Fixed +- Folded activity and agent-run cards in the Claude conversation now use the + same bottom spacing as the prose cards around them, instead of sitting + cramped 3px below the next card. (T-282) - The welcome screen no longer overflows on a short or narrow window — its content scrolls when it can't fit and stays centred when it can, and a long git-branch name on a recent-project row now truncates with an ellipsis. (T-273) diff --git a/lib/builtin/claude/src/holder_card.dart b/lib/builtin/claude/src/holder_card.dart index 8f841682..83bd6697 100644 --- a/lib/builtin/claude/src/holder_card.dart +++ b/lib/builtin/claude/src/holder_card.dart @@ -72,7 +72,10 @@ class _ClideHolderCardState extends State { label: '${widget.title}, ${widget.stepLabel}, ${_expanded ? 'expanded' : 'collapsed'}', excludeSemantics: true, child: Padding( - padding: const EdgeInsets.symmetric(vertical: 3), + // Match ConversationCard's inter-card margin (bottom 14, no top) so a + // folded activity / agent-run card sits in the same rhythm as the prose + // cards around it — not crammed 3px below the next one (T-282). + padding: const EdgeInsets.only(bottom: 14), child: _expanded ? _expandedFrame(tokens) : _tickerRow(tokens), ), ); diff --git a/test/builtin/claude/holder_card_test.dart b/test/builtin/claude/holder_card_test.dart index 89a4cd60..0f3aa11c 100644 --- a/test/builtin/claude/holder_card_test.dart +++ b/test/builtin/claude/holder_card_test.dart @@ -114,6 +114,12 @@ void main() { expect(f.services.clipboard.readAs(), 'copied from a held card'); // And the holder stayed expanded (the copy tap wasn't a background toggle). expect(find.bySemanticsLabel('Activity, 2 steps, expanded'), findsOneWidget); + + // The hover starts a ClideTooltip show-delay (a Future.delayed that exit + // can't cancel). Move off and advance past the delay so it fires and leaves + // no pending timer at teardown. + await g.moveTo(const Offset(-100, -100)); + await tester.pump(const Duration(milliseconds: 600)); }); testWidgets('the explicit control is keyboard-focusable and toggles on Activate (a11y)', (tester) async { diff --git a/test/goldens/goldens/linux/holder_card.png b/test/goldens/goldens/linux/holder_card.png index 40053c31..155dbb87 100644 Binary files a/test/goldens/goldens/linux/holder_card.png and b/test/goldens/goldens/linux/holder_card.png differ