5 Commits

Author SHA1 Message Date
b38ddc99e3 TASK-033 correction: starring needs write:user AND write:repository together
Two live-confirmed 403 responses (not source reading, which had already
given one wrong answer) showed /user/starred/{owner}/{repo} requires
BOTH scopes at once: requesting write:repository alone got
required=[write:user]; requesting write:user alone then got
required=[write:repository]. Both are now requested.

Added debug-build-only HTTP status/body logging (HttpTransport
.requireSuccess) and toggleFavorite failure logging, which is how this
was actually diagnosed -- ground truth from the server beats re-reading
Go route source through a summarizing tool. Required testOptions {
unitTests { isReturnDefaultValues = true } } in build.gradle.kts so
those Log calls don't throw inside plain JVM unit tests.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 00:08:20 +09:00
e219016998 TASK-026: run OAuth login/consent in a Custom Tab instead of the external browser
Login previously left the app entirely for a separate browser task. Now uses
androidx.browser Custom Tabs, which overlays the app's own activity instead of
switching away, and returns automatically on redirect. Deliberately not a
WebView, per RFC 8252: an in-app WebView could read the Gitea login form's
credentials directly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 20:27:23 +09:00
8a47d30ab5 feat: add read-only repository browsing API 2026-08-26 10:13:22 +09:00
a4451e9d16 feat: add Gitea login and repository list 2026-08-25 23:21:47 +09:00
75aa5f83e5 Bootstrap Android Compose application 2026-08-25 21:42:50 +09:00