feat(web): swipe session rows to archive or delete - #18
Closed
btli wants to merge 1 commit into
Closed
Conversation
Co-authored-by: omnigent <noreply@omnigent.ai> Signed-off-by: Bryan Li <bryan.li@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related issue
Supersedes closed PR omnigent-ai#3985. This is the second PR in the touch-interaction stack and depends on omnigent-ai#4839.
Summary
ELI5: A session row now behaves like a card on a phone: slide it sideways far enough to act, let go early to cancel, and deletion still asks before removing anything.
Test Plan
NODE_OPTIONS=--no-experimental-webstorage bun --cwd web test src/lib/swipeActionPreferences.test.ts src/shell/Sidebar.rowActions.test.tsx(85 passed)-tfilters; each failed against a targeted temporary production mutant and passed after restoring the committed implementation.bunx prettier --check ...andbunx oxlint --deny-warnings --report-unused-disable-directives ...on all five changed filesbun run buildandbun run build:embedJAVA_HOME='/Applications/Android Studio.app/Contents/jbr/Contents/Home' ANDROID_HOME='/Users/bryan.li/Library/Android/sdk' ./gradlew assembleDebugbun run type-checkand fulluv run pre-commit run --all-fileswere also run; both reach unrelated base/environment failures inlazyCodePlugin.ts(duplicate Streamdown/Shiki types), optional Python imports, VS Code typecheck, and lock normalization. All changed-file formatting/lint hooks pass.Demo
Android emulator video — Show taps enabled
The visible touch dot demonstrates swipe reveal/cancel, vertical gesture yielding, destructive delete confirmation with Cancel, and archive confirmation.
Type of change
Test coverage
Coverage notes
Focused tests cover preference parsing/storage, capability changes, thresholds, damping, direction mappings, archive/unarchive/delete actions, cancellation and capture release, mouse/pen/keyboard isolation, scrolling/drag/resize seams, accessibility, portals, and click suppression. Manual Android verification covers browser pointer behavior and native touch-action handling.
Changelog
Swipe session rows on touch devices to archive them or request deletion.