exifcleaner-web/capacitor.config.ts
forgejo_admin e68a8141bf
All checks were successful
CI / Lint, Typecheck & Unit Tests (push) Successful in 27s
CI / E2E (Standalone single-file) (push) Successful in 1m13s
CI / E2E (Web) (push) Successful in 2m21s
feat(android): Capacitor APK wrapper + on-demand CI build (#156)
Closes #153.

- Capacitor v7 scaffold producing a sideloadable debug APK from dist/web/
- .github/workflows/build-android.yml — workflow_dispatch only; soft dependency on forgejo-stack/job-android via use_prebaked_image input (fast path ~3-5 min, fallback installs JDK + Android SDK at runtime)
- Privacy hardening: allowBackup=false, FileProvider removed, Google Services plugin reference removed, usesCleartextTraffic=false, dataExtractionRules deny-all
- INTERNET permission documented in docs/PRIVACY_GAPS.md (Capacitor requires it; CSP connect-src 'self' enforces no traffic)
- Branded launcher icons + splash regenerated from .resources/icon.png
- docs/android-apk.md updated with Q1-Q5 decisions + CI section
- docs/PRIVACY_GAPS.md updated with Android <=9 Downloads/ world-readable gap
- Plan: docs/superpowers/plans/2026-05-17-android-apk-and-ci.md

Q1-Q5 decisions:
- Q1 file output: accept Downloads/ (documented privacy gap on Android <=9)
- Q2 back button: Capacitor default (close on root)
- Q3 android/ placement: master
- Q4 CI: in scope, workflow_dispatch only
- Q5 min API: 23 (Capacitor 7 default)

Review rounds 1 and 2 closed all P0 + P1 findings. Three P2 polish items split to follow-ups.
2026-05-17 16:15:22 +04:00

12 lines
231 B
TypeScript

import type { CapacitorConfig } from "@capacitor/cli";
const config: CapacitorConfig = {
appId: "com.metascrub.app",
appName: "MetaScrub",
webDir: "dist/web",
server: {
androidScheme: "https",
},
};
export default config;