Notifications:
- VISIBILITY_PRIVATE on all channels and notifications
(hides task text from lockscreen)
- Remove setFullScreenIntent (requires USE_FULL_SCREEN_INTENT
permission; p1 channel already bypasses DND)
Auth:
- Clear cached token and server URL in memory on logout
via AuthRepository.onLogout callback
Offline queue:
- Replace manual JSON string interpolation with
kotlinx.serialization JsonObject/JsonPrimitive
(prevents JSON injection from memo content)
CI/CD:
- Pin all GitHub Actions to commit SHAs
- Add permissions: contents: read to build workflow
- Decode keystore via env var instead of inline expansion
- Sanitize tag name through env var in release upload
- Fix test task name: testAndroidHostTest
Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context)
Build workflow: runs tests + assembles debug APK on pull requests.
Release workflow: builds signed APK and uploads to GitHub release.
Signing config reads keystore from env vars (set by CI secrets).
Keystore files excluded from git.
Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context)