Skip to content

feat(desktop): keep activity headers reachable - #2542

Merged
M4n5ter merged 1 commit into
mainfrom
feat/desktop-activity-card-sticky
Aug 9, 2026
Merged

M4n5ter merged 1 commit into
mainfrom
feat/desktop-activity-card-sticky

Conversation

@M4n5ter

@M4n5ter M4n5ter commented Aug 9, 2026

Copy link
Copy Markdown
Member

Summary

  • Keep expanded reasoning and tool activity headers sticky within their own activity card.
  • Stack expanded tool group and nested call headers at 8px and 32px.
  • Keep hover surfaces opaque and release sticky headers at each card boundary.
  • Add one high-value desktop E2E regression test for sticky positioning, hover rendering, collapse access, and boundary release.

Why

Long streamed reasoning and tool output pushed the collapse control far above the viewport. Users had to scroll back through the entire activity to collapse it.

Root cause

The disclosure headers remained in normal flow, the animated reasoning wrapper could become the sticky scroll ancestor, and the hover surface used transparency that allowed underlying content to bleed through.

Validation

  • npm --workspace @maka/desktop run build:renderer
  • npx biome check apps/desktop/e2e/fixtures.ts apps/desktop/e2e/activity-card-sticky.spec.ts apps/desktop/src/renderer/styles/chat-message.css packages/ui/src/astryx-chat-reasoning.tsx packages/ui/src/tool-activity.tsx
  • npx playwright test e2e/activity-card-sticky.spec.ts --config e2e/playwright.config.ts (1 passed)
  • Real long-output UX exercise with OpenCode Free DeepSeek V4 Flash

@M4n5ter
M4n5ter merged commit eb684bc into main Aug 9, 2026
21 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant