Skip to content

Persist actionable raw helper crash diagnostics - #86

Merged
lynnswap merged 14 commits into
mainfrom
codex/issue-81-actionable-crash-diagnostics
Aug 25, 2026
Merged

Persist actionable raw helper crash diagnostics#86
lynnswap merged 14 commits into
mainfrom
codex/issue-81-actionable-crash-diagnostics

Conversation

@lynnswap

Copy link
Copy Markdown
Owner

Purpose

Preserve bounded diagnostics that explain raw-helper crashes and provide enough verified process identity to correlate Simulator failures with Crash Reporter.

Closes #81.

Changes

  • replace the last-eight-lines tail with terminal-safe, byte-bounded combined output that retains both the diagnostic prefix and termination tail
  • add an invocation-bound startup handshake with the actual helper PID, executable name, LC_UUID, and start timestamp before target loading begins
  • build one canonical failure capsule with typed wrapper or child termination, bounded diagnostics, helper identity, and termination-observation time
  • recognize Simulator child signals only from the exact final simctl line corroborated by the 128 + signal wrapper exit status
  • persist the capsule unchanged through the existing runTargets.failureSummary path and keep successful typed diagnostics separate
  • read handshake and diagnostics reports through one descriptor-bound, no-follow, regular-file-checked, maximum + 1 bounded reader
  • share current-process Mach-O UUID resolution between Tooling and raw helpers

Testing

  • DEVELOPER_DIR=/Applications/Xcode_27.app/Contents/Developer swift test --force-resolved-versions
  • PrivateHeaderKitCLI suite: 90 tests passed with Xcode 27 / Swift 6.4 and Xcode 26.5 / Swift 6.3.2
  • iOS 27 and watchOS 27 Simulator helper release builds passed
  • bash Scripts/test-release-scripts.sh
  • exact iOS 27.0 beta 24A5390f runtime reproduction for AXSpringBoardServerInstance
    • retained exception name/reason, first frames, omission marker, and terminal frames in 17 lines / 1,725 bytes
    • recorded child_signal(6), wrapper status 134, actual PID, LC_UUID, helper start, and observed termination
    • matched Crash Reporter PID, LC_UUID, helper name, and SIGABRT/code 6
    • restored the runtime override and deleted the run-owned Simulator
  • codex-review against main: no findings (job C82A0657-5269-41C7-8546-A66C0BBD0440)

Screenshots are not applicable for this CLI-only change.

@lynnswap
lynnswap merged commit 101748f into main Aug 25, 2026
1 check passed
@lynnswap
lynnswap deleted the codex/issue-81-actionable-crash-diagnostics branch August 26, 2026 16:45
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.

Raw-helper failure records discard the diagnostics needed to identify Simulator crashes

1 participant