dsh-mnemon v0.2.12
v0.2.12: Top-Layer Mobile Sheets
简体中文 | English | Capability map
v0.2.12 is a focused follow-up to v0.2.11 that fixes real-phone dialog occlusion, makes mobile-sheet motion continuous, and turns the sheet handle into a reliable drag-to-dismiss control.
Fixed
- All 15 Mnemon workspace action dialogs now use one shared
MnemonDialogcomponent and render through a body-level portal. The DSH navigation rail and other host stacking contexts can no longer cover the sheet edge or intercept its controls. - Mobile sheets expose a real 28px top drag area. Pulling far enough, or completing a deliberate downward flick, dismisses the dialog; a shorter gesture returns smoothly to rest.
- Header close, backdrop close, Escape, footer cancel, and drag dismissal share one coordinated exit path. Dialog state is removed only after the visible exit finishes.
- Long forms retain a fixed header and action footer while the body scrolls independently in portrait, narrow, and short-landscape viewports.
Motion and reliability
- Enter, exit, and snap-back motion uses compositor-friendly
transformandopacityanimations. The sheet continues from its current visual offset when a close or second drag begins, avoiding jumps between gesture and animation states. - Global pointer tracking keeps a gesture alive after the finger leaves the handle. Lost pointer capture, pointer cancellation, window blur, app switching, and visibility changes recover to a stable resting state.
- A new drag generation invalidates stale snap-back cleanup, so quickly grabbing the sheet again cannot be interrupted by the previous animation finishing late.
- Background scrolling is locked while a dialog is open and restored after every close path. Busy mutations still block dismissal, while reduced-motion and browsers without Web Animations receive a safe immediate fallback.
- Existing focus containment, initial focus, asynchronous focus handoff, and focus return behavior remain part of the shared component.
Safety and compatibility
- Storage formats, Provider connections, configuration keys, RPC permissions, public tool schemas, credentials, and server behavior are unchanged. Existing data requires no migration.
- The gesture is limited to the top handle in mobile-sheet layouts, leaving native vertical scrolling available inside the dialog body and leaving desktop dialogs unchanged.
- Updating dsh-mnemon and restarting the affected DSH profile is sufficient. A normal package downgrade restores the v0.2.11 client behavior if rollback is needed.
Verification
- The complete local verification passes with 369 tests; one Windows-only smoke test is skipped only on the non-Windows local run.
- Eight focused dialog regressions cover the body portal and scroll lock, animated close sequencing, distance dismissal, short-drag snap-back, blur recovery, rapid re-grab isolation, busy guards, and reduced-motion fallback.
- Structural coverage verifies the maximum top layer, global pointer listeners, coarse-pointer sizing, and every shared dialog call site.
- Real browser interaction at 390×844 and 667×375 covers an expanded host rail, left-edge hit testing, portrait and landscape scrolling, drag dismissal, snap-back, rapid re-grab, footer cancellation, and version-check states.
- Type checking, deterministic builds, Headless activation, package validation, publint, attw, and CI on Ubuntu and Windows pass.
See the v0.2.11 release notes for the previous patch release.