rails_error_dashboard 0.1.29 → 0.1.31

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -6
  3. data/app/controllers/rails_error_dashboard/errors_controller.rb +22 -0
  4. data/app/helpers/rails_error_dashboard/application_helper.rb +79 -7
  5. data/app/helpers/rails_error_dashboard/backtrace_helper.rb +149 -0
  6. data/app/models/rails_error_dashboard/application.rb +1 -1
  7. data/app/models/rails_error_dashboard/error_log.rb +44 -16
  8. data/app/views/layouts/rails_error_dashboard.html.erb +66 -1237
  9. data/app/views/rails_error_dashboard/errors/_error_row.html.erb +10 -2
  10. data/app/views/rails_error_dashboard/errors/_source_code.html.erb +76 -0
  11. data/app/views/rails_error_dashboard/errors/_timeline.html.erb +18 -82
  12. data/app/views/rails_error_dashboard/errors/index.html.erb +64 -31
  13. data/app/views/rails_error_dashboard/errors/overview.html.erb +181 -3
  14. data/app/views/rails_error_dashboard/errors/platform_comparison.html.erb +2 -1
  15. data/app/views/rails_error_dashboard/errors/settings/_value_badge.html.erb +286 -0
  16. data/app/views/rails_error_dashboard/errors/settings.html.erb +146 -480
  17. data/app/views/rails_error_dashboard/errors/show.html.erb +44 -20
  18. data/db/migrate/20251223000000_create_rails_error_dashboard_complete_schema.rb +188 -0
  19. data/db/migrate/20251224000001_create_rails_error_dashboard_error_logs.rb +5 -0
  20. data/db/migrate/20251224081522_add_better_tracking_to_error_logs.rb +3 -0
  21. data/db/migrate/20251224101217_add_controller_action_to_error_logs.rb +3 -0
  22. data/db/migrate/20251225071314_add_optimized_indexes_to_error_logs.rb +4 -0
  23. data/db/migrate/20251225074653_remove_environment_from_error_logs.rb +3 -0
  24. data/db/migrate/20251225085859_add_enhanced_metrics_to_error_logs.rb +3 -0
  25. data/db/migrate/20251225093603_add_similarity_tracking_to_error_logs.rb +3 -0
  26. data/db/migrate/20251225100236_create_error_occurrences.rb +3 -0
  27. data/db/migrate/20251225101920_create_cascade_patterns.rb +3 -0
  28. data/db/migrate/20251225102500_create_error_baselines.rb +3 -0
  29. data/db/migrate/20251226020000_add_workflow_fields_to_error_logs.rb +3 -0
  30. data/db/migrate/20251226020100_create_error_comments.rb +3 -0
  31. data/db/migrate/20251229111223_add_additional_performance_indexes.rb +4 -0
  32. data/db/migrate/20260106094220_create_rails_error_dashboard_applications.rb +3 -0
  33. data/db/migrate/20260106094233_add_application_to_error_logs.rb +3 -0
  34. data/db/migrate/20260106094318_finalize_application_foreign_key.rb +5 -0
  35. data/lib/generators/rails_error_dashboard/install/install_generator.rb +32 -0
  36. data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +37 -4
  37. data/lib/rails_error_dashboard/configuration.rb +160 -3
  38. data/lib/rails_error_dashboard/configuration_error.rb +24 -0
  39. data/lib/rails_error_dashboard/engine.rb +17 -0
  40. data/lib/rails_error_dashboard/helpers/user_model_detector.rb +138 -0
  41. data/lib/rails_error_dashboard/queries/dashboard_stats.rb +19 -4
  42. data/lib/rails_error_dashboard/queries/errors_list.rb +20 -8
  43. data/lib/rails_error_dashboard/services/error_normalizer.rb +143 -0
  44. data/lib/rails_error_dashboard/services/git_blame_reader.rb +195 -0
  45. data/lib/rails_error_dashboard/services/github_link_generator.rb +159 -0
  46. data/lib/rails_error_dashboard/services/source_code_reader.rb +214 -0
  47. data/lib/rails_error_dashboard/version.rb +1 -1
  48. data/lib/rails_error_dashboard.rb +6 -0
  49. metadata +16 -12
  50. data/app/assets/stylesheets/rails_error_dashboard/_catppuccin_mocha.scss +0 -107
  51. data/app/assets/stylesheets/rails_error_dashboard/_components.scss +0 -625
  52. data/app/assets/stylesheets/rails_error_dashboard/_layout.scss +0 -257
  53. data/app/assets/stylesheets/rails_error_dashboard/_theme_variables.scss +0 -203
  54. data/app/assets/stylesheets/rails_error_dashboard/application.css +0 -15
  55. data/app/assets/stylesheets/rails_error_dashboard/application.css.map +0 -7
  56. data/app/assets/stylesheets/rails_error_dashboard/application.scss +0 -61
  57. data/app/views/layouts/rails_error_dashboard/application.html.erb +0 -55
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.1.29
4
+ version: 0.1.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anjan Jagirdar
@@ -253,11 +253,12 @@ dependencies:
253
253
  - - "~>"
254
254
  - !ruby/object:Gem::Version
255
255
  version: '2.5'
256
- description: 'Own your errors. Own your stack. A fully open-source, self-hosted error
256
+ description: "Own your errors. Own your stack. A fully open-source, self-hosted error
257
257
  dashboard for solo founders, indie hackers, and small teams. Professional error
258
258
  tracking with beautiful UI, multi-channel notifications (Slack, Email, Discord,
259
259
  PagerDuty), platform detection (iOS/Android/Web/API), and analytics. 5-minute setup,
260
- works out-of-the-box. Rails 7.0-8.1 compatible. ⚠️ BETA: API may change before v1.0.0.'
260
+ works out-of-the-box. Rails 7.0-8.1 compatible. ⚠️ BETA: API may change before v1.0.0.
261
+ \U0001F3AE Live demo: https://rails-error-dashboard.anjan.dev (gandalf/youshallnotpass)"
261
262
  email:
262
263
  - anjan.jagirdar@gmail.com
263
264
  executables: []
@@ -267,13 +268,6 @@ files:
267
268
  - MIT-LICENSE
268
269
  - README.md
269
270
  - Rakefile
270
- - app/assets/stylesheets/rails_error_dashboard/_catppuccin_mocha.scss
271
- - app/assets/stylesheets/rails_error_dashboard/_components.scss
272
- - app/assets/stylesheets/rails_error_dashboard/_layout.scss
273
- - app/assets/stylesheets/rails_error_dashboard/_theme_variables.scss
274
- - app/assets/stylesheets/rails_error_dashboard/application.css
275
- - app/assets/stylesheets/rails_error_dashboard/application.css.map
276
- - app/assets/stylesheets/rails_error_dashboard/application.scss
277
271
  - app/controllers/rails_error_dashboard/application_controller.rb
278
272
  - app/controllers/rails_error_dashboard/errors_controller.rb
279
273
  - app/helpers/rails_error_dashboard/application_helper.rb
@@ -298,11 +292,11 @@ files:
298
292
  - app/models/rails_error_dashboard/error_logs_record.rb
299
293
  - app/models/rails_error_dashboard/error_occurrence.rb
300
294
  - app/views/layouts/rails_error_dashboard.html.erb
301
- - app/views/layouts/rails_error_dashboard/application.html.erb
302
295
  - app/views/rails_error_dashboard/error_notification_mailer/error_alert.html.erb
303
296
  - app/views/rails_error_dashboard/error_notification_mailer/error_alert.text.erb
304
297
  - app/views/rails_error_dashboard/errors/_error_row.html.erb
305
298
  - app/views/rails_error_dashboard/errors/_pattern_insights.html.erb
299
+ - app/views/rails_error_dashboard/errors/_source_code.html.erb
306
300
  - app/views/rails_error_dashboard/errors/_stats.html.erb
307
301
  - app/views/rails_error_dashboard/errors/_timeline.html.erb
308
302
  - app/views/rails_error_dashboard/errors/_user_errors_table.html.erb
@@ -312,9 +306,11 @@ files:
312
306
  - app/views/rails_error_dashboard/errors/overview.html.erb
313
307
  - app/views/rails_error_dashboard/errors/platform_comparison.html.erb
314
308
  - app/views/rails_error_dashboard/errors/settings.html.erb
309
+ - app/views/rails_error_dashboard/errors/settings/_value_badge.html.erb
315
310
  - app/views/rails_error_dashboard/errors/show.html.erb
316
311
  - config/routes.rb
317
312
  - db/development.sqlite3
313
+ - db/migrate/20251223000000_create_rails_error_dashboard_complete_schema.rb
318
314
  - db/migrate/20251224000001_create_rails_error_dashboard_error_logs.rb
319
315
  - db/migrate/20251224081522_add_better_tracking_to_error_logs.rb
320
316
  - db/migrate/20251224101217_add_controller_action_to_error_logs.rb
@@ -345,8 +341,10 @@ files:
345
341
  - lib/rails_error_dashboard/commands/log_error.rb
346
342
  - lib/rails_error_dashboard/commands/resolve_error.rb
347
343
  - lib/rails_error_dashboard/configuration.rb
344
+ - lib/rails_error_dashboard/configuration_error.rb
348
345
  - lib/rails_error_dashboard/engine.rb
349
346
  - lib/rails_error_dashboard/error_reporter.rb
347
+ - lib/rails_error_dashboard/helpers/user_model_detector.rb
350
348
  - lib/rails_error_dashboard/logger.rb
351
349
  - lib/rails_error_dashboard/manual_error_reporter.rb
352
350
  - lib/rails_error_dashboard/middleware/error_catcher.rb
@@ -372,9 +370,13 @@ files:
372
370
  - lib/rails_error_dashboard/services/baseline_alert_throttler.rb
373
371
  - lib/rails_error_dashboard/services/baseline_calculator.rb
374
372
  - lib/rails_error_dashboard/services/cascade_detector.rb
373
+ - lib/rails_error_dashboard/services/error_normalizer.rb
374
+ - lib/rails_error_dashboard/services/git_blame_reader.rb
375
+ - lib/rails_error_dashboard/services/github_link_generator.rb
375
376
  - lib/rails_error_dashboard/services/pattern_detector.rb
376
377
  - lib/rails_error_dashboard/services/platform_detector.rb
377
378
  - lib/rails_error_dashboard/services/similarity_calculator.rb
379
+ - lib/rails_error_dashboard/services/source_code_reader.rb
378
380
  - lib/rails_error_dashboard/value_objects/error_context.rb
379
381
  - lib/rails_error_dashboard/version.rb
380
382
  - lib/tasks/error_dashboard.rake
@@ -386,8 +388,10 @@ metadata:
386
388
  homepage_uri: https://github.com/AnjanJ/rails_error_dashboard
387
389
  source_code_uri: https://github.com/AnjanJ/rails_error_dashboard
388
390
  changelog_uri: https://github.com/AnjanJ/rails_error_dashboard/blob/main/CHANGELOG.md
391
+ documentation_uri: https://rails-error-dashboard.anjan.dev
392
+ demo_uri: https://rails-error-dashboard.anjan.dev
389
393
  post_install_message: "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n
390
- \ Rails Error Dashboard v0.1.29\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n\U0001F195
394
+ \ Rails Error Dashboard v0.1.31\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n\U0001F195
391
395
  First time? Quick start:\n rails generate rails_error_dashboard:install\n rails
392
396
  db:migrate\n # Add to config/routes.rb:\n mount RailsErrorDashboard::Engine
393
397
  => '/error_dashboard'\n\n\U0001F504 Upgrading from v0.1.x?\n rails db:migrate\n
@@ -1,107 +0,0 @@
1
- // =============================================================================
2
- // Catppuccin Mocha Theme - Color Palette
3
- // =============================================================================
4
- // Official Catppuccin color palette for the Mocha flavor (dark theme)
5
- // https://github.com/catppuccin/catppuccin
6
- //
7
- // This file defines both SCSS variables and CSS custom properties for
8
- // maximum flexibility in styling components.
9
- // =============================================================================
10
-
11
- // -----------------------------------------------------------------------------
12
- // SCSS Variables - Accent Colors
13
- // -----------------------------------------------------------------------------
14
- // Use these for compile-time color calculations and SCSS functions
15
-
16
- $ctp-rosewater: #f5e0dc !default; // Soft highlights, subtle accents
17
- $ctp-flamingo: #f2cdcd !default; // Gentle warnings, soft alerts
18
- $ctp-pink: #f5c2e7 !default; // Playful accents, decorative
19
- $ctp-mauve: #cba6f7 !default; // Primary brand color, links
20
- $ctp-red: #f38ba8 !default; // Errors, critical states
21
- $ctp-maroon: #eba0ac !default; // Secondary errors, warnings
22
- $ctp-peach: #fab387 !default; // Warnings, cautionary states
23
- $ctp-yellow: #f9e2af !default; // Highlights, important info
24
- $ctp-green: #a6e3a1 !default; // Success, positive states
25
- $ctp-teal: #94e2d5 !default; // Info, neutral positive
26
- $ctp-sky: #89dceb !default; // Links, interactive elements
27
- $ctp-sapphire: #74c7ec !default; // Accents, decorative
28
- $ctp-blue: #89b4fa !default; // Info, primary actions
29
- $ctp-lavender: #b4befe !default; // Soft accents, highlights
30
-
31
- // -----------------------------------------------------------------------------
32
- // SCSS Variables - Neutral Colors
33
- // -----------------------------------------------------------------------------
34
- // Background and text colors for UI structure
35
-
36
- $ctp-text: #cdd6f4 !default; // Primary text
37
- $ctp-subtext1: #bac2de !default; // Secondary text
38
- $ctp-subtext0: #a6adc8 !default; // Tertiary text, muted
39
- $ctp-overlay2: #9399b2 !default; // Hover states, highlights
40
- $ctp-overlay1: #7f849c !default; // Subtle backgrounds
41
- $ctp-overlay0: #6c7086 !default; // Muted elements, disabled
42
- $ctp-surface2: #585b70 !default; // Secondary surfaces
43
- $ctp-surface1: #45475a !default; // Interactive elements
44
- $ctp-surface0: #313244 !default; // Component backgrounds (cards)
45
- $ctp-base: #1e1e2e !default; // Main background
46
- $ctp-mantle: #181825 !default; // Alternate background
47
- $ctp-crust: #11111b !default; // Borders, edges
48
-
49
- // -----------------------------------------------------------------------------
50
- // CSS Custom Properties (CSS Variables)
51
- // -----------------------------------------------------------------------------
52
- // These can be changed at runtime and accessed from JavaScript
53
- // Use these for theme switching and dynamic styling
54
-
55
- :root {
56
- // Accent colors as CSS variables
57
- --ctp-rosewater: #{$ctp-rosewater};
58
- --ctp-flamingo: #{$ctp-flamingo};
59
- --ctp-pink: #{$ctp-pink};
60
- --ctp-mauve: #{$ctp-mauve};
61
- --ctp-red: #{$ctp-red};
62
- --ctp-maroon: #{$ctp-maroon};
63
- --ctp-peach: #{$ctp-peach};
64
- --ctp-yellow: #{$ctp-yellow};
65
- --ctp-green: #{$ctp-green};
66
- --ctp-teal: #{$ctp-teal};
67
- --ctp-sky: #{$ctp-sky};
68
- --ctp-sapphire: #{$ctp-sapphire};
69
- --ctp-blue: #{$ctp-blue};
70
- --ctp-lavender: #{$ctp-lavender};
71
-
72
- // Neutral colors as CSS variables
73
- --ctp-text: #{$ctp-text};
74
- --ctp-subtext1: #{$ctp-subtext1};
75
- --ctp-subtext0: #{$ctp-subtext0};
76
- --ctp-overlay2: #{$ctp-overlay2};
77
- --ctp-overlay1: #{$ctp-overlay1};
78
- --ctp-overlay0: #{$ctp-overlay0};
79
- --ctp-surface2: #{$ctp-surface2};
80
- --ctp-surface1: #{$ctp-surface1};
81
- --ctp-surface0: #{$ctp-surface0};
82
- --ctp-base: #{$ctp-base};
83
- --ctp-mantle: #{$ctp-mantle};
84
- --ctp-crust: #{$ctp-crust};
85
- }
86
-
87
- // -----------------------------------------------------------------------------
88
- // Utility Functions
89
- // -----------------------------------------------------------------------------
90
-
91
- // Add opacity to a Catppuccin color
92
- // Usage: background-color: ctp-opacity($ctp-red, 0.1);
93
- @function ctp-opacity($color, $opacity) {
94
- @return rgba($color, $opacity);
95
- }
96
-
97
- // Lighten a Catppuccin color (for hover states)
98
- // Usage: background-color: ctp-lighten($ctp-mauve, 10%);
99
- @function ctp-lighten($color, $amount) {
100
- @return lighten($color, $amount);
101
- }
102
-
103
- // Darken a Catppuccin color (for active states)
104
- // Usage: background-color: ctp-darken($ctp-mauve, 10%);
105
- @function ctp-darken($color, $amount) {
106
- @return darken($color, $amount);
107
- }