Releases: nattaphat010447/sillytavern-android-launcher
Releases · nattaphat010447/sillytavern-android-launcher
Release list
STANDROID v0.7.0 — Extension Updates Support (Implement isomorphic-git)
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'sgit pullfails 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 togit fetch && git reset --hard origin/<branch>) — no merge operation is attempted
STANDROID v0.6.0 — Extension Updates Support
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
- SELinux denied execute on shell wrappers → switched to symlinks pointing to
nativeLibraryDir/*.so(executable context) - Missing libpcre2-8.so → corrected Termux package name in setup script (
libpcre2→pcre2) - Missing libgit-remote-https.so → Termux uses symlink; manually duplicated from http binary
- LD_LIBRARY_PATH not inherited by child processes → now set explicitly in
ProcessBuilder.environment() - SSL certificate errors: "trust anchors from /data/data/com.termux/..." → set
GIT_SSL_CAPATHto Android system certs +http.sslCAPathgit config - 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) - bin_wrapper/ in cacheDir fails on some ROMs (noexec mount) → moved to
filesDir/bin_wrapper/
Added
- x86_64 ABI support —
setup-native-libs.py --abi x86_64downloads Intel binaries for emulator/PC- Use
--abi allto download both arm64-v8a and x86_64
- Use
- 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 librarylibngtcp2_crypto_ossl.so— QUIC crypto module (bundled from Termuxlibngtcp2package)remove_dt_needed()ELF patcher insetup-native-libs.py— strips unavailable/unused DT_NEEDED entries from shared libraries
Changed
- bin_wrapper location — moved from
cacheDirtofilesDir(avoids noexec mount issues on some Android ROMs) - Build configuration — replaced
productFlavors("arm"/"x86") withsplits.abiblock for cleaner per-architecture outputs applicationVariants.allcustom naming logic added for APK outputs
STANDROID v0.5.0 — File Export & Config Editing
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.yamlfile directly from within the app - Accessible via Advanced Settings -> Edit config.yaml
STANDROID v0.4.0 — Import & Replace ST Data
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 installafter replacement - Real-time progress and logs
Updated Advanced Settings
- TROUBLESHOOTING section now includes:
Reinstall DependenciesImport User Data->NEWReplace SillyTavern from ZIP->NEWFull 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
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
WindowInsetsCompatAPI — 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
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 Completeor[!!] 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
[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
.zipbackup - 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.yamlpatching — disablesbrowserLaunchand 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.soviajniLibs/(W^X workaround) - Native libraries sourced from Termux apt (libcares, libssl, libicu, libsqlite3, etc.)
- R8 / ProGuard minification enabled for release builds