Local validation — Glosira 1.0.4 (versionCode 5), 2026-10-24
==========================================================

Build: PASS
  Gradle 8.11.1; OpenJDK 21.0.12.1; Android SDK 36 / Build-Tools 35.0.0.
  gradle :app:assembleRelease :app:lintRelease :app:testDebugUnitTest
  Latest full validation completed successfully in 5m 43s.

APK:
  ID: com.glosira.app.fdroid
  Version: 1.0.4 (5)
  Minimum SDK: 19; target SDK: 36
  Unsigned: apksigner reports missing signing manifest, as expected.
  ZIP CRC checks: PASS.
  Bytes: 738370
  SHA-256: 7c4f32fd2571e2a47ee07979847e86ea586a71564f9425a3d5a01604c76dc84c
  Artifacts are ignored build output, not part of the public source repository.

Functional tests: 3 passed, 0 failures/errors, no live service requests.
  Retry keeps the offline screen visible, blocks duplicate taps, and recovers
  on success. Successful loading resets rotation and hides the offline screen.
  A failed retry and the 12-second timeout both re-enable the button and stop
  the spinner. French accessibility descriptions are checked.
  The wordless content fits a 320x240dp viewport with a >=48dp touch target.
  User-Agent retains the legacy Android marker and adds the F-Droid version.
  Test WebViews are shadowed; no service users were created.

Lint: 0 errors; 18 warnings.
  {"GradleDependency": 3, "IconLauncherShape": 5, "KeyboardInaccessibleWidget": 1, "MonochromeLauncherIcon": 2, "Overdraw": 1, "UnusedAttribute": 2, "UnusedResources": 1, "UseKtx": 3}
  KeyboardInaccessibleWidget concerns the noninteractive touch-blocking overlay;
  the actual retry control is focusable and has a Button accessibility role.
  Older AndroidX versions retain API 19 support. No blanket lint suppression.
  The 3 previous hardcoded offline text warnings are gone. GLOSIRA is explicitly
  non-translatable; TalkBack descriptions have six locales and English fallback.

Source audit:
  Allowlisted shared export: 51 files; editable offline/retry SVGs included.
  No production signing config, keystore or server credentials were exported.
  Source-hash/public-tree checks passed. Website APK updater remains absent.
  Release metadata and changelog identify 1.0.4 / 5.

Limits:
  A real emulator run was attempted but this host lacks KVM acceleration;
  device behavior was tested through Robolectric, not a physical device.
  Robolectric reported a temporary font-directory cleanup warning after its
  tests passed; Gradle still exited successfully. No application failure.
  F-Droid server build/lint and reproducibility certification have not run.
  Owner-approved licensing and release tag remain pending.
  Source repository is now public at https://git.glosira.com/.
  No application/backend rollout was performed.

Clean-checkout verification — 2026-10-24
--------------------------------------
Commit ceb91a2849a4804d9c33091bfb7965daf6b4774f built from an isolated Git clone.
assembleRelease, lintRelease and testDebugUnitTest: PASS (4m 57s, 74 tasks).
All 3 offline-screen/User-Agent tests passed; no live service accounts created.
User-Agent includes glosiraapp5 GlosiraFdroid/1.0.4.
Unsigned APK SHA-256: 0d71001dbc0180cf7f15cca73ae95860f3350d7b1aa2eaaa8edf61b856f61ae5
Later public-host documentation edits do not alter build inputs.
Anonymous HTTPS clone and Git object integrity checks also passed.
