GDALabs's picture
Upload 22 files
e60de0b verified
|
Raw History Blame Contribute Delete
1.89 kB

Standalone validation

Executable checks

  • ./gradlew :android-app:testDebugUnitTest: model manifest, checksum, GGUF import and UTF-8 stream cases.
  • ./gradlew :android-app:assembleDebug :android-app:assembleDebugAndroidTest :android-app:lintDebug.
  • python3 scripts/check-apk.py [--bundled] APK: packaged permission/ABI/alignment, JNI package and bundled model integrity checks.
  • apksigner verify APK.

Inherited host evidence is explicitly named inherited-* in tests/results; it is not reported as a new run. Retained native core source hashes establish whether it is unchanged.

Phone checklist (new package)

Install org.gdalabs.bonsailocal beside MeshMind. Check English/Japanese and light/dark modes, font scaling, keyboard/navigation insets and long chat scrolling. For the bundled APK, first launch should show local preparation, then Chat should offer Load model & start without requiring import. Load and generate synthetic text with radios off and USB disconnected. Test Stop, background cancellation, New chat confirmation, reset/repeat, restart, unload/reload and low-memory conditions. Record exact output, model hash, settings, time to first token, decode count/rate and peak process RSS. Do not collect private conversations.

The small APK should show a clear no-model state and allow local SAF import without broad storage permission. Wrong files/checksums/manifests must fail without activation. Delete model and conversation actions require confirmation. Loaded and installed states must be distinct.

Optional developer tests: install the matching test APK then run adb shell am instrument -w org.gdalabs.bonsailocal.test/androidx.test.runner.AndroidJUnitRunner. Model inference tests additionally require imported official Q2_0 and -e runModelTests true. No attached device/new-package instrumentation pass is claimed until actually executed.