CLAUDE LABJP
FORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as OctoberFORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as October
Articles/Claude Code
Claude Code/2026-05-24Advanced

Automating iOS Crashlytics Triage with Claude Code — A Production Pipeline from dSYM Symbolication to Draft PR

How I rebuilt iOS crash triage at our 50M+ download app studio: Firebase Crashlytics issues flow into a Cloud Functions + Claude Code pipeline that handles dSYM symbolication, blast-radius estimation, and a draft fix PR in under 90 seconds. Real numbers, real code, real lessons.

Claude Code196iOS24Crashlytics8Firebase4Incident Response2Indie Dev22Production23

Premium Article

It was nearly midnight in April 2026 when three new crashes hit our Slack from Firebase Crashlytics for the iOS build of Beautiful HD Wallpapers. The stack traces were unsymbolicated — just <redacted> and 0x0000000104a3b2c4 repeating. There was no way to act on them from a phone. Our process at the time required me to open Xcode on a Mac, pull the dSYM, walk git blame, file an internal issue, and revisit it the next morning. MTTD (Mean Time to Detect) sat around 2 hours 30 minutes; MTTR hovered at nine hours.

The pipeline I'm describing here is what replaced that loop. As one person running a 50M+ download app catalog alongside an art practice and four technical blogs, the cost of doing this work by hand at midnight had become untenable. After three weeks of production use and 67 issues processed, I want to share the architecture, the code, and the numbers — three views of the same system — so you can adapt it without making the mistakes I made in week one.


Why the Crashlytics dashboard alone stops scaling

Crashlytics gives you the basics: crash counts, affected users, the first version a crash appeared in, the device distribution. For most of the past decade that has been enough. But at our current scale — roughly 14 titles, 15 to 20 fresh issues per week including non-fatals — the bottleneck is no longer "seeing" issues. It is deciding which ones deserve a midnight response and which are existing OS bugs, ad-SDK internals we can't touch, or recurrences of known issues already on the backlog.

Crashlytics auto-clusters identical stacks, but the question we actually care about is contextual: does this stack correlate with the SwiftUI migration shipped in v2.3.1? Has it surged in the last 24 hours? Is it materially affecting revenue? Answering those requires cross-referencing GitHub history, App Store Connect financials, and an internal issue log. Claude Code is unusually good at exactly that kind of cross-document reasoning when given a tight prompt and limited tools.

There is also something I'll admit honestly: I grew up with both grandfathers as miyadaiku — temple carpenters — and the inherited reflex is that doing the careful manual work yourself is a form of integrity. That reflex serves me well in art and in code review. It does not serve me at 1 a.m. on a Tuesday. The pipeline below is the compromise: keep human judgment in the loop where it matters, and let a system handle the mechanical correlation work.


The full pipeline at a glance

Five stages, each isolated so a failure surfaces in Slack with the stage name attached:

[1] Crashlytics Issue Webhook (Firebase Extensions)
        ↓
[2] Cloud Functions (Node.js 20) — ingest, normalize, dedup
        ↓
[3] dSYM Lookup & Symbolication (Fastlane + atos)
        ↓
[4] Claude Code Headless Mode — RCA report generation
        ↓
[5] GitHub Actions — draft PR + Slack notification

The SLOs I aim to hold:

  • [1] → [2]: webhook arrival to normalized record, under 5 seconds
  • [2] → [3]: dedup-pass to dSYM resolved, under 30 seconds
  • [3] → [4]: symbolication done to Claude Code launch, under 10 seconds
  • [4] → [5]: RCA report generated and PR drafted, total under 90 seconds end-to-end

The 90-second target is calibrated against a specific human moment: the time between the Slack notification sound and the developer being able to assess the situation from a phone screen. Anything longer and we end up opening Xcode anyway, which defeats the point.


Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A complete, copyable Cloud Functions + GitHub Actions pipeline that takes a Crashlytics Issue webhook to a fully symbolicated, blast-radius-aware draft PR in 90 seconds — every YAML, shell, and TypeScript snippet you need is included
Concrete operating targets from running this at 50M+ downloads across 14 titles: 99.74% Crash-free Users, 8-minute MTTD, 4h12m MTTR, $42/month Claude API cost, and a 12% false-positive rate you can plan against
A reviewer workflow that pairs Claude-generated RCA reports with human PR review to process 17 incidents/week without sacrificing code quality — including the four pitfalls that nearly broke the rollout in week one
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude Code2026-06-04
Clearing Crashlytics 'Missing dSYM' Warnings with Claude Code: A Field Memo
Right after moving Firebase to SPM, my Crashlytics reports stopped symbolicating and showed raw addresses. Here is how I narrowed down the Missing dSYM cause with Claude Code and rebuilt an upload path that does not break again.
Claude Code2026-06-01
Moving Firebase From CocoaPods to SPM With Claude Code as a Partner: An Implementation Memo
A record of migrating Firebase from CocoaPods to Swift Package Manager in an indie iOS app. What I handed to Claude Code, what I decided myself, and the Crashlytics dSYM trap I hit along the way.
Claude Code2026-05-28
Claude Code × Xcode Cloud — A One-Week Migration of ci_scripts and TestFlight Auto-Delivery
Notes from migrating a long-running indie iOS CI from Fastlane to Xcode Cloud in one week, with the three ci_scripts/ hook scripts in full, TestFlight automation, and dSYM upload — all paired with Claude Code.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →