* feat(plugins): enforce declared Paseo version requirements Treat manifests without a Paseo requirement as pre-0.8 plugins so the first breaking plugin release offers an explicit migration path. Check the daemon and app independently before plugin execution, and preserve installed Git revisions when updates are incompatible. * fix(nix): refresh dependency hash for plugin requirements * refactor(plugins): validate test manifest inputs and name compatibility input
Modal UI example
Install this directory as a local plugin, then open Modal examples from the sidebar or a workspace tab.
The examples demonstrate default and custom padding, a full-width body, author-owned ScrollView and FlatList scrolling, horizontal tabs, and clipboard actions with a keyboard-aware input. See the host UI reference for the API contract.
The browser regression installs this exact example in an isolated daemon:
cd packages/app
npx playwright test e2e/browser/plugin-modal-body.spec.ts --project=browser --workers=1
On Android, open each example and swipe through its content. In FlatList, use Jump to last row before expanding the sheet; row 100 should be visible. Drag the handle to expand the sheet. In Form, press Copy text, long-press the input, and choose Paste. The input should contain “Copied from Paseo”. With the system keyboard enabled, focusing the input should keep it visible.
These captures show Android copy/paste and custom padding on browser and wide native layouts. Android API 35 and Chromium were exercised; iOS and Electron were not tested.
| Android copy/paste | Browser custom padding | Wide Android custom padding |
|---|---|---|
![]() |
![]() |
![]() |


