Implemented directly at human product owner's direction, independent of Codex's separate uncommitted attempt at the same task (not read or referenced here). - CommitDetail (reusing CommitSummary) with per-file added/modified/ deleted/renamed/other status; deleted-author and missing-rename-path cases handled without crashing or inventing data. - BoundedPatch for commit and comparison diffs, sourced from Gitea's .diff raw-text endpoints (JSON commit/compare objects only carry file status, not diff content); byte limit then line limit, both constructor-injected and validated positive. - Comparison uses one combined base...head path segment, built by concatenating both refs before a single addPathSegment call so each is escaped exactly once; pagination computed locally since Gitea's compare endpoint has no server-side paging. - Reuses Page<T> and ApiFailure; no put/delete/postForm call anywhere in the file (read-only, as required). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
UBGitea
Android client for the Ubisam Paju Gitea instance.
The repository currently contains the engineering harness that governs collaborative development by Codex and Claude. Product code will be bootstrapped through the tasks under tasks/.
Start here
- Read
AGENTS.md. - Read
docs/product.mdanddocs/architecture.md. - Select one task from
tasks/. - Assign one writer and one independent reviewer.
- 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 with Android SDK 36 installed 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%