Skip to content

Releases: nattaphat010447/sillytavern-android-launcher

STANDROID v0.7.0 — Extension Updates Support (Implement isomorphic-git)

Choose a tag to compare

@nattaphat010447 nattaphat010447 released this 30 Jun 19:13

Bug fixes

Extension Update failing with "refusing to merge unrelated histories"

  • The "Update Extension" button in SillyTavern threw GitResponseError: refusing to merge unrelated histories
  • Root cause: simple-git's git pull fails when the local extension repo and remote have diverged histories (common after Import User Data from backup)
  • Fixed: replaced git.pull() with fetch + force-reset (equivalent to git fetch && git reset --hard origin/<branch>) — no merge operation is attempted

STANDROID v0.6.0 — Extension Updates Support

Choose a tag to compare

@nattaphat010447 nattaphat010447 released this 05 Jun 18:25

What's New

Extension Updates Now Works

x86_64 support: Now runs on Android Emulator, BlissOS, ChromeOS, and Windows Subsystem for Android (WSA).

Per-ABI APK splits: Smaller downloads — choose only your device's architecture (~50 MB instead of ~140 MB for universal).

Fixed

  1. SELinux denied execute on shell wrappers → switched to symlinks pointing to nativeLibraryDir/*.so (executable context)
  2. Missing libpcre2-8.so → corrected Termux package name in setup script (libpcre2pcre2)
  3. Missing libgit-remote-https.so → Termux uses symlink; manually duplicated from http binary
  4. LD_LIBRARY_PATH not inherited by child processes → now set explicitly in ProcessBuilder.environment()
  5. SSL certificate errors: "trust anchors from /data/data/com.termux/..." → set GIT_SSL_CAPATH to Android system certs + http.sslCAPath git config
  6. libcurl.so requires libngtcp2_crypto_ossl.so (HTTP/3 QUIC) → added ELF remove_dt_needed() patcher to strip unused dependency (git never uses HTTP/3)
  7. bin_wrapper/ in cacheDir fails on some ROMs (noexec mount) → moved to filesDir/bin_wrapper/

Added

  • x86_64 ABI supportsetup-native-libs.py --abi x86_64 downloads Intel binaries for emulator/PC
    • Use --abi all to download both arm64-v8a and x86_64
  • APK splits per-ABI — separate APK for each architecture:
    • standroid-arm64-v8a-{debug|release}.apk (~50 MB)
    • standroid-armeabi-v7a-{debug|release}.apk (~45 MB)
    • standroid-x86_64-{debug|release}.apk (~50 MB)
    • standroid-universal-{debug|release}.apk (~140 MB, all ABIs)
  • libssh2.so — optional git SSH transport library
  • libngtcp2_crypto_ossl.so — QUIC crypto module (bundled from Termux libngtcp2 package)
  • remove_dt_needed() ELF patcher in setup-native-libs.py — strips unavailable/unused DT_NEEDED entries from shared libraries

Changed

  • bin_wrapper location — moved from cacheDir to filesDir (avoids noexec mount issues on some Android ROMs)
  • Build configuration — replaced productFlavors ("arm"/"x86") with splits.abi block for cleaner per-architecture outputs
  • applicationVariants.all custom naming logic added for APK outputs

STANDROID v0.5.0 — File Export & Config Editing

Choose a tag to compare

@nattaphat010447 nattaphat010447 released this 02 Jun 10:53

What's New

Full file download and SillyTavern export support

  • Clicking Export buttons in SillyTavern (for characters, presets, world info, chats) now opens Android's native file picker
  • You can choose to save your files to Documents, Downloads, Google Drive, SD card, or anywhere else

Config file editing support

  • You can now safely edit SillyTavern's config.yaml file directly from within the app
  • Accessible via Advanced Settings -> Edit config.yaml

STANDROID v0.4.0 — Import & Replace ST Data

Choose a tag to compare

@nattaphat010447 nattaphat010447 released this 24 May 17:06

What's new

Import User Data — Import SillyTavern backup ZIPs

  • Import backup ZIP files directly from Advanced Settings
  • Automatically extracts and merges user data
  • Real-time progress and logs
  • Server stops automatically before import

Replace SillyTavern from ZIP — Replace entire installation

  • Install custom, modified, or older SillyTavern versions from ZIP
  • Optional backup of existing data/
  • Fresh npm install after replacement
  • Real-time progress and logs

Updated Advanced Settings

  • TROUBLESHOOTING section now includes:
    1. Reinstall Dependencies
    2. Import User Data ->NEW
    3. Replace SillyTavern from ZIP ->NEW
    4. Full Reset

Built-in safety

  • Automatic server shutdown before operations
  • ZIP validation before processing
  • Cancel support with confirmation
  • Clear error handling and automatic cleanup

STANDROID v0.3.0 — Status bar overlapping fix

Choose a tag to compare

@nattaphat010447 nattaphat010447 released this 20 May 11:34

What's new

Fixed status bar overlapping SillyTavern UI on Android 15+

  • Android 15 (API 35) now enforces edge-to-edge rendering for all apps, causing the status bar (clock/battery area) to overlap the top of the SillyTavern interface
  • Fixed using WindowInsetsCompat API — the OS dynamically calculates the exact size of the status bar, navigation bar, and display cutout (notch) and applies padding automatically at runtime

Fixed white status bar on some devices

  • Fixed by wiring the application theme to the existing Theme.STAndroid
  • Status bar appearance now properly follows the STANDROID dark theme

STANDROID v0.2.0 — Dependencies re-install support

Choose a tag to compare

@nattaphat010447 nattaphat010447 released this 13 May 06:07

What's new

Live-log dialog for Reinstall Dependencies and Full Reset

  • Watch npm install output stream in real time while waiting
  • Title shows elapsed time: Reinstall Dependencies · 2:15
  • Stats header shows package count: 847 packages installed so far
  • Color-coded log lines: fetch (pink), cache (purple), warn (yellow), error (red), summary (green)
  • Cancel button with confirmation — cancelling immediately kills the Node child process
  • On completion, title changes to [OK] Reinstall Complete or [!!] Reinstall Failed

Dark-purple themed dialogs

  • All dialogs in the app now use the STANDROID dark-purple theme (dark surface, purple title, purple buttons)
  • No more system-default gray dialogs

STANDROID v0.1.0 — First release

Choose a tag to compare

@nattaphat010447 nattaphat010447 released this 12 May 10:22

[0.1.0] — 2026-05-12

Added

  • Auto-install SillyTavern via shallow git clone (JGit, staging branch)
  • npm dependency installation with automatic retry and exponential back-off
  • Import SillyTavern from an existing .zip backup
  • Persistent foreground service — ST keeps running when you switch apps
  • Full-screen WebView with complete JS, localStorage, and file-upload support
  • Loading overlay with real-time Node.js stdout/stderr log panel
  • Pull-to-refresh inside the WebView
  • Notification controls — Stop / Restart server from the notification shade
  • Auto-update on startup — git fetch + hard reset + npm install (optional, toggleable)
  • Settings screen — configurable server port, auto-update toggle
  • Advanced settings screen
  • Crash recovery — automatic server restart up to 3 times on unexpected exit
  • Dynamic Node.js heap size — 35% of device RAM, clamped to 512–2048 MB
  • NODE_COMPILE_CACHE — compiled bytecode cached across restarts for faster startup
  • Automatic port conflict resolution — finds next available port if default is in use
  • Android-safe config.yaml patching — disables browserLaunch and IPv6 on first boot
  • Async file logger — all Node.js output saved to files/logs/standroid.log
  • ABI-split APKs — separate arm64-v8a and armeabi-v7a builds for smaller download size

Technical

  • Kotlin + Gradle Kotlin DSL
  • minSdk 33 (Android 13) — POST_NOTIFICATIONS runtime permission
  • Node.js binary shipped as libnode.so via jniLibs/ (W^X workaround)
  • Native libraries sourced from Termux apt (libcares, libssl, libicu, libsqlite3, etc.)
  • R8 / ProGuard minification enabled for release builds