cf36b2745742373104487f3c4533843a86537a8f
Both wave-4 workers hit the 5h session limit ~11 minutes in and were then lost to a sprite suspend. This commit preserves the work that landed before that, independently verified green (assembleDebug + testDebugUnitTest, 94 tests). F1-livesync: - LiveSyncTest + server/live-sync-test.sh: end-to-end exercise against a real PocketBase (auth, push with client ids, pull, tombstones, cover round-trip). Gated behind LIVE_SYNC=1 so the normal test task stays green with no server. - Fix: BookDto.authors must be nullable. PocketBase serializes an unset `json` field as literal null (unlike text/number, which come back ""/0), so decoding any real response with empty authors threw. Found by the live test; no fake had ever reproduced it. - Fix: cover upload derived its media type from the filename instead of hardcoding image/jpeg. F2-release: - ScreenFixtures + LibraryScreenPaparazziTest: library populated and empty, light and dark (4 PNGs). Still owed by wave 4: screenshots for the other five screens, release keystore + signed APK, top-level README. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016mTs3kQXQsQwonXpEq7aEw
Description
Android app for keeping track of your books.
2.8 MiB
Languages
Kotlin
88.3%
Shell
8.3%
JavaScript
3.1%
Dockerfile
0.3%