Skip to content

fix: scroll snap-back in dashboard surfaces (#1012) - #1024

Merged
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/scroll-snap-back-1012
Sep 11, 2026
Merged

fix: scroll snap-back in dashboard surfaces (#1012)#1024
jeonghun-jj-lee merged 2 commits into
mainfrom
fix/scroll-snap-back-1012

Conversation

@jeonghun-jj-lee

Copy link
Copy Markdown
Contributor

Closes #1012

Summary

Three targeted fixes for the scroll-position-reset bug reported on WSL2 (linux-x64).

Fix 1 — Structural equality on sessionListDirectories consumers

  • Export arraysEqual utility from helpers.ts
  • Wire into projectDirectories memo (home.tsx) and new flyoutDirectories memo (session-header.tsx)
  • Prevents cascading refetches from fresh-array references (Cause A)

Fix 2 — Use .latest on widget/dashboard resources

  • Replace widgetsRaw() / dashboardRaw() with .latest in widgetInfos and dashboard memos
  • homeCardsLoading now gates on initial load only (no .latest yet), not any loading state
  • Prevents Show-gate unmount/remount during refetch (Cause B)

Fix 3 — Drop md: prefix from overflow-hidden on home shell

  • Unconditional clip at all widths (defensive — HomeDesign is not routed in v2)
  • Fixes Cause C

Implementation

All code changes are in the opencode fork branch fix/scroll-snap-back-1012. This PR carries the reviewed spec; the overlay sync and version pin will land after the fork branch merges.

Tests

Open question

The exact surface has not been confirmed — @bc037, a screen recording would resolve this.

Reviewed spec covering three root causes across four candidate surfaces:
- Cause A: sessionListDirectories fresh-array churn → arraysEqual utility
- Cause B: Show-gate unmount on refetch → .latest pattern
- Cause C: md:overflow-hidden gap → unconditional clip

Implementation lives in the opencode fork branch fix/scroll-snap-back-1012.
All 1151 fork tests + 3235 amicode tests pass.
@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

… in materialize

The overlay promotion at ce1877d wrote upstream_base as a raw commit SHA
(16747470f976...) instead of the tag name (v1.18.29). materialize.mjs
builds the upstream tarball URL as /archive/refs/tags/<value>.tar.gz,
which only works for actual tag names — a raw SHA returns 404.

Two fixes:
1. Restore upstream_base to 'v1.18.29' (the tag name).
2. Make materialize.mjs detect a raw hex SHA and use /archive/<sha>.tar.gz
   (the commit path) instead of /archive/refs/tags/ — so a future
   accidental SHA write doesn't break CI again.

Unblocks the vsix-gate CI job that has been failing on main since ce1877d.
@jeonghun-jj-lee
jeonghun-jj-lee marked this pull request as ready for review September 11, 2026 20:26
@jeonghun-jj-lee
jeonghun-jj-lee merged commit e26d9ac into main Sep 11, 2026
10 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.

BUG: Scrolling in development projects forces back to top upon scrolldown

1 participant