TL;DR

Ngày 21/4/2026, team Cursor (Andrew Chan & Kevin Nguyen) công bố bài Keeping the Cursor app stable: tỉ lệ crash OOM (out-of-memory) trên desktop app đã giảm 80% per-session kể từ đỉnh cuối tháng 2, và 73% per-request kể từ 1/3/2026. Bài post chi tiết toàn bộ pipeline: telemetry thời gian thực, debug top-down & bottom-up, và các cơ chế prevention tự động — tất cả xây trên nền tảng agentic engineering.

Biểu đồ OOM-per-session rate giảm 80% từ đỉnh tháng 2

What's new

Điểm đáng chú ý nhất: Cursor không coi stability là task sửa vặt. Họ xây hẳn một hệ thống vận hành liên tục, gồm:

  • Crash watcher service dùng Chrome DevTools Protocol (CDP) để phát hiện OOM ngay khi xảy ra
  • Heap allocation profiling liên tục với tỉ lệ sampling thấp trên toàn user base
  • Dashboard cập nhật trong vòng vài phút sau mỗi crash
  • Daily automation tự phân tích crash stack và mở PR optimize
  • Agent chạy stress test bằng computer use skills — mô phỏng phiên làm việc nặng
  • Auto-rollback khi metric regression

Why it matters

Agentic coding đang giúp team ship tính năng nhanh hơn bao giờ hết — nhưng cũng bơm perf regressions vào codebase nhanh hơn bao giờ hết. Bài của Cursor là blueprint hiếm hoi cho câu hỏi: làm sao giữ app ổn định khi agent viết phần lớn code? Câu trả lời của họ không phải là "slow down" — mà là đầu tư vào detection và rollback tự động đủ nhanh để theo kịp velocity của agent.

Technical facts

Biểu đồ OOM crashes theo thời gian

MetricGiảmMốc tham chiếu
OOM-per-session−80%đỉnh cuối tháng 2/2026
OOM-per-request−73%1/3/2026

Telemetry họ thu gồm: affected process, crash type, device metadata, minidumps, stack traces. Hai class OOM chính:

  • Acute OOM — memory spike đột ngột, process chết. Dò bằng crash stack. Thường gặp khi feature load quá nhiều data cùng lúc từ disk hoặc IPC, hoặc workspace của user quá lớn. Khắc phục bằng killswitch và xử lý theo chunk.
  • Slow-and-steady OOM — memory tăng dần suốt session. Phần lớn do state quản lý thủ công không được dispose, hoặc strong reference leak. Dò bằng heap snapshot (opt-in từ user).

Debug toolkit: top-down & bottom-up

Top-down — gắn nguyên nhân vào commit/flag:

  • Correlation qua Statsig feature flags
  • Proxy metrics (ví dụ: kích thước message payload bất thường)
  • Breadcrumbs — log metadata cho parallel agent, tool call, terminal

Bottom-up — đi từ symptom xuống root cause:

  • Daily automation phân tích crash stack, auto-generate PR fix
  • Heap snapshot để trace memory tích tụ
  • Patch upstream Electron để capture crash stack mà không cần dựng bộ máy CDP nặng

Dialog Capture Snapshot xuất hiện khi Cursor dùng nhiều memory

Prevention

  • Bugbot rules cho các class OOM/crash phổ biến — chặn ngay ở code review
  • Agentic stress testing — agent mô phỏng user nặng, tìm regression trước khi ship
  • Thay state manual bằng garbage collection ở những chỗ an toàn
  • Performance test tự động mỗi lần code đổi
  • Auto-rollback khi metric regression vượt ngưỡng

Họ cũng contribute ngược upstream: mitigation crash extension qua process isolation, và fix leak trong VSCode (PR #259442, #259349). Các team xài Electron hoặc fork VSCode hưởng lợi miễn phí.

Limitations & caveats

  • Heap snapshot là opt-in — tín hiệu chậm hơn, nhưng respect privacy
  • Process isolation chỉ contain blast radius, không fix extension bug
  • Một số slow-and-steady leak vẫn cần bisect strong reference thủ công
  • Killswitch + chunk processing là safety net, không phải fix gốc

What's next

Cursor tiếp tục ship upstream patch cho Electron/VSCode, mở rộng agentic stress testing, và phủ rộng auto-rollback. Take-away cho team khác: nếu bạn cho agent viết code ở velocity cao, bạn cần detection và rollback cũng ở velocity đó — chứ không phải thêm một round QA.

Nguồn: cursor.com/blog/app-stability, @cursor_ai on X.