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
|
### 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
|
- 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
|
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)
|
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'}',
|
label: '${widget.title}, ${widget.stepLabel}, ${_expanded ? 'expanded' : 'collapsed'}',
|
||||||
excludeSemantics: true,
|
excludeSemantics: true,
|
||||||
child: Padding(
|
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),
|
child: _expanded ? _expandedFrame(tokens) : _tickerRow(tokens),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -114,6 +114,12 @@ void main() {
|
|||||||
expect(f.services.clipboard.readAs<String>(), 'copied from a held card');
|
expect(f.services.clipboard.readAs<String>(), 'copied from a held card');
|
||||||
// And the holder stayed expanded (the copy tap wasn't a background toggle).
|
// And the holder stayed expanded (the copy tap wasn't a background toggle).
|
||||||
expect(find.bySemanticsLabel('Activity, 2 steps, expanded'), findsOneWidget);
|
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 {
|
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