feat(crash): report UX — startup prompt, menu, opener, i18n#695
Conversation
… dir, drop dead keys
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughДобавлен полный поток crash-репортинга: плагин ChangesCrash Reporting UX Integration
Sequence Diagram(s)sequenceDiagram
participant User
participant NativeMenu
participant Tauri_Backend
participant CrashPrompt
participant api_crash
participant GitHub
rect rgba(100, 150, 255, 0.5)
note over CrashPrompt,api_crash: Инициализация при монтировании
CrashPrompt->>api_crash: listPending()
api_crash-->>CrashPrompt: [pending crashes]
CrashPrompt->>api_crash: buildReport(latest.id)
api_crash-->>CrashPrompt: { report, logDir }
end
rect rgba(255, 180, 100, 0.5)
note over User,GitHub: Пользователь нажимает «Report»
User->>CrashPrompt: handleReport()
CrashPrompt->>GitHub: openUrl(issueUrl(title, body))
CrashPrompt->>api_crash: markReported(id)
end
rect rgba(100, 220, 150, 0.5)
note over User,GitHub: Через нативное меню
User->>NativeMenu: Report an Issue…
NativeMenu->>Tauri_Backend: on_menu_event("report-issue")
Tauri_Backend->>CrashPrompt: emit menu://report-issue
CrashPrompt->>api_crash: buildReport(null)
api_crash-->>CrashPrompt: report template
CrashPrompt->>GitHub: openUrl(issueUrl(title, body))
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
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. Comment |
Фаза 3 (финальная) локального crash-reporting (Refs #687). UX отправки. После мержа фича целиком в master.
Что внутри
CrashPrompt.tsx) — при запуске главного окна проверяетlist_pending_crashes; если есть неотправленный сбой, показывает ненавязчивый промпт [Сообщить]/[Позже] (+ «Открыть папку с логами»).build_crash_report→ собрать pre-filled GitHub issue URL (lib/crashReport.ts, обрезка под лимит ~8 КБ) → открыть в браузере черезtauri-plugin-opener. После отправки —mark_crash_reported; «Позже» —dismiss_crash.crash(en/ru); ErrorBoundary переведён на i18n (убраны временные литералы).openUrl(нет браузера) не пишет ложный крэш-рекорд.Приватность
Тело issue обезличено (домашняя папка →
/Users/<user>); reveal папки логов использует сырой путь локально, наружу не уходит.Проверки
pnpm build(i18n-паритет) ·pnpm test819 ·cargo clippy -D warnings·cargo test(27, вкл.commands::crash::*) — всё зелёное.Ревью
spec ✅ · code-quality (нашло и починило: ложные крэш-рекорды, выбор dismissed-записи, недостижимую кнопку логов, мёртвые ключи) ✅ · финальное независимое ✅.
Закрывает реализацию #687 целиком (Фазы 1–3). Чек-лист «Проверить после слияния» требует живого UI — оставляю на ручную проверку.
Summary by CodeRabbit
Release Notes
New Features
Tests