OAPKH + Sauron
From a tester's crash to a shipped fix
A build goes out to testers, one of them hits a crash, and the first thing you get is a message saying "it crashed". Then comes the back-and-forth to find out where and why.
OAPKH distributes the build. Sauron records what happens in it. Claude Code reads Sauron's data through its MCP server and helps fix it. They are two separate tools; the app's version number is what joins them, because the build version OAPKH ships is the release the Sauron SDK reports.
Northwind is a made-up company: every screenshot below was captured from real OAPKH and Sauron instances running its demo data.
One crash, six steps
-
09:00 OAPKH
Upload the build
Northwind Driver 4.2.0 (build 420) goes up through the OAPKH dashboard to your own server, into the beta environment, with a changelog. No Play Console, and no third party holding the APK.
-
09:01 OAPKH
Testers get it in one tap
Testers following the project get a push, and "What's new" lists 4.2.0. Download, install, done.
-
10:12 Sauron
It crashes, and Sauron already knows
The app's Sauron SDK reports driver@4.2.0+420 as the release, so Sauron groups the 12 crash events from 3 testers into one issue: _TypeError, "Null check operator used on a null value", in DeliveryWindow.label at lib/stops/delivery_window.dart:23. The issue's release field shows the build it came from.
-
10:12 Sauron
With what the tester did first
The tester's session lays out what they did, in order: a stop_opened event with has_window: false, then, seconds later, the crash in DeliveryWindow.label. No "can you send me steps to reproduce?"
-
10:20 Claude Code
Claude reads the crash itself
Through Sauron's read-only MCP server, Claude Code calls trending_issues, get_issue and get_session_timeline, opens lib/stops/delivery_window.dart, and proposes the fix.
> what broke in the 4.2.0 beta?● sauron · trending_issues#1 _TypeError: Null check operator used on a null value: DeliveryWindow.label (lib/stops/delivery_window.dart:23)fatal · 12 events … · 3 users · first seen 2026-11-11 · NEW● sauron · get_issueat DeliveryWindow.label (lib/stops/delivery_window.dart:23) [app]at _StopDetailScreenState.build (lib/stops/stop_detail_screen.dart:88) [app]● sauron · get_session_timeline10:12:15.798 event stop_opened {"has_window":false,"stop_id":"S-1049"}10:12:20.412 error _TypeError: Null check operator used on a null value (issue 601c315a…)● Read lib/stops/delivery_window.dart✓ Guard the null delivery window in DeliveryWindow.label so a stop without one shows “No delivery window” instead of crashing.Tool output quoted from Sauron's MCP server, abridged. -
10:45 OAPKH + Sauron
The fix ships to the same people
4.2.1 (build 421) goes up through the OAPKH dashboard and reaches testers through "What's new". By 11:00 the issue is marked Resolved; its last event is still the 10:12 crash on driver@4.2.0+420, and testers have been on 4.2.1 since 10:46.