Skip to content

fix: keep chat conversations vertically scrollable - #831

Open
yxlyx wants to merge 6 commits into
mainfrom
fix/chat-vertical-scroll
Open

fix: keep chat conversations vertically scrollable#831
yxlyx wants to merge 6 commits into
mainfrom
fix/chat-vertical-scroll

Conversation

@yxlyx

@yxlyx yxlyx commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Constrain the chat viewport and wrap long prose, links, and inline code.
  • Preserve local horizontal scrolling for wide code blocks and tables.
  • Add gesture, resizing, and narrow-pane regressions to desktop CI.
  • Repair separate package, cancellation, pointer-targeting, and transport-test blockers in separate commits.

Why

Unbroken content could widen the transcript and let conversations shift sideways. Wrapping text and containing wide blocks keeps content readable; hiding overflow alone would leave text clipped. The change preserves normal vertical scrolling without intercepting input events.

The package smoke matches fixture versions to dependency pins and installs offline. The cancellation fixture enables directory iteration. Pointer tests wait for stable hit-tested targets. Transport checks distinguish a fresh connection’s observed warm-up anchor from a stale inference chain, retaining connection-replacement and full-history assertions. These test-only repairs unblock validation without changing published versions or runtime behavior.

Closes #827.
Closes #834.
Closes #835.
Closes #837.
Closes #846.

Unbroken assistant text could widen the transcript and allow sideways
scrolling. Constrain its width and wrap prose and inline content while
preserving local scrolling for wide code and tables, rather than clipping
unreadable content.

Add gesture, split-resize and narrow-pane regressions to desktop CI.

Fixes #827
The SDK and native package versions can differ. Building fixtures with
the SDK version lets dependency resolution select a released binary
instead of the fake executable, breaking the isolated package smoke.
Use each declared dependency pin without changing published versions.

Fixes #834
The package smoke uses local tarballs. Disallow registry fallback so a
fixture-resolution regression cannot substitute a released executable.
Finishing the recorder prunes activity files. Open the fixture directory
with iteration enabled so Linux can enumerate it instead of aborting on
a path-only directory handle.

Fixes #835
Record each mock connection prewarm response and permit only that anchor in fresh-socket assertions. Recovery and compaction legitimately bootstrap a new socket before sending full history, so rejecting every previous_response_id misclassifies valid recovery.

Keep socket replacement, stale-chain rejection, and full-history assertions intact. Report only connection and parent identifiers on mismatch rather than dumping complete request bodies.
Hover can move a portaled menu after coordinates are measured. Wait for stable geometry and verify the target before pressing, rather than clicking stale coordinates. Park the pointer before keyboard checks so hover does not change their selection.

Fixes #837
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment