AI-Powered App Categorization for Lawnchair 16 (16-dev branch).
Project at /data/data/com.termux/files/home/AutoCat/. Builds via GitHub Actions only.
Living document — update at start of every AI session.
- Release APK workflow —
build_release_apk.ymladded (Jul 4); verify signing works end-to-end in CI - ktlint — spotlessCheck passes after
0362ed5562; confirm clean on next PR
- PWA / Web shortcut categorization — implemented in
6e610bf35d; test on device with real shortcuts - Smart Dock + GenAI folder naming —
223e635450; test GenAI provider key flow - Zen Mode —
8e430edc66; test Dynamic Focus Categories toggling - Submodule
platform_frameworks_libs_systemui— bumped to latest 16-dev (1da701515f); watch for upstream breaking changes
- PWA settings toggle in onboarding setup screens — Antigravity session noted this as next priority
- LLM provider selection — ensure all 4 providers (Google AI, OpenAI, Anthropic, etc.) surface correctly in settings
- Fixed ClassCastException in FloatingHeaderView (Issue #84) — Updated
mTabLayoutandgetTabLayout()inFloatingHeaderView.javato typeViewto safely support Jetpack Compose-basedAppTabsHeaderView. - Implemented Battery Saver & Wi-Fi logic for LLM categorization (Issue #79) — Created
llmMinBatteryLevelpreference,LLMUtils.getBatteryLevel(), andLLMCategorizer.checkConstraints()to enforce Wi-Fi, charging, and battery level thresholds before calling LLMs. Added battery threshold slider toLLMSettingsPreferences.kt. - Added PWA / Web Shortcut categorization toggle in onboarding — Added PWA toggle control to
SmartFeaturesStepinSmartCategoriesOnboardingPreferences.kt. - Spotless check — Ran
./gradlew spotlessApplyand confirmed./gradlew spotlessCheckpasses.
- Added
CLAUDE.md(build commands, branch/submodule/signing rules) andscripts/dev/(ci-status.sh,ci-build.sh,fetch-apk.sh— all GH-Actions-based, no local SDK). Uncommitted — review and commit.
Commits: 8e430edc66 through 1da701515f (9 commits)
Done:
- Zen Mode (
8e430edc66) — Dynamic Focus Categories feature implemented - Smart Dock + GenAI Folder Naming (
223e635450) — settings UI included - Seamless PWA and Web Shortcut Categorization (
6e610bf35d) — apps that are shortcuts/PWAs now categorized - Revert android.newDsl + groovy syntax (
f57dc44d8a) — caused baselineprofile plugin failure; reverted - Missing DisplayLibBackground for KSP (
764bad237e) — added - ktlint violations resolved (
0362ed5562) — spotlessCheck now passes - Release APK workflow (
840ba290cc) —build_release_apk.ymladded; auto GitHub Releases - Signing step YAML fix (
9c009d1cde) - platform_frameworks_libs_systemui submodule (
1da701515f) — bumped to latest 16-dev
Notes:
- Session started with "what github repo other than obtainium+ and shizuku+ should we work on?" → AutoCat
- Also checked Sentry + GitHub issues; commented and closed resolved ones as "— Claude"
- Session hit no spending limits; build status checked but not confirmed green at end
Commits: cca50dec05, ea68ed2668
Done:
- Fix: correctly apply PR 100 features (
cca50dec05) — PR 100 features were not fully applied; corrected - Home screen folder sync + Smartspace bug (
ea68ed2668) —WorkspaceItemSpaceFindernow respects Smartspace row on first screen;CategoryFolderSyncServicesyncs to both app drawer and home screen - Proot environment fix — Gemini diagnosed why
claudeCLI was failing from within PRoot (proot nesting detection); documented fix inGEMINI.md - Build note — documented "always build with GitHub Actions" in project files
Commits: fdfd95e627, 46fd54cd10
Done:
- Merge PR 39 (
46fd54cd10) — Fix addFrameworkJar build logic - Merge PR 100 (
fdfd95e627) — base integration
Commits: up to 5024fa1196 (May 6) — critical crash fixes and robustness improvements