Desktop and native tests
Host validation has two levels: static contracts and behavior in a launched host. Use both when a change reaches a bridge, plugin, lifecycle, packaging, or native presentation path.
Check host contracts
Section titled “Check host contracts”pnpm electron:verifypnpm android:verifypnpm ios:verifypnpm architecture:checkThese checks can prove source boundaries, manifests, bridge shape, and packaging configuration. They cannot prove an operating-system permission prompt, native Back, secure storage, app lifecycle, an Electron window, or an installed WebView.
Launch the affected host
Section titled “Launch the affected host”pnpm electron:e2e:smokepnpm electron:e2epnpm e2e:mobileTRINITY_E2E_HOMESERVER=synapse TRINITY_E2E_HOMESERVER_RUNTIME=native pnpm e2e:mobile:iospnpm nx run trinity-ios:verify-nativeElectron needs its separate dependencies and a usable display. Android needs the SDK and a managed emulator or device. iOS validation needs macOS and Xcode; the installed-app suite also needs the pinned iOS Simulator and runs Synapse and Caddy as host processes because it does not use Docker. Use the platform-specific project target to inspect exact prerequisites and outputs.
Browser mobile emulation provides useful responsive evidence but does not establish Capacitor, WebView, plugin, or native operating-system behavior. An unsigned simulator build proves something different from a signed device package; state that distinction in review evidence.
Keep proof outside the repository
Section titled “Keep proof outside the repository”Store screenshots, traces, simulator logs, and temporary packages in ignored output. Report which host and build configuration ran, the command and result, and every affected host that remained unavailable.
Read platform integrations before changing a bridge and diagnose failures before repeating a failed run.