Repository navigation
Remove the Capacitor iOS shell - #121
Conversation
Expo app for iPhone and iPad replacing the Capacitor shell, with the eight approved mock screens and their HTML sources, listed under Backlog in plans/README.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The Capacitor shell never shipped. This deletes ios/, capacitor.config.ts, the eight @capacitor/* packages and the ios:build and ios:open scripts, the native runtime and app URL listener, the native branches in src/lib/native.ts, the capacitor-native CSS rules, the capacitor Vite mode, and the capacitor://localhost origin in the CORS, checkout and workspace-invite allowlists. Docs and tests that described the shell go with it. The website is unchanged: every removed branch was false on the web, so external links, OAuth and Stripe redirects, telemetry and the service worker take the same paths as before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (14)
📒 Files selected for processing (48)
💤 Files with no reviewable changes (29)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe PR removes the Capacitor iOS app, its web runtime integrations, and its Capacitor-specific CORS and redirect allowances. It updates platform documentation and adds a plan and HTML mockups for a proposed Expo/React Native iOS app. ChangesiOS platform transition
Estimated code review effort: 3 (Moderate) | ~25 minutes
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Essentials by visiting https://app.coderabbit.ai/settings/billing. Comment |
|
Website-unchanged evidence at
The images below show production on the left, this branch in the middle, and the pixel diff on the right (a blank diff means no change). The Vercel previews built for both projects but sit behind SSO, so the comparison uses a local build instead. |
|
Review record for Codex (gpt-6.1-sol, extra-high effort, detached snapshot at Opus 5.5 (high effort, extra review): approve with four nits, no blockers. Dispositions:
Noted outside this PR: the hosted Supabase Auth redirect allowlist may still hold the old Copilot reported it was out of review quota, and GitHub Actions did not start any job (billing), so the review of record is the Codex round and the checks are the local run in the description. |
|
Production follow-through for merge commit
|



The Capacitor iOS app never shipped, and the native app plan replaces it with an Expo app in later PRs. This PR deletes the shell so the next PRs start from a web-only repo. The website behaves the same as before.
Removed:
ios/,capacitor.config.ts, the eight@capacitor/*packages with their 64 transitive dependencies, and theios:buildandios:openscripts. The lockfile diff is removals plus dev and peer flags; no other package changed version.src/native-runtime.ts,src/native-app-url-listener.ts, and the native branches insrc/lib/native.ts.openExternalUrl,getWebAppRedirectUrlandgetOAuthRedirectUrlkeep their web code paths unchanged. TheisNativeApp()guards insrc/main.tsxandsrc/register-service-worker.tswere always false in a browser, so dropping them changes nothing..capacitor-nativeCSS block. Thenative-safe-*utilities thatAppLayoutuses stay and compute to the same values as before, because the custom properties they read were only set under the deleted class.capacitorVite mode (relative base and the canonical-shell plugin exception).capacitor://localhostorigin from the shared CORS list, the checkout redirect allowlist and workspace invites. The merge does not deploy Edge Functions, so production keeps one dead allowlist entry until the next function deploy.ios/App/CapApp-SPM/with its test case.ios/entries intsconfig.node.jsonandeslint.config.js.Left alone: the structured data in
index.htmlstill lists iOS as an operating system. Website content is out of scope here, and the Expo app will make it true again.The first commit adds the plan, plans/2026-10-08-native-ios-app.md, with the approved mocks.
GitHub Actions is not running jobs on this account right now (the Quality run on
mainat 15:19 UTC today failed in two seconds with "recent account payments have failed or your spending limit needs to be increased"). The checks below ran locally atde1bfdbon Node 22.23.2, which proves the local commit and not a CI pass:npm run verifyexit 0: docs check, eslint, knip and repo rules, typecheck, 273 Vitest tests in 28 files, 30 collaboration tests, 333 Deno Edge Function tests, production build, service-worker offline test, and 30 Chromium smoke e2e tests.npx tsc --noEmit -p tsconfig.node.jsonexit 0.git grep -i -E 'capacitor|native-runtime|native-app-url-listener|isNativeApp'outsideplans/and the lockfile prints nothing.Not run: the full browser suite, WebKit, the database gate (no migrations here), staging, and the production canary.
🤖 Generated with Claude Code
Summary by CodeRabbit