Files
karuo-ai/01_卡资(金)/金仓_存储备份/参考资料/Cursor渲染崩溃_code5_复盘与防复发范式.md
2026-07-19 00:21:46 +08:00

8.9 KiB
Raw Blame History

Cursor 渲染崩溃code:5复盘与防复发范式

真源 · 卡若AI 唯一入口 · 2026-06-12
Skill01_卡资/金仓_存储备份/Cursor稳定性/SKILL.md
适用Cursor 3.7.x · macOS · 多根工作区(个人 + 卡若AI

禁止在外层 个人/.cursor/rules/ 复制本文或 cursor-stability.mdc对话只读卡若AI 本 Skill。


一、事件摘要

现象 日志/证据
弹窗 reason: crashed, code: 5 main.log: renderer process gone (code: 5)
切 Chat 标签 / 点别的 App / 打开 .cursor/rules 就崩 RendererPing blocked ~15s 后 code 5
Source Control 显示 540 变更 / +63147 行 524 个未跟踪文件 + Git 把 PNG/JSON 当文本计行
每次点 Reopen 更严重 window:1→2→3→4emptyWindows 叠 ghost 窗

结论:不是 state.vscdb 体积单因,而是 渲染负载叠加SCM 巨型 diff + 多窗 + Agent 循环 + 超大 alwaysApply 规则)。


二、根因矩阵(四层)

┌─────────────────────────────────────────────────────────┐
│ L4 行为   Reopen 叠窗 · Agent 运行时切标签/点外窗        │
├─────────────────────────────────────────────────────────┤
│ L3 规则   persistent-chat.mdc alwaysApply:true26KB   │
│           每轮 Agent 全量注入 → 打开规则文件即崩          │
├─────────────────────────────────────────────────────────┤
│ L2 Git    500+ untracked · DNS 备份 JSON · 旧 MCP 包     │
│           · 教程 PNG 计万行 → SCM 面板渲染 OOM            │
├─────────────────────────────────────────────────────────┤
│ L1 引擎   Chromium/V8 EXC_BREAKPOINT.ips 报告)        │
│           非经典 OOM多为 UI 线程卡死后崩溃              │
└─────────────────────────────────────────────────────────┘

误区(禁止再犯)

错误诊断 实际
删整个 state.vscdb 聊天列表空白,问题仍在
--deep 删全部 bubbleId 历史对话不可读
只瘦身 DB 不处理 Git/多窗 Changes 仍 +6 万行,一点 SCM 就卡

三、已落地配置(维护清单)

3.1 用户级 ~/Library/Application Support/Cursor/User/settings.json

作用
window.restoreWindows none 启动不恢复多窗
window.openWithoutArgumentsInNewWindow off 禁止无意多开
workbench.editor.restoreViewState false 少恢复编辑器状态
workbench.editor.limit.value 6 限制打开标签数
git.openRepositoryInParentFolders never 外层仓不重复扫子仓
git.autorefresh false 降 SCM 刷新频率
git.untrackedChanges hidden 隐藏 untracked 装饰
scm.diffDecorations none 关 diff 高亮装饰
java.enabled false 关 Java 语言服务6 扩展包)
cursor.general.enableCodebaseIndexing false 关全库索引

3.2 工作区 .vscode/settings.json个人/

{
  "java.enabled": false,
  "java.autobuild.enabled": false,
  "git.autorefresh": false,
  "git.untrackedChanges": "hidden"
}

3.3 .cursor/rules 策略

文件 alwaysApply 说明
persistent-chat.mdc false 可持续对话:按需启用,禁止默认注入 26KB
cursor-stability.mdc true 精简铁律(<2KB只含崩溃 SOP
karuo-recap-v53.mdc true 保持短小,单文件建议 <5KB

铁律:任何 alwaysApply: true 规则 ≤5KB;超长流程放 SKILL.md / 参考资料,不要进 rules。

3.4 .gitignore(双仓)

外层 个人/.gitignore:忽略 卡若AI/(独立 Gitea 仓)、本地目录、二进制、*.apk/*.ttc 等。

内层 卡若AI/.gitignore2026-06-12 段):

Cursor持久对话_MCP_*/
**/backups/dns/
**/服务器管理/backups/
**/图文教程/作图/*.png
**/图文教程/images/*.png
运营中枢/参考资料/images/
CodexAccountBackupRestore/
cursor-openai-api-runtime/
**/.pw-*/
**/.venv_aliyun*/

原则:本地包、备份快照、教程大图 永不进 Changes;真实脚本要么 commit,要么 gitignore,禁止长期 ?? 堆几百个。

3.5 ~/.cursor/argv.json

  • 禁止 "js-flags": "--max-old-space-size=8192"(曾导致异常)
  • 保留默认;除非 Cursor 官方建议,勿改 heap

四、修复脚本Cmd+Q 后执行)

脚本 用途
金仓_存储备份/脚本/cursor_code5_fix.sh 清 emptyWindows + settings + DB 缓存Cursor 关着时 --db
金仓_存储备份/脚本/cursor_renderer_crash_fix.sh 瘦身 composer 列表、snapshots、聊天截图
金仓_存储备份/脚本/cursor_launch_noext.sh 无扩展启动(隔离测试)
# 标准流程
# 1) Cmd+Q 完全退出 Cursor
bash "…/cursor_code5_fix.sh"          # 在线可跑部分
bash "…/cursor_code5_fix.sh" --db     # Cursor 退出后清 DB
# 2) 只开 1 个窗口重开

五、崩溃弹窗 SOP必须照做

code 5 弹窗

  1. 勾选 Don't restore editors
  2. Close(灰色)— 禁止 Reopen / New Window 叠窗
  3. Cmd+Q 完全退出 → 跑修复脚本 → 再开 1 个窗口

六、跨项目 / 跨对话防复发范式

6.1 新仓库初始化 Checklist

  • .gitignore 含:node_modules/.venv/**/.pw-*/、本地备份、大图
  • 外层 monorepo 不要重复跟踪内层 Git 仓(子目录/ 整目录 ignore
  • .cursor/rules/ 仅放 短规则Skill 放 SKILL.md
  • git status 未跟踪 <20 个 再日常开发;超过则 commit 或 ignore
  • 多根工作区:内层仓独立 push Gitea外层只放 .cursor/rules 同步副本

6.2 日常 Agent 对话

不做
单 Cursor 窗口 Cmd+Shift+N 多开
Agent 跑完再切标签 Agent-loop 活跃时切窗/点别的 App
cursor_code5_fix.sh 巡检 手删 state.vscdb
旧对话空白 → agent_sync_restore.py restore --name "关键词" --aggressive 删 bubbleId

6.3 Source Control 健康线

指标 警戒线 动作
未提交文件数 >50 分批 commit 或 gitignore
diff 行数 >5000 查 PNG/JSON/备份是否被跟踪
emptyWindows >0 cursor_code5_fix.sh
composer 列表 >200 条 cursor_renderer_crash_fix.sh

6.6 全仓库批量防护2026-06-12

bash "01_卡资/金仓_存储备份/脚本/cursor_scm_guard_apply.sh"
  • 扫描 Documents/{个人,开发,1、金项目,工作手机}全部 Git 仓
  • 每仓补 .gitignore SCM 防崩溃块 + .vscode/settings.json
  • 新仓 clone 后 先跑一遍 再开 Cursor

6.7 其他 Cursor 标签 / 项目

每个 Cursor Chat 标签 = 独立 Agent 上下文;共享同一 MCP 进程时:

  • 标签名用中文(减少绑定混乱)
  • 可持续对话persistent-chat)仅在需要面板续跑时手动启用
  • 普通任务 加载 26KB 持久对话规则

6.5 扩展隔离

仍崩时(保留 GPU

/Applications/Cursor.app/Contents/MacOS/Cursor --disable-extensions "/path/to/project"
  • 不崩 → 卸 Java 扩展包(redhat.java + vscjava.*
  • 仍崩 → 向 Cursor 反馈 code 5 + 附 ~/Library/Logs/DiagnosticReports/ 最新 .ips

七、本次修复提交索引

仓库 提交 内容
个人 433ddd00 persistent-chat.mdcalwaysApply: false
卡若AI 2026-06-12 chore 484 文件入库 + SCM gitignore 段

八、相关真源仅卡若AI

  • Skill 唯一入口01_卡资/金仓_存储备份/Cursor稳定性/SKILL.md
  • 规则铁律:.cursor/rules/cursor-stability.mdc仅本仓,外层个人不复制)
  • 脚本目录:01_卡资/金仓_存储备份/脚本/
  • 聊天恢复:01_卡资/金仓_存储备份/聊天记录管理/脚本/agent_sync_restore.py
  • 可持续对话(按需):01_卡资/金仓_存储备份/Cursor持久对话/SKILL.md

九、一句话记忆

code 5 = 渲染器扛不住 UI 负载Git 六万行 diff + Reopen 叠窗 + 超大 rules 自动注入 + Agent 运行时切窗。
治根:清 SCM、单窗、关 Reopen、短 rules、脚本巡检——不是删数据库