Skip to content

fix(web): stabilize mobile sidebar gestures and scrolling - #56

Merged
muggle-stack merged 1 commit into
masterfrom
fix/mobile-sidebar-motion
Oct 7, 2026
Merged

muggle-stack merged 1 commit into
masterfrom
fix/mobile-sidebar-motion

Conversation

@muggle-stack

Copy link
Copy Markdown
Owner

Mobile sidebar swipes could stall or snap during release and reversal, especially while a conversation streamed. On iOS, immediately flicking the session list after opening the sidebar could also stop its momentum midway. This change reduces rendering work during navigation and keeps the native scroll layer hierarchy stable across opening and animation cleanup.

  • Isolate sidebar state from the conversation owner and memoize unchanged Markdown while retaining current callbacks and streaming updates.
  • Reserve horizontal navigation before browser gesture arbitration, preserve native vertical/nested scrolling, and match release motion to finger velocity. Keep fade, blur, and rounded corners proportional to drag progress.
  • Keep mobile page layers stable at rest and fade a separate sidebar veil. Leave opening animations alone until horizontal intent is established, cancel abandoned long presses, and avoid redundant document scroll resets.
  • Portal image previews and paste editors to the document body so viewport overlays remain correctly positioned with the persistent transformed page. The initial uncompressed bundle cap increases by 1 KiB to accommodate less than 0.1 KiB of added portal code; compressed-size and request limits are unchanged.

Validation on the exact source snapshot committed here:

  • Full local gate: pytest 5342 passed, 4 expected skips; Ruff 0.15.13; Node 24 Web build, reliability tests and lint; shell syntax, ShellCheck, and diff checks all passed.
  • Chromium/WebKit sidebar diagnostics: 68 passed, 6 expected platform skips. Image, Mermaid, and paste overlay regressions: 14 passed.
  • Deployed snapshot passed runtime/build identity, connectivity, and service-stability checks. The maintainer's iPhone PWA retest confirms that immediate list scrolling no longer loses momentum and sidebar opening/closing is substantially smoother.

Known limitation: a small first-drag jitter remains on the maintainer's iPhone. This PR improves that behavior but does not claim to eliminate it. Desktop WebKit diagnostics do not replace physical iPhone frame-timing measurements.

- Isolate sidebar state and reuse unchanged Markdown during navigation.
- Preserve release velocity, gesture reversals, and progressive page effects.
- Keep mobile layers stable and protect native list momentum during opening.
- Portal viewport overlays and cover gestures, streaming, and scroll regressions.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T07:54:17.051154Z 3662827 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@muggle-stack

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Hooray!

Reviewed commit: 3662827392

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@muggle-stack
muggle-stack merged commit 2464713 into master Oct 7, 2026
2 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.

2 participants