- .forgejo/workflows/build-apk.yml (Forgejo's location): on v* tag, build signed
APK using the Actions secrets and publish via the Forgejo API (curl + auto token),
no external action. Best-effort NDK install for the RN version.
- Remove the old .gitea workflow to avoid double runs.
- Bump app version to 0.1.1.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Camera recenter-on-search confirmed fixed (view-lock). Strip the temporary trace
logs; keep viewport tracking (needed for the fix). HTTP request logging now defaults
off — still toggleable in Account > Log requests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Client: server returns 200 + Status:"Error" on bad credentials; loginWith* now
throw LoginError with the server message instead of faking a signed-in state
- Map: uncontrolled camera positioned once on load + explicit actions only, so
Search/marker-tap/re-renders no longer snap back to the user's location
- Markers: always-dark high-contrast bubble + zone-colored dot (some zones report
a white BackgroundColor -> was white-on-white)
- Dark mode now switches map tiles to CARTO dark-matter
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Client: onUnauthorized hook; 401 clears the token and (in-app) bounces to sign-in
- Map: "My location" uses the native UserLocation fix + flyTo; safe-area insets on
the floating status bar / controls
- Enable edgeToEdgeEnabled (Android 15 forces it) so headers/back-arrow sit correctly
- App icon: brain-car launcher + adaptive icon
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- About screen surfaces getAbout() content; tapping the title 7x reveals
assets/joelangel.png (placeholder committed; replace with the real image)
- Correct UnifiedPush package to react-native-unifiedpush-connector (lazy-required)
- Fix expo-notifications NotificationBehavior (shouldShowAlert)
- Reachable via an ⓘ header button on the main tabs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Reverse-engineered ParkSmarter API client (TypeScript, live-verified) plus a
de-Googled Expo/React Native app for GrapheneOS: MapLibre meter map with GPS,
VisionCamera QR kiosk scanning with save/share, local session-expiry reminders,
UnifiedPush wiring, and Gitea CI to publish signed APKs for Obtainium.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>