rails_error_dashboard 0.14.4 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -8
  3. data/app/controllers/rails_error_dashboard/application_controller.rb +28 -4
  4. data/app/controllers/rails_error_dashboard/errors_controller.rb +97 -4
  5. data/app/controllers/rails_error_dashboard/health_controller.rb +38 -0
  6. data/app/controllers/rails_error_dashboard/webhooks_controller.rb +10 -9
  7. data/app/helpers/rails_error_dashboard/application_helper.rb +2 -2
  8. data/app/helpers/rails_error_dashboard/backtrace_helper.rb +63 -16
  9. data/app/helpers/rails_error_dashboard/overview_helper.rb +4 -0
  10. data/app/jobs/rails_error_dashboard/baseline_alert_job.rb +20 -2
  11. data/app/jobs/rails_error_dashboard/cascade_detection_job.rb +30 -0
  12. data/app/jobs/rails_error_dashboard/concerns/plain_channel_message.rb +33 -6
  13. data/app/jobs/rails_error_dashboard/discord_error_notification_job.rb +1 -1
  14. data/app/jobs/rails_error_dashboard/pagerduty_error_notification_job.rb +1 -1
  15. data/app/jobs/rails_error_dashboard/retention_cleanup_job.rb +31 -0
  16. data/app/jobs/rails_error_dashboard/scheduled_digest_job.rb +6 -1
  17. data/app/jobs/rails_error_dashboard/slack_error_notification_job.rb +1 -1
  18. data/app/jobs/rails_error_dashboard/telegram_error_notification_job.rb +25 -0
  19. data/app/jobs/rails_error_dashboard/webhook_error_notification_job.rb +2 -18
  20. data/app/models/rails_error_dashboard/error_log.rb +54 -20
  21. data/app/models/rails_error_dashboard/error_occurrence.rb +1 -0
  22. data/app/models/rails_error_dashboard/error_occurrence_context.rb +14 -0
  23. data/app/models/rails_error_dashboard/missing_translation.rb +43 -0
  24. data/app/views/layouts/rails_error_dashboard.html.erb +14 -2
  25. data/app/views/rails_error_dashboard/errors/_captured_occurrences.html.erb +45 -0
  26. data/app/views/rails_error_dashboard/errors/_error_info.html.erb +12 -3
  27. data/app/views/rails_error_dashboard/errors/_occurrence_banner.html.erb +12 -0
  28. data/app/views/rails_error_dashboard/errors/_sidebar_metadata.html.erb +3 -1
  29. data/app/views/rails_error_dashboard/errors/_source_code.html.erb +3 -9
  30. data/app/views/rails_error_dashboard/errors/activestorage_health_summary.html.erb +28 -0
  31. data/app/views/rails_error_dashboard/errors/boot_errors.html.erb +130 -0
  32. data/app/views/rails_error_dashboard/errors/index.html.erb +1 -1
  33. data/app/views/rails_error_dashboard/errors/missing_translations.html.erb +143 -0
  34. data/app/views/rails_error_dashboard/errors/overview.html.erb +10 -7
  35. data/app/views/rails_error_dashboard/errors/platform_comparison.html.erb +16 -11
  36. data/app/views/rails_error_dashboard/errors/settings/_value_badge.html.erb +7 -4
  37. data/app/views/rails_error_dashboard/errors/settings.html.erb +23 -8
  38. data/app/views/rails_error_dashboard/errors/show.html.erb +7 -4
  39. data/config/locales/de.yml +87 -5
  40. data/config/locales/en.yml +99 -4
  41. data/config/locales/es.yml +88 -5
  42. data/config/locales/fr.yml +88 -5
  43. data/config/locales/it.yml +88 -5
  44. data/config/locales/ja.yml +86 -4
  45. data/config/locales/pl.yml +89 -5
  46. data/config/locales/pt-BR.yml +88 -5
  47. data/config/locales/ru.yml +89 -5
  48. data/config/locales/uk.yml +89 -5
  49. data/config/locales/zh-CN.yml +86 -4
  50. data/config/routes.rb +6 -0
  51. data/db/migrate/20251223000000_create_rails_error_dashboard_complete_schema.rb +10 -2
  52. data/db/migrate/20260106094256_backfill_application_for_existing_errors.rb +3 -3
  53. data/db/migrate/20261010000001_create_missing_translations.rb +50 -0
  54. data/db/migrate/20261015000001_create_rails_error_dashboard_error_occurrence_contexts.rb +35 -0
  55. data/db/migrate/20261015000002_add_capture_source_to_error_occurrences_and_error_logs.rb +46 -0
  56. data/lib/generators/rails_error_dashboard/install/install_generator.rb +9 -4
  57. data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +41 -5
  58. data/lib/rails_error_dashboard/commands/assign_error.rb +24 -1
  59. data/lib/rails_error_dashboard/commands/batch_mute_errors.rb +11 -2
  60. data/lib/rails_error_dashboard/commands/batch_resolve_errors.rb +16 -3
  61. data/lib/rails_error_dashboard/commands/batch_unmute_errors.rb +7 -2
  62. data/lib/rails_error_dashboard/commands/find_or_increment_error.rb +6 -0
  63. data/lib/rails_error_dashboard/commands/flush_missing_translations.rb +101 -0
  64. data/lib/rails_error_dashboard/commands/flush_rack_attack_events.rb +2 -4
  65. data/lib/rails_error_dashboard/commands/flush_storm_counts.rb +7 -6
  66. data/lib/rails_error_dashboard/commands/flush_swallowed_exceptions.rb +2 -4
  67. data/lib/rails_error_dashboard/commands/log_error.rb +20 -8
  68. data/lib/rails_error_dashboard/commands/record_occurrence_context.rb +60 -0
  69. data/lib/rails_error_dashboard/commands/resolve_error.rb +2 -15
  70. data/lib/rails_error_dashboard/commands/update_error_status.rb +7 -0
  71. data/lib/rails_error_dashboard/configuration.rb +61 -4
  72. data/lib/rails_error_dashboard/engine.rb +42 -1
  73. data/lib/rails_error_dashboard/error_reporter.rb +4 -2
  74. data/lib/rails_error_dashboard/manual_error_reporter.rb +11 -1
  75. data/lib/rails_error_dashboard/middleware/error_catcher.rb +18 -4
  76. data/lib/rails_error_dashboard/middleware/rate_limiter.rb +7 -1
  77. data/lib/rails_error_dashboard/plugin.rb +19 -3
  78. data/lib/rails_error_dashboard/plugin_registry.rb +61 -12
  79. data/lib/rails_error_dashboard/queries/analytics_stats.rb +0 -12
  80. data/lib/rails_error_dashboard/queries/boot_errors.rb +76 -0
  81. data/lib/rails_error_dashboard/queries/co_occurring_errors.rb +59 -33
  82. data/lib/rails_error_dashboard/queries/dashboard_stats.rb +3 -11
  83. data/lib/rails_error_dashboard/queries/errors_list.rb +8 -16
  84. data/lib/rails_error_dashboard/queries/health_status.rb +191 -0
  85. data/lib/rails_error_dashboard/queries/missing_translation_summary.rb +82 -0
  86. data/lib/rails_error_dashboard/queries/platform_comparison.rb +14 -6
  87. data/lib/rails_error_dashboard/services/active_storage_probe.rb +91 -0
  88. data/lib/rails_error_dashboard/services/backtrace_parser.rb +13 -7
  89. data/lib/rails_error_dashboard/services/backtrace_processor.rb +31 -7
  90. data/lib/rails_error_dashboard/services/baseline_alert_payload_builder.rb +30 -0
  91. data/lib/rails_error_dashboard/services/crash_capture.rb +90 -2
  92. data/lib/rails_error_dashboard/services/digest_builder.rb +9 -6
  93. data/lib/rails_error_dashboard/services/error_notification_dispatcher.rb +6 -0
  94. data/lib/rails_error_dashboard/services/github_link_generator.rb +25 -14
  95. data/lib/rails_error_dashboard/services/markdown_error_formatter.rb +15 -16
  96. data/lib/rails_error_dashboard/services/missing_translation_handler.rb +152 -0
  97. data/lib/rails_error_dashboard/services/missing_translation_tracker.rb +316 -0
  98. data/lib/rails_error_dashboard/services/repository_url.rb +18 -0
  99. data/lib/rails_error_dashboard/services/resolution_callbacks.rb +44 -0
  100. data/lib/rails_error_dashboard/services/severity_classifier.rb +52 -0
  101. data/lib/rails_error_dashboard/services/similarity_calculator.rb +3 -9
  102. data/lib/rails_error_dashboard/services/source_code_reader.rb +23 -3
  103. data/lib/rails_error_dashboard/services/storm_protection/count_buffer.rb +6 -3
  104. data/lib/rails_error_dashboard/services/storm_protection/gate.rb +6 -1
  105. data/lib/rails_error_dashboard/services/telegram_delivery.rb +134 -0
  106. data/lib/rails_error_dashboard/services/telegram_payload_builder.rb +105 -0
  107. data/lib/rails_error_dashboard/services/webhook_delivery.rb +63 -0
  108. data/lib/rails_error_dashboard/services/webhook_signer.rb +80 -0
  109. data/lib/rails_error_dashboard/value_objects/occurrence_snapshot.rb +23 -0
  110. data/lib/rails_error_dashboard/version.rb +1 -1
  111. data/lib/rails_error_dashboard.rb +28 -0
  112. data/lib/tasks/error_dashboard.rake +2 -3
  113. metadata +29 -2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_error_dashboard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.4
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anjan Jagirdar
@@ -268,6 +268,7 @@ files:
268
268
  - Rakefile
269
269
  - app/controllers/rails_error_dashboard/application_controller.rb
270
270
  - app/controllers/rails_error_dashboard/errors_controller.rb
271
+ - app/controllers/rails_error_dashboard/health_controller.rb
271
272
  - app/controllers/rails_error_dashboard/locales_controller.rb
272
273
  - app/controllers/rails_error_dashboard/webhooks_controller.rb
273
274
  - app/helpers/rails_error_dashboard/application_helper.rb
@@ -281,6 +282,7 @@ files:
281
282
  - app/jobs/rails_error_dashboard/async_error_logging_job.rb
282
283
  - app/jobs/rails_error_dashboard/baseline_alert_job.rb
283
284
  - app/jobs/rails_error_dashboard/baseline_calculation_job.rb
285
+ - app/jobs/rails_error_dashboard/cascade_detection_job.rb
284
286
  - app/jobs/rails_error_dashboard/close_linked_issue_job.rb
285
287
  - app/jobs/rails_error_dashboard/concerns/localized_job.rb
286
288
  - app/jobs/rails_error_dashboard/concerns/plain_channel_message.rb
@@ -297,6 +299,7 @@ files:
297
299
  - app/jobs/rails_error_dashboard/storm_flush_job.rb
298
300
  - app/jobs/rails_error_dashboard/storm_notification_job.rb
299
301
  - app/jobs/rails_error_dashboard/swallowed_exception_flush_job.rb
302
+ - app/jobs/rails_error_dashboard/telegram_error_notification_job.rb
300
303
  - app/jobs/rails_error_dashboard/webhook_error_notification_job.rb
301
304
  - app/mailers/rails_error_dashboard/application_mailer.rb
302
305
  - app/mailers/rails_error_dashboard/digest_mailer.rb
@@ -309,8 +312,10 @@ files:
309
312
  - app/models/rails_error_dashboard/error_log.rb
310
313
  - app/models/rails_error_dashboard/error_logs_record.rb
311
314
  - app/models/rails_error_dashboard/error_occurrence.rb
315
+ - app/models/rails_error_dashboard/error_occurrence_context.rb
312
316
  - app/models/rails_error_dashboard/event_count.rb
313
317
  - app/models/rails_error_dashboard/event_timing_gap.rb
318
+ - app/models/rails_error_dashboard/missing_translation.rb
314
319
  - app/models/rails_error_dashboard/rack_attack_event.rb
315
320
  - app/models/rails_error_dashboard/storm_event.rb
316
321
  - app/models/rails_error_dashboard/storm_flush_batch.rb
@@ -322,6 +327,7 @@ files:
322
327
  - app/views/rails_error_dashboard/error_notification_mailer/error_alert.text.erb
323
328
  - app/views/rails_error_dashboard/errors/_ai_help_panel.html.erb
324
329
  - app/views/rails_error_dashboard/errors/_breadcrumbs_group.html.erb
330
+ - app/views/rails_error_dashboard/errors/_captured_occurrences.html.erb
325
331
  - app/views/rails_error_dashboard/errors/_co_occurring_errors.html.erb
326
332
  - app/views/rails_error_dashboard/errors/_discussion.html.erb
327
333
  - app/views/rails_error_dashboard/errors/_error_cascades.html.erb
@@ -332,6 +338,7 @@ files:
332
338
  - app/views/rails_error_dashboard/errors/_llm_summary.html.erb
333
339
  - app/views/rails_error_dashboard/errors/_local_variables.html.erb
334
340
  - app/views/rails_error_dashboard/errors/_modals.html.erb
341
+ - app/views/rails_error_dashboard/errors/_occurrence_banner.html.erb
335
342
  - app/views/rails_error_dashboard/errors/_pattern_insights.html.erb
336
343
  - app/views/rails_error_dashboard/errors/_request_context.html.erb
337
344
  - app/views/rails_error_dashboard/errors/_show_scripts.html.erb
@@ -344,6 +351,7 @@ files:
344
351
  - app/views/rails_error_dashboard/errors/actioncable_health_summary.html.erb
345
352
  - app/views/rails_error_dashboard/errors/activestorage_health_summary.html.erb
346
353
  - app/views/rails_error_dashboard/errors/analytics.html.erb
354
+ - app/views/rails_error_dashboard/errors/boot_errors.html.erb
347
355
  - app/views/rails_error_dashboard/errors/cache_health_summary.html.erb
348
356
  - app/views/rails_error_dashboard/errors/correlation.html.erb
349
357
  - app/views/rails_error_dashboard/errors/database_health_summary.html.erb
@@ -352,6 +360,7 @@ files:
352
360
  - app/views/rails_error_dashboard/errors/index.html.erb
353
361
  - app/views/rails_error_dashboard/errors/job_health_summary.html.erb
354
362
  - app/views/rails_error_dashboard/errors/llm_health_summary.html.erb
363
+ - app/views/rails_error_dashboard/errors/missing_translations.html.erb
355
364
  - app/views/rails_error_dashboard/errors/n_plus_one_summary.html.erb
356
365
  - app/views/rails_error_dashboard/errors/overview.html.erb
357
366
  - app/views/rails_error_dashboard/errors/platform_comparison.html.erb
@@ -425,6 +434,9 @@ files:
425
434
  - db/migrate/20260919000001_create_event_counts.rb
426
435
  - db/migrate/20260920000001_add_buckets_incomplete_to_storm_events.rb
427
436
  - db/migrate/20260920000002_create_event_timing_gaps.rb
437
+ - db/migrate/20261010000001_create_missing_translations.rb
438
+ - db/migrate/20261015000001_create_rails_error_dashboard_error_occurrence_contexts.rb
439
+ - db/migrate/20261015000002_add_capture_source_to_error_occurrences_and_error_logs.rb
428
440
  - lib/generators/rails_error_dashboard/install/install_generator.rb
429
441
  - lib/generators/rails_error_dashboard/install/templates/README
430
442
  - lib/generators/rails_error_dashboard/install/templates/initializer.rb
@@ -444,6 +456,7 @@ files:
444
456
  - lib/rails_error_dashboard/commands/drop_all_tables.rb
445
457
  - lib/rails_error_dashboard/commands/find_or_create_application.rb
446
458
  - lib/rails_error_dashboard/commands/find_or_increment_error.rb
459
+ - lib/rails_error_dashboard/commands/flush_missing_translations.rb
447
460
  - lib/rails_error_dashboard/commands/flush_rack_attack_events.rb
448
461
  - lib/rails_error_dashboard/commands/flush_storm_counts.rb
449
462
  - lib/rails_error_dashboard/commands/flush_swallowed_exceptions.rb
@@ -451,6 +464,7 @@ files:
451
464
  - lib/rails_error_dashboard/commands/link_existing_issue.rb
452
465
  - lib/rails_error_dashboard/commands/log_error.rb
453
466
  - lib/rails_error_dashboard/commands/mute_error.rb
467
+ - lib/rails_error_dashboard/commands/record_occurrence_context.rb
454
468
  - lib/rails_error_dashboard/commands/resolve_error.rb
455
469
  - lib/rails_error_dashboard/commands/scrub_invalid_encoding.rb
456
470
  - lib/rails_error_dashboard/commands/snooze_error.rb
@@ -486,6 +500,7 @@ files:
486
500
  - lib/rails_error_dashboard/queries/active_storage_summary.rb
487
501
  - lib/rails_error_dashboard/queries/analytics_stats.rb
488
502
  - lib/rails_error_dashboard/queries/baseline_stats.rb
503
+ - lib/rails_error_dashboard/queries/boot_errors.rb
489
504
  - lib/rails_error_dashboard/queries/cache_health_summary.rb
490
505
  - lib/rails_error_dashboard/queries/co_occurring_errors.rb
491
506
  - lib/rails_error_dashboard/queries/critical_alerts.rb
@@ -497,8 +512,10 @@ files:
497
512
  - lib/rails_error_dashboard/queries/errors_list.rb
498
513
  - lib/rails_error_dashboard/queries/event_volume.rb
499
514
  - lib/rails_error_dashboard/queries/filter_options.rb
515
+ - lib/rails_error_dashboard/queries/health_status.rb
500
516
  - lib/rails_error_dashboard/queries/job_health_summary.rb
501
517
  - lib/rails_error_dashboard/queries/llm_health_summary.rb
518
+ - lib/rails_error_dashboard/queries/missing_translation_summary.rb
502
519
  - lib/rails_error_dashboard/queries/mttr_stats.rb
503
520
  - lib/rails_error_dashboard/queries/n_plus_one_summary.rb
504
521
  - lib/rails_error_dashboard/queries/platform_comparison.rb
@@ -510,6 +527,7 @@ files:
510
527
  - lib/rails_error_dashboard/queries/swallowed_exception_summary.rb
511
528
  - lib/rails_error_dashboard/queries/uninstall_plan.rb
512
529
  - lib/rails_error_dashboard/queries/user_impact_summary.rb
530
+ - lib/rails_error_dashboard/services/active_storage_probe.rb
513
531
  - lib/rails_error_dashboard/services/ai_agent_classifier.rb
514
532
  - lib/rails_error_dashboard/services/analytics_cache_manager.rb
515
533
  - lib/rails_error_dashboard/services/backtrace_parser.rb
@@ -550,6 +568,8 @@ files:
550
568
  - lib/rails_error_dashboard/services/local_variable_capturer.rb
551
569
  - lib/rails_error_dashboard/services/localized_time_formatter.rb
552
570
  - lib/rails_error_dashboard/services/markdown_error_formatter.rb
571
+ - lib/rails_error_dashboard/services/missing_translation_handler.rb
572
+ - lib/rails_error_dashboard/services/missing_translation_tracker.rb
553
573
  - lib/rails_error_dashboard/services/n_plus_one_detector.rb
554
574
  - lib/rails_error_dashboard/services/notification_helpers.rb
555
575
  - lib/rails_error_dashboard/services/notification_throttler.rb
@@ -559,6 +579,8 @@ files:
559
579
  - lib/rails_error_dashboard/services/platform_detector.rb
560
580
  - lib/rails_error_dashboard/services/priority_score_calculator.rb
561
581
  - lib/rails_error_dashboard/services/rack_attack_tracker.rb
582
+ - lib/rails_error_dashboard/services/repository_url.rb
583
+ - lib/rails_error_dashboard/services/resolution_callbacks.rb
562
584
  - lib/rails_error_dashboard/services/rspec_generator.rb
563
585
  - lib/rails_error_dashboard/services/sensitive_data_filter.rb
564
586
  - lib/rails_error_dashboard/services/severity_classifier.rb
@@ -573,9 +595,13 @@ files:
573
595
  - lib/rails_error_dashboard/services/storm_protection/gate.rb
574
596
  - lib/rails_error_dashboard/services/swallowed_exception_tracker.rb
575
597
  - lib/rails_error_dashboard/services/system_health_snapshot.rb
598
+ - lib/rails_error_dashboard/services/telegram_delivery.rb
599
+ - lib/rails_error_dashboard/services/telegram_payload_builder.rb
576
600
  - lib/rails_error_dashboard/services/url_safety.rb
577
601
  - lib/rails_error_dashboard/services/variable_serializer.rb
602
+ - lib/rails_error_dashboard/services/webhook_delivery.rb
578
603
  - lib/rails_error_dashboard/services/webhook_payload_builder.rb
604
+ - lib/rails_error_dashboard/services/webhook_signer.rb
579
605
  - lib/rails_error_dashboard/subscribers/action_cable_subscriber.rb
580
606
  - lib/rails_error_dashboard/subscribers/active_storage_subscriber.rb
581
607
  - lib/rails_error_dashboard/subscribers/breadcrumb_subscriber.rb
@@ -586,6 +612,7 @@ files:
586
612
  - lib/rails_error_dashboard/translation.rb
587
613
  - lib/rails_error_dashboard/value_objects/error_context.rb
588
614
  - lib/rails_error_dashboard/value_objects/llm_call_event.rb
615
+ - lib/rails_error_dashboard/value_objects/occurrence_snapshot.rb
589
616
  - lib/rails_error_dashboard/version.rb
590
617
  - lib/tasks/error_dashboard.rake
591
618
  - lib/tasks/rails_error_dashboard_tasks.rake
@@ -601,7 +628,7 @@ metadata:
601
628
  funding_uri: https://github.com/sponsors/AnjanJ
602
629
  post_install_message: |
603
630
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
604
- RED (Rails Error Dashboard) v0.14.4
631
+ RED (Rails Error Dashboard) v0.16.0
605
632
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
606
633
 
607
634
  First install: