Releases: eigenlux-ai/roamer
Releases · eigenlux-ai/roamer
Release list
v1.0.1
fix: keep the locale baseline when unenroll's restore fails unenroll tore down the enrollment and baseline unconditionally, ignoring applyAppLocale's result. When the restore write failed — Shizuku dying while the app picker was open (the entry point only samples shizukuGranted on click), or a binder error — the override stayed on the app while the state needed to undo it was gone: no longer enrolled, so sync() never revisits it, and no baseline left to restore from. That strands a per-app locale for good, breaking the "device clean" invariant. Gate the teardown on the write actually landing, so a later sync() / unenroll can finish the job. Checking applyAppLocale's return value rather than hasPermission() also covers binder failures, not just a missing Shizuku. Mirrors enroll's guard, and matches master-off, which stays recoverable precisely because it preserves baselines.
v1.0.0
ci: signed release APK via GitHub Actions - app/build.gradle.kts: add a release signingConfig populated from env vars (keystore lives in GitHub Secrets); a local release build without them stays unsigned instead of failing. Derive versionCode/versionName from CI env (git tag), falling back to 1 / "1.0" locally. - .github/workflows/release.yml: on a v* tag (or manual dispatch), set up JDK 21 + Android SDK, run unit tests, build assembleRelease, upload the APK artifact, and attach the signed APK to a GitHub Release. - .gitignore: exclude *.jks / *.keystore / keystore.properties.