Skip to content

dsh-mnemon v0.2.12

Choose a tag to compare

@Grivn Grivn released this 19 Aug 14:31
08aa4f5

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 MnemonDialog component 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 transform and opacity animations. 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.