fix(crash-reporting): scope renderer crash evidence by Jinwoo-H · Pull Request #16313 · stablyai/orca · GitHub
Skip to content

fix(crash-reporting): scope renderer crash evidence - #16313

Merged
Jinwoo-H merged 2 commits into
mainfrom
aug24-orca-crash-channel-audit
Aug 25, 2026
Merged

Jinwoo-H merged 2 commits into
mainfrom
aug24-orca-crash-channel-audit

Conversation

@Jinwoo-H

@Jinwoo-H Jinwoo-H commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 6 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​216 $\color{#cf222e}{\Huge{\mathbf{−}}}$​3 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​213
Prod 11 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​157 $\color{#cf222e}{\Huge{\mathbf{−}}}$​71 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​86

Summary

Scope renderer crash breadcrumbs and dedupe by the trusted Electron webContentsId so one renderer cannot make another renderer's crash look actionable.

This is a diagnostics-attribution fix. It does not claim to fix the underlying React #185, renderer OOM, native renderer, or Utility crash causes.

Why

Slack crash triage across 267 reports from 2026-08-20 through 2026-08-24 showed recurring renderer reports whose breadcrumb evidence could be global or sibling-renderer activity. The diagnosis thread is here. This matches the direction of PR #15709 and the React attribution caveat in PR #16153.

Changes

  • Preserve trusted renderer origin through renderer breadcrumb IPC and process-gone events.
  • Scope renderer error and process-gone dedupe per renderer while retaining child-process behavior.
  • Filter renderer snapshots before applying the bounded recent breadcrumb budget.
  • Keep suppressed and asynchronous failure breadcrumbs renderer-scoped.
  • Include origin in in-memory coalescing/retained keys without persisting it to crash JSON or telemetry span breadcrumb attributes.
  • Add deterministic regression coverage for sibling activity, dedupe, suppression, IPC sender routing, persistence scrubbing, and failure paths.

Validation

  • pnpm test — 6,202 files, 58,274 tests passed; 40 files and 249 tests skipped by suite configuration.
  • pnpm run lint — passed, including code-quality audits, reliability gates, max-lines ratchet, runtime-electron ratchet, skill manifests, and localization checks.
  • pnpm run typecheck — passed.
  • Focused crash-reporting suite — 25 files, 268 tests passed.
  • Electron CDP smoke — candidate launched from this worktree; visible Orca UI rendered; real renderer breadcrumb and React error IPC flow recorded and dismissed a report; returned persisted report contained no internal renderer:<id> origin.
  • Three fresh read-only delegated reviews — no blockers.

Risks and scope

  • The retained high-water profile map remains globally capped at four entries; heavy multi-renderer activity can evict older historical profiles, but cannot cross-attribute them.
  • Renderer reports intentionally omit sibling-renderer breadcrumbs, reducing some cross-renderer context.
  • Per-renderer dedupe can retain more simultaneous reports, but all maps and persisted report storage remain bounded.
  • No renderer UI, SSH/WSL, folder-workspace, mobile RPC, or remote-wire contract was changed.

Crash triage conclusion

React #185, OOM, generic renderer killed/crashed, and Utility clusters remain historical or inconclusive without a deterministic Orca-owned root cause. This PR improves the evidence needed for the next crash investigation; it is not an underlying crash-rate fix.

@coderabbitai

coderabbitai Bot commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4922f144-db5f-4fc4-ab03-36b056ce7738

📥 Commits

Reviewing files that changed from the base of the PR and between 2443f9f and 8167396.

📒 Files selected for processing (2)
  • src/main/crash-reporting/crash-breadcrumb-renderer-attribution.test.ts
  • src/main/crash-reporting/crash-breadcrumb-store.ts

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The crash-reporting system now assigns renderer breadcrumbs an origin derived from the IPC sender ID. Breadcrumb storage scopes retained entries, coalescing, and snapshots by origin while preserving global breadcrumbs. Renderer and process-gone deduplication keys include renderer identity. Crash reports use origin-filtered breadcrumb snapshots, then remove origin metadata before persistence. Tests cover attribution, isolation, retention, and deduplication behavior.

Merge Risk: ⚪ Minimal · up to 81673

This localized diagnostics-attribution change is merge-ready after normal checks and review; no actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 44.44% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 9 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the primary change: renderer crash evidence is now scoped to the correct renderer.
Description check ✅ Passed The description is detailed, focused, and covers the change, motivation, risks, testing, and scope. It omits several template sections, including an explicit Linked Issue value, Visual Proof or N/A, a…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description is detailed, focused, and covers the change, motivation, risks, testing, and scope. It omits several template sections, including an explicit Linked Issue value, Visual Proof or N/A, and checklist items, but the core information is complete.

✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@coderabbitai coderabbitai 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.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3f73b9bd-a7a8-4ed1-8919-1d8ccbb6b4ca

📥 Commits

Reviewing files that changed from the base of the PR and between 3bc13f7 and 2443f9f.

📒 Files selected for processing (17)
  • src/main/crash-reporting/crash-breadcrumb-renderer-attribution.test.ts
  • src/main/crash-reporting/crash-breadcrumb-store.ts
  • src/main/crash-reporting/crash-report-store.test.ts
  • src/main/crash-reporting/crash-report-store.ts
  • src/main/crash-reporting/durable-crash-breadcrumb.ts
  • src/main/crash-reporting/process-gone-dedupe.test.ts
  • src/main/crash-reporting/process-gone-dedupe.ts
  • src/main/crash-reporting/process-gone-recorder.test.ts
  • src/main/crash-reporting/process-gone-recorder.ts
  • src/main/index.ts
  • src/main/ipc/crash-reporting-renderer-breadcrumbs.test.ts
  • src/main/ipc/crash-reporting-renderer-breadcrumbs.ts
  • src/main/ipc/crash-reporting-renderer-error-report-attribution.test.ts
  • src/main/ipc/crash-reporting-renderer-error-report.ts
  • src/main/ipc/crash-reporting.ts
  • src/shared/crash-breadcrumb-origin.ts
  • src/shared/crash-reporting.ts

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.

Comment thread src/main/crash-reporting/crash-breadcrumb-store.ts
@Jinwoo-H
Jinwoo-H merged commit fba910f into main Aug 25, 2026
47 checks passed
@Jinwoo-H
Jinwoo-H deleted the aug24-orca-crash-channel-audit branch August 25, 2026 00:01
paidaxingyo666 pushed a commit to paidaxingyo666/Manta that referenced this pull request Aug 25, 2026
dallascrilley pushed a commit to dallascrilley/orca that referenced this pull request Aug 27, 2026
enrick-dev pushed a commit to enrick-dev/orca that referenced this pull request Oct 15, 2026
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