Skip to content

chore(native): iOS 16.4 floor, native Sentry request capture off, ACCESS_NETWORK_STATE - #2919

Merged
innolope-dev merged 1 commit into
devfrom
chore/native-floors-ios16-4
Sep 4, 2026
Merged

chore(native): iOS 16.4 floor, native Sentry request capture off, ACCESS_NETWORK_STATE#2919
innolope-dev merged 1 commit into
devfrom
chore/native-floors-ios16-4

Conversation

@innolope-dev

Copy link
Copy Markdown
Collaborator

Summary

Binary-only follow-ups from the 2026-09-01 native regression review (dev vs v1.1.0). No JS changes; nothing here ships over OTA — it takes effect at the next native release.

# Change Why
#2 IPHONEOS_DEPLOYMENT_TARGET 15.0 → 16.4, Package.swift .iOS(.v16); floors documented in docs/NATIVE-RELEASE.md The Tailwind v4 export keeps ~90% of the stylesheet inside @layer (WebKit ≥ 15.4), interpolates gradients in oklab (≥ 16.2) and puts the @property fallback inside a layer (≥ 16.4). iOS 15.x devices would get an unstyled app; the fleet is entirely ≥ 16.7, so nobody is cut off. Android keeps minSdk 24; the documented floor is Chrome WebView ≥ 111, guarded at runtime by the JS canary in the companion OTA PR.
#24 AppDelegate.swift: options.enableCaptureFailedRequests = false sentry-cocoa 9.26 captures failed requests by default, emitting an "HTTP Client Error 5xx" for every CapacitorHttp-fallback 5xx the JS layer already reports, under a second release namespace and without URL sanitising.
#26 AndroidManifest.xml: ACCESS_NETWORK_STATE Without it the WebView always reports navigator.onLine === true, so the net_online Sentry tag and the network-triage "offline" verdict are meaningless on Android. Normal permission, no prompt.

Companion OTA PR (JS fixes #0, #3#19, #22#28 plus the setup sign-in, home menu and back-button items) follows separately.

Verification

  • CI release lanes build the binary (xcodebuild / gradle); nothing to run locally.
  • After the next TestFlight build, App Store Connect should show minimum iOS 16.4.

…t capture, declare ACCESS_NETWORK_STATE

The Tailwind v4 stylesheet needs WebKit 16.4 (@layer, oklab gradients,
@Property), so the App Store must stop offering the binary to iOS 15.x.
sentry-cocoa 9.26 captures failed requests by default, duplicating every
5xx the JS layer already reports. Without ACCESS_NETWORK_STATE the WebView
always reports navigator.onLine=true, making the net_online tag meaningless
on Android.
@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
peanut-wallet Ready Ready Preview Sep 2, 2026 3:05am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Essentials

Run ID: a5af652f-d127-4dc3-89a9-8ff20d7ecd54

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 7081.84 → 7081.84 (0)
Findings: 0 net (+0 new, -0 resolved)

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • unit: 5069 ran, 0 failed, 0 skipped, 1.5m

📊 Coverage (unit)

metric %
statements 74.5%
branches 60.4%
functions 66.8%
lines 75.6%
⏱ 10 slowest test cases
time test
3.6s src/components/Card/share-asset/__tests__/shareAssetLayout.test.ts › never places two stickers in heavy overlap (broad seed sweep)
1.5s src/components/Profile/views/__tests__/ResidenceChangeModal.test.tsx › prefers the server value over a stale device mirror
1.5s src/components/Profile/views/__tests__/ResidenceChangeModal.test.tsx › saves the declared residence, refetches, and closes
1.5s src/components/Profile/views/__tests__/ResidenceChangeModal.test.tsx › swaps from the server value with no device mirror at all
1.2s src/components/Setup/Views/__tests__/Residence.test.tsx › lists sanctioned countries in the selector so residents can answer truthfully
1.2s src/components/Profile/views/__tests__/ResidenceChangeModal.test.tsx › promoting the second document country swaps the pair instead of dropping one
1.1s src/components/Profile/views/__tests__/ResidenceChangeModal.test.tsx › the change cooldown shows its date and blocks changing to another country, not re-saving
1.1s src/components/Profile/views/__tests__/ResidenceChangeModal.test.tsx › moving to a country in neither slot leaves the second document alone
1.0s src/hooks/query/__tests__/user.test.tsx › does NOT clear a token that rotated mid-request (stale 401 racing a fresh login)
1.0s src/components/Setup/Views/__tests__/Residence.test.tsx › reveals the second selector via the multi-doc link
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chip review — no blocking findings — this is not an approval

No actionable defects found in the pinned native-only diff. The platform floors, Sentry failed-request capture opt-out, and Android network-state permission are consistent with their release and runtime paths; CI is green at the exact head.

Checked clean

  • Pinned worktree HEAD and merge base matched the supplied head and base SHAs.
  • Reviewed all five changed files through correctness, security, adversarial, and slop passes.
  • Confirmed all four Xcode project deployment targets are 16.4 and Capacitor 8.2 regenerates the SwiftPM platform as iOS v16 from that project target during cap sync.
  • Confirmed Sentry Cocoa 9.26.0 defaults failed-request capture on and gates its network tracker on enableCaptureFailedRequests; the JS request wrapper separately reports non-OK responses.
  • Confirmed Android WebView enables network-state auto-detection when ACCESS_NETWORK_STATE is granted, and the edited manifest is valid XML.
  • All CI checks at the exact head completed successfully or were intentionally skipped; a duplicate cancelled bot-approval run has a successful counterpart.
  • Native archive was not run locally because Xcode is unavailable on this host; the iOS release workflow remains the binary compile gate.

Second opinion by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only, so treat its findings as advice.

Third opinion: did not run — claude-failed(1): Warning: no stdin data received in 3s, proceeding without it. If piping from a slow command, redirect stdin explicitly: < /dev/null to skip, or wait longer.. This review is one reviewer short.

Exact head: 7949b4a90814 · Context: repo, ci, upstream · Took 9m

@innolope-dev
innolope-dev merged commit 216e89f into dev Sep 4, 2026
22 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant