match folded activity-card spacing to the conversation cards (T-282)
The collapsed activity / agent-run cards (ClideHolderCard) wrapped themselves in 3px vertical margin, while the prose ConversationCards use 14px bottom / 0 top. So a folded card floated ~17px below the previous card but hugged the next one at 3px — the uneven gap the earlier bordered-padding tweak didn't address. Give the holder the same bottom-14 / top-0 margin. The holder-card golden is regenerated for the taller frame. The copy-button holder test parks its hover and advances past the tooltip show-delay so the (exit-uncancellable) Future.delayed timer fires instead of leaking. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -72,7 +72,10 @@ class _ClideHolderCardState extends State<ClideHolderCard> {
|
||||
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),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -114,6 +114,12 @@ void main() {
|
||||
expect(f.services.clipboard.readAs<String>(), '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 {
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Reference in New Issue
Block a user