Skip to content

Image preview zoom/rotate, wider form column, connect-rail centering#363

Merged
91jaeminjo merged 3 commits into
mainfrom
fix/regressions
Jun 16, 2026
Merged

Image preview zoom/rotate, wider form column, connect-rail centering#363
91jaeminjo merged 3 commits into
mainfrom
fix/regressions

Conversation

@91jaeminjo

Copy link
Copy Markdown
Collaborator

A few onboarding/room-preview UX regressions and polish, each as its own commit.

Changes

feat(room): zoomable/rotatable image previews via shared viewer

  • New shared ZoomableImage (lib/src/shared/zoomable_image.dart) used by both the workdir file preview and the citation chunk visualization.
  • Fixes the workdir images "can't zoom" report: enables InteractiveViewer.trackpadScrollCausesScale so previews zoom on a Mac trackpad two-finger scroll (mouse wheel and pinch already worked).
  • Intrinsic size is read from the decoded image so zoom scales the image content (not whitespace) for every format, not just PNG.
  • Adds quarter-turn rotation to workdir previews and a reset-to-original control that appears while zoomed.
  • Chunk visualization drops its now-redundant PNG-IHDR layout code; keeps base64 broken-image handling. Workdir keeps its download-capable corrupt-image placeholder.

feat(auth,quiz): widen form column to 600 via shared constant

  • New formColumnMaxWidth (lib/src/core/layout.dart) replaces the per-screen 400 caps in the connect flow, OAuth callback, and quiz start/results.
  • Wider viewports get a roomier column for server URLs / the server list / quiz content; narrower viewports still fill the available width.
  • A note flags the scattered content-width caps (this column, the chat timeline cap, the preview dialog caps) for later consolidation.

feat(auth): center the active step in the connect-flow rail

  • The rail scrolls to keep the active step centered as the flow advances; early/final steps that can't be centered clamp to the start/end.

Testing

  • flutter analyze: zero issues.
  • Full suite: 1692 tests pass (incl. new ZoomableImage, connect-rail centering, and workdir rotation tests).
  • Verified on web (Chrome): trackpad/mouse zoom, reset-to-original, rotation, 400-vs-600 form width, and rail centering at each step.

🤖 Generated with Claude Code

91jaeminjo and others added 3 commits June 16, 2026 17:48
Extract ZoomableImage, shared by the workdir file preview and the
citation chunk visualization. Enable trackpadScrollCausesScale so image
previews zoom on a trackpad two-finger scroll (previously only mouse
wheel and pinch zoomed), size the image to its exact aspect ratio for
every format, and add a reset-to-original control shown while zoomed.

Workdir previews gain rotation; the chunk visualization drops its
PNG-IHDR layout code (intrinsic size now comes from the decoded image)
while keeping base64 broken-image handling. Workdir keeps its
download-capable corrupt-image placeholder.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Introduce formColumnMaxWidth (lib/src/core/layout.dart) and use it for the
onboarding/connect flow, the OAuth callback, and the quiz start/results
views, replacing the per-screen 400 caps. Wider viewports get a roomier
column for server URLs, the server list, and quiz content; narrower
viewports still fill the available width.

A note in layout.dart flags the scattered content-width caps (this column,
the chat timeline cap, the preview dialog caps) for later consolidation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make ConnectFlowRail stateful and scroll the active node to the centre of
the strip on mount and whenever the current step changes, using
Scrollable.ensureVisible(alignment: 0.5). The scroll clamps to its bounds,
so early steps (URL/Probe) stay pinned at the start and the final step pins
at the end when they can't be centred.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@91jaeminjo 91jaeminjo merged commit 90e39fb into main Jun 16, 2026
5 checks passed
@91jaeminjo 91jaeminjo deleted the fix/regressions branch June 16, 2026 22:51
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