FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Fix iOS simulator test CI: correct scheme name and fail on errors by gmaclennan · Pull Request #7 · digidem/comapeo-core-react-native · GitHub

Fix iOS simulator test CI: correct scheme name and fail on errors - #7

Merged
gmaclennan merged 1 commit into
claude/ios-support-graceful-shutdown-GCAXbfrom
claude/add-ios-support-qQaOS
Mar 12, 2026
Merged

Fix iOS simulator test CI: correct scheme name and fail on errors#7
gmaclennan merged 1 commit into
claude/ios-support-graceful-shutdown-GCAXbfrom
claude/add-ios-support-qQaOS

Conversation

Copy link
Copy Markdown
Member
  • Rename SPM package from "ComapeoCoreTests" to "ComapeoCore" so the auto-generated xcodebuild scheme matches (-scheme ComapeoCore)
  • Add set -o pipefail so xcodebuild errors propagate through the pipe instead of being swallowed by tail
  • Add "Discover xcodebuild schemes" step to debug scheme name issues
  • Increase tail output from 50 to 100 lines for better error visibility

https://claude.ai/code/session_01PKvomnFyTYzSo5xn4k69DH

- Rename SPM package from "ComapeoCoreTests" to "ComapeoCore" so the
  auto-generated xcodebuild scheme matches (-scheme ComapeoCore)
- Add `set -o pipefail` so xcodebuild errors propagate through the pipe
  instead of being swallowed by `tail`
- Add "Discover xcodebuild schemes" step to debug scheme name issues
- Increase tail output from 50 to 100 lines for better error visibility

https://claude.ai/code/session_01PKvomnFyTYzSo5xn4k69DH
gmaclennan merged commit 20b7f88 into claude/ios-support-graceful-shutdown-GCAXb Mar 12, 2026
2 checks passed
gmaclennan deleted the claude/add-ios-support-qQaOS branch March 12, 2026 10:20
gmaclennan added a commit that referenced this pull request May 6, 2026
Addresses the high- and medium-priority issues from the
review subagent's pass over Phase 1+2a+2b:

Boot transaction lifecycle (was: review #1, #15)
- applyAndEmit now closes bootTx and drains in-flight phase
  spans on STOPPING / STOPPED transitions too — not just
  STARTED / ERROR. stop()-from-STARTING transitions to
  STOPPING (rule 3 of deriveLifecycleState) and bypassed
  both terminals; destroy() forcing STOPPED-via-stopRequested
  did the same. Status mapped: STARTED→ok, ERROR→
  internal_error, STOPPING/STOPPED→cancelled.
- startBootTransaction now passes a TransactionContext
  carrying TracesSamplingDecision(true, 1.0). The previous
  TransactionOptions-only setup didn't actually force
  sampling, so with the SDK default tracesSampleRate=0.0 the
  boot transaction was dropped before reaching the wire.

SentryConfig misconfig handling (was: review #3)
- Both Kotlin and Swift readers used to crash on (DSN-set,
  environment-missing) — meant to be "fail loud" but a stale
  prebuild from before the validation was added would crash
  every cold start with no recovery. Now log loud (System.err
  on Android since android.util.Log isn't mocked on JVM
  tests; NSLog on iOS) and return null (Sentry off). Updated
  test renamed to assert "returns null, doesn't throw".

Span op/description ordering (was: review #19)
- transaction.startChild(op, description) — op is the indexed
  dashboard column. Was passing ("boot", "boot.<phase>"),
  swapped to ("boot.<phase>", human-readable description) so
  the dashboard groups by the phase taxonomy that matches
  the bench backend's boot-spans.js helper.

Plugin idempotency (was: review #7)
- Previously, dropping `props.sentry` from the plugin
  registration left stale meta-data / plist entries from a
  previous prebuild (with `expo prebuild --no-clean`). Plugin
  now passes through a no-Sentry cleanup mod that strips
  every key it owns; consumer-owned keys (e.g. io.sentry.* set
  by @sentry/react-native's plugin) are untouched.

messageerror payload truncation (was: review #8)
- src/sentry.ts now truncates the wrapped error message to
  256 chars before forwarding to captureException. The
  control-frame parser surfaces offending input verbatim,
  which can include arbitrary bytes from a corrupted frame —
  truncating keeps Sentry events small and readable.

IPC + SEND_ERROR_NATIVE breadcrumbs/events (was: review #9, #10)
- NodeJSIPC's onConnectionStateChange callback wired in the
  FGS-side controlIpc construction; emits comapeo.ipc
  breadcrumbs at info (warning on Error). Per §7.4.5.
- SEND_ERROR_NATIVE_TIMEOUT_MS firing now captures a
  level=warning event with timeout:errorNativeForward tag.
  Per §7.4.4.

Logging swallowed surprises (was: review low-priority)
- SentryFgsBridge's empty `catch (t: Throwable) {}` blocks
  now Log.w so debug builds notice swallowed bridge / SDK
  bugs.

Post-init bridge tests (was: review #6)
- New SentryFgsBridgeImplTest spins up a real Sentry hub via
  the cross-platform Sentry.init(SentryOptions) path with an
  in-memory ITransport. Covers: addBreadcrumb (no envelope on
  its own), captureException + captureMessage (envelope
  enqueued), startBootTransaction with global
  tracesSampleRate=0.0 (must still reach transport thanks
  to the TracesSamplingDecision override — regression test
  for the §15 bug above), boot span lifecycle, finishSpan
  with cancelled status, unknown level fallback to INFO.

All Sentry-related tests pass: 25 cases across
SentryConfigTest (8), SentryFgsBridgeTest (10),
SentryFgsBridgeImplTest (7).

Verified locally:
- npm run lint clean
- npx tsc --noEmit clean
- ./gradlew :comapeo-core-react-native:testDebugUnitTest
  passes
- ./gradlew :comapeo-core-react-native:compileDebugKotlin
  succeeds with sentry-android on the compile classpath
gmaclennan added the maintenance Refactor / test / chore / ci / build (changelog) label Jun 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Refactor / test / chore / ci / build (changelog)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants


Back | FazBrowse Home | New Git URL