Both the ARM64 global runner and the new LXC runner had the ubuntu-latest
label, so Gitea could dispatch the Android build to the incompatible ARM
box. Use a unique 'paperscan' label so only the x86_64 LXC runner matches.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
androidx.security-crypto pulls in Tink, which references compile-only
com.google.errorprone.annotations.* classes; suppress the R8 missing-class
errors so assembleRelease succeeds.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The crop container uses contentAlignment=Center, so the draggable corner
handles were offset from the middle of the box rather than the top-left,
leaving them far from the actual document corners. Anchor them with
align(TopStart) to match the Canvas coordinate space, and add a white
border for visibility.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Native Kotlin/Compose app met CameraX + OpenCV randdetectie/perspectiefcorrectie,
multi-page PDF-export, en Paperless-ngx upload (of Android deelmenu). Alles lokaal.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>