Measured on the product owner's phone over adb. The code workbench value, provided through a static composition local, was rebuilt on each root recomposition, which turned skipping off for all four tab screens on every move. It is remembered now. Looping animations stop while their page is off screen, the two repository lists stay composed side by side, and a repository's branches open beside the list instead of replacing it. First frame of a bottom tab move: 80-118 ms to 23-34 ms. The branches slide has not been measured on the device yet. Agent: main (opus) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UBGitea
Android client for the Ubisam Paju Gitea instance.
The application signs in with Gitea OAuth and lets employees browse repositories, branches, files, commit history and diffs, issues, pull requests and notifications. It is developed by Claude under the rules in AGENTS.md; every change goes through a task file under tasks/ and is recorded in docs/development-log.md.
Start here
- Read
AGENTS.md. - Read
docs/product.mdanddocs/architecture.md. - Select or write one task under
tasks/. - Record build and test evidence before marking the task complete.
OAuth uses Authorization Code with PKCE and does not use a client secret.
Local checks
Open the repository root in Android Studio, or use JDK 17 or later with Android SDK 36 installed (Android Studio's bundled jbr works as JAVA_HOME) and run:
./gradlew assembleDebug
./gradlew testDebugUnitTest
./gradlew lintDebug
The application uses ID com.ubisam.ubgitea and supports Android 9 (API 28) and later. See ADR-001.
Description
Languages
Kotlin
99.5%
PowerShell
0.5%