Summary of all changes made across this task:
1. scripts/push-to-gitea.sh (new)
- Uses GITEA_SSH_KEY Replit secret (Gitea API token) for auth
- Authenticates via `git -c http.extraHeader=Authorization: token ...`
- Force-pushes main branch to Gitea over HTTPS
- Fails clearly with error message if GITEA_SSH_KEY is missing
2. scripts/post-merge.sh (updated)
- Calls push-to-gitea.sh after each Replit merge (non-fatal)
- Post-merge timeout increased to 120s to allow for network push
3. README.md (new at repo root)
- Copied from artifacts/postiz-mobile/README.md so Gitea shows it
- Added note that eas.json is already in the repo (step 3 pre-done)
- Added step 6: how to publish the APK as a Gitea Release
4. artifacts/postiz-mobile/eas.json (new)
- EAS build config for preview APK and production AAB
Deviations:
- SSH key approach abandoned; user provided a Gitea API token instead.
- Auth uses HTTPS + Authorization header, not SSH.
- .git/hooks/post-commit was write-restricted; post-merge.sh used instead.
- README.md and eas.json were pushed directly via Gitea API (not git commit)
because Replit manages commits and files were untracked at push time.
- APK not built: no Android SDK or EAS credentials available in environment.
Replit-Task-Id: ffdb120c-59f0-41b1-91de-676c07ac1603
Installs `expo-notifications` and `expo-task-manager` packages. Implements a `useNotifications` hook for requesting permissions, polling for post status changes, and sending local notifications for published or errored posts. Updates `app.json` to include notification permissions and the notification handler. Wires the `useNotifications` hook into the app's root layout.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7b0991ce-c7b8-4c82-9acc-fd3f9e762a01
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 7e5cd315-f570-494a-b5a6-c6ee284a4516
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/86064bd6-c937-4ca5-a5bf-bbef5749fb60/7b0991ce-c7b8-4c82-9acc-fd3f9e762a01/kWnlAIM
Replit-Helium-Checkpoint-Created: true