Replace current wrapper claims with native architecture/security/build evidence, preserve historical documents, track all thirty pages and explicit release gates, correct brand attribution and provide the twelve-section delivery report without claiming completion. Native signing remains paused and Apple application/device validation outstanding.
4.7 KiB
Native validation
Incomplete native rebuild; not full PWA parity and not production-ready. The old browser results are historical only.
The new shipping surfaces are Android Compose and iOS SwiftUI. Current native
tests are in androidTestNative / androidTestNativeIntegration, JVM native policy
tests, and Swift production contracts/transport tests. Archived WebView tests are
not included in the native suites or counted toward native completion.
Executed locally — 2026-10-21
| Check | Observed result |
|---|---|
| Android JVM tests | 10 passed; zero failed/skipped |
| Native Compose UI/security suite, API 35 emulator | 6 passed; zero failed/skipped |
| Real-upstream native integration suite | 7 passed; zero failed/skipped (the same 6 onboarding tests plus 1 multi-step real-server scenario) |
| Native scenario | Login/dashboard, activity recreation, task/note/list/item creation and API readback, redirect refusal, logout and vault erasure |
| Integration screenshot export | Successful AGP test-output collection; native dashboard PNG opened and visually confirmed nonblank, synthetic data only |
| Android lint | Debug and release passed; newer-version recommendations remain informational |
| Android packages | Debug APK and unsigned release APK/AAB built successfully |
| Swift portable suite | 16 passed; actual Foundation transport/contracts and URL/metadata policy, not Apple UI/Keychain execution |
| Swift formatting/parsing | Strict format lint and parsing passed, including Apple-only sources |
| Script regressions | 10 runner-preflight, 8 JUnit-evidence and 5 screenshot-output tests passed |
| Repository/workflows | Source invariants, Python compilation, diff whitespace and actionlint for all 3 Gitea workflows passed |
| OSV | No listed advisories for 266 locked/direct Maven coordinates and plugins; not a security audit |
Environment: Linux/WSL, OpenJDK 17.0.20.1, Gradle 9.6.0, AGP 9.4.1,
Kotlin/Compose compiler 2.4.21, API 35 sdk_gphone64_x86_64 emulator, Swift 6.2.1.
The host-only Tink upgrade to 1.15.0 removes the observed obsolete generated
protobuf warning; the final Android validation log has no such warning.
The first integration attempt missed the scrolled-off login button. Later,
post-uninstall screenshot retrieval failed, and the first compositor capture was
black. The final test scrolls the real button, uses native-window capture with a
nonblank-pixel assertion and writes through PlatformTestStorageRegistry for AGP
collection. The latest complete harness exits successfully, not just its JUnit
subprocess. Ordinary builds retain screenshot protection.
The unmodified pinned upstream HTTPS/OIDC protocol fixture also passed TLS trust, metadata, cookies, CSRF and remote revocation checks. Its IdP exchange is not native SSO: the native client refuses the redirect and SSO remains pending.
Evidence paths in the local external build directory:
app/test-results/testDebugUnitTest/app/outputs/androidTest-results/connected/{debug,integration}/app/outputs/native-screenshots/native-dashboard.pngapp/reports/lint-results-{debug,release}.html- Logs:
/home/neste/yuvomi-native-validation.log,/home/neste/yuvomi-native-integration-final.log,/home/neste/yuvomi-native-swift.log.
No Apple SDK application build, simulator UI test or physical-device result is claimed from these Linux runs. The modified Mac bootstrap and remote APK upload still require inspection of the next actual Gitea run. Prior remote emulator jobs failed KVM preflight; the prerequisite was not weakened or counted as passing.
Commands
bash android/gradlew -p android testDebugUnitTest lintDebug lintRelease assembleDebug assembleRelease bundleRelease connectedDebugAndroidTest
python3 scripts/test-integration.py /path/to/pinned-upstream --android
swift test --package-path ios
swiftc -frontend -parse ios/Sources/*.swift ios/Tests/*.swift ios/UITests/*.swift
python3 scripts/check-repository.py
python3 scripts/check-dependencies.py
python3 scripts/lint-workflows.py /path/to/actionlint
On the local WSL checkout use YUVOMI_BUILD_DIR=/home/neste/yuvomi-native-build
and the SDK paths from continuation. Select only the authorized
test emulator with ANDROID_SERIAL=emulator-5554; unrelated/unauthorized attached
devices are not test targets.
External gates
Apple SDK builds, real supported devices/current engines, Android API 37, native SSO/reset/invite protocols, permission/role cases, files/offline/notifications, complete module and settings parity, visual baselines, accessibility and human security review remain open. Missing modules are listed in native parity, not silently represented as working.