honeybadger 6.4.0 → 6.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d68528495f6a108b6f425a6c19f48fdbc6cb6e70aae0db958b03f77e24df7da4
4
- data.tar.gz: b2e1a816492b63b86f9be7d179c943e7dddfe9e724c5b04ffdfcf4dd057c0833
3
+ metadata.gz: 39ebd5e4fe5914237990936efd9e995f4fa33d2aea18bba59fab9884d7ca0e09
4
+ data.tar.gz: 22c9428b20da4cc7ce86173bee426231e24a05827b3f1403de46e65111453acc
5
5
  SHA512:
6
- metadata.gz: a6f188b0a3be2f3dc9f77f28c18503afac2d1805a59c62a23ee9ac7ad2dad919bbfbdd5d35dc8153dfff63fc279ced4da497bc30074b013e7cba19830fde74ea
7
- data.tar.gz: 92359a65d182ac76af10ad10ca7e09132d9fb2750feaa4a12d73627d1cedd889c4acb83ed43aec3f54f9dd97ce45e84675d6f66a0764f9f7e4efffbdacd61901
6
+ metadata.gz: 5a92e33d946d42a7b4f0dd0b7a0cc2af6e4ea144cd3353aa0b2a42ffa4d942a6884b1d01a22506896135dbdce83a4ac9a48a211aab8b7e2abe2a78a2f282e0bd
7
+ data.tar.gz: 9e3ce8579499dbe5af256f04e1b1a7cca51f51c83a60d34205999dbb682feb849bf77014f399612b46b8e12b1a37b484b9e79ed1042d1404c7982fe033c91e5c
data/AGENTS.md ADDED
@@ -0,0 +1,89 @@
1
+ # AGENTS.md
2
+
3
+ This file provides guidance for AI agents when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ Honeybadger Ruby gem — error tracking and observability for Ruby applications. Supports Rails, Sinatra, Hanami, and standalone Ruby. Requires Ruby >= 3.0.
8
+
9
+ ## Common Commands
10
+
11
+ ### Tests (RSpec)
12
+
13
+ ```bash
14
+ bundle exec rake # Run all tests (units + integrations + features)
15
+ bundle exec rake spec:units # Unit tests only
16
+ bundle exec rake spec:features # Feature/CLI tests (Aruba-based, slower)
17
+ bundle exec rake spec:integrations # Integration tests
18
+
19
+ # Single test file
20
+ bundle exec rspec spec/unit/honeybadger/agent_spec.rb
21
+
22
+ # Single test by line number
23
+ bundle exec rspec spec/unit/honeybadger/agent_spec.rb:42
24
+
25
+ # Tests with a specific Appraisal gemfile (e.g., Rails 8)
26
+ bundle exec appraisal rails8 rake spec:units
27
+ ```
28
+
29
+ ### Linting
30
+
31
+ ```bash
32
+ bundle exec standardrb # Check style (auto-fixes by default, see .standard.yml)
33
+ bundle exec standardrb --no-fix # Check without fixing
34
+ ```
35
+
36
+ ### Appraisals (multi-framework testing)
37
+
38
+ ```bash
39
+ bundle exec appraisal install # Install all appraisal gemfiles
40
+ bundle exec appraisal list # List available appraisals
41
+ ```
42
+
43
+ Available appraisals: standalone, rack, rack-1, sinatra, hanami, rails6.1, rails7.0, rails7.1, rails7.2, rails8, rails (edge), sidekiq, sidekiq7, resque, delayed_job, binding_of_caller.
44
+
45
+ ## Architecture
46
+
47
+ ### Entry Points
48
+
49
+ - `lib/honeybadger.rb` — Framework detection entrypoint. Detects Rails/Sinatra/Hanami and loads the appropriate initializer from `lib/honeybadger/init/`.
50
+ - `lib/honeybadger/ruby.rb` — Core require that loads `Honeybadger::Singleton`.
51
+ - `bin/honeybadger` — CLI (Thor-based, vendored in `vendor/cli/`).
52
+
53
+ ### Core Classes
54
+
55
+ - **`Agent`** (`lib/honeybadger/agent.rb`) — Central orchestrator. Global singleton accessed via `Honeybadger.method_name` (delegated through `Singleton`). Manages configuration, context, plugins, and worker threads.
56
+ - **`Config`** (`lib/honeybadger/config.rb`) — Layered configuration: Ruby DSL > environment variables (`HONEYBADGER_*`) > YAML > defaults. Sources in `lib/honeybadger/config/`.
57
+ - **`Notice`** (`lib/honeybadger/notice.rb`) — Exception/error data structure with backtrace, context, sanitization, and JSON serialization.
58
+ - **`Event`** (`lib/honeybadger/event.rb`) — Custom event/Insights payload. Acts like a Hash via delegation.
59
+ - **`Plugin`** (`lib/honeybadger/plugin.rb`) — Plugin registration system with `requirement` and `execution` blocks. All plugins in `lib/honeybadger/plugins/`.
60
+
61
+ ### Plugin System
62
+
63
+ Plugins register via `Honeybadger::Plugin.register('name')` with requirement blocks (checked at load time) and execution blocks (run when requirements are met). ~22 plugins for frameworks, job queues, HTTP clients, etc. See `lib/honeybadger/plugins/` for examples.
64
+
65
+ ### Backend Abstraction
66
+
67
+ `lib/honeybadger/backend/` — `Server` (production HTTP), `Debug` (stdout), `Null` (no-op), `Test` (in-memory). Decouples delivery from collection.
68
+
69
+ ### Worker Threads
70
+
71
+ - `Worker` — base async notice delivery
72
+ - `EventsWorker` — async event/Insights processing
73
+ - `MetricsWorker` — periodic metric collection (calls plugin `collect` blocks)
74
+
75
+ ### Rack Middleware
76
+
77
+ `lib/honeybadger/rack/` — `ErrorNotifier` (catches exceptions), `UserFeedback`, `UserInformer`.
78
+
79
+ ### Breadcrumbs
80
+
81
+ `lib/honeybadger/breadcrumbs/` — Ring buffer-based trail of events leading to an error. Integrates with ActiveSupport::Notifications.
82
+
83
+ ## Key Conventions
84
+
85
+ - Public API classes/methods are marked with YARD `@api public`. Everything else is internal and may change without notice.
86
+ - All commits follow [conventional commits](https://www.conventionalcommits.org/). Releases are automated via Release Please.
87
+ - Tests are filtered by framework: specs tagged `framework: :rails` only run under a Rails appraisal gemfile. Same for `:sinatra`, `:rake`, `:ruby`.
88
+ - `spec/spec_helper.rb` stubs `https://api.honeybadger.io/v1/notices` globally and sets up a null backend agent before each test.
89
+ - Feature specs use Aruba (CLI testing framework) with 12s timeout (120s on JRuby).
data/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log
2
2
 
3
3
 
4
+ ## [6.4.1](https://github.com/honeybadger-io/honeybadger-ruby/compare/v6.4.0...v6.4.1) (2026-02-25)
5
+
6
+
7
+ ### Bug Fixes
8
+
9
+ * defer ActiveJob callback registration via on_load hook ([#783](https://github.com/honeybadger-io/honeybadger-ruby/issues/783)) ([2003726](https://github.com/honeybadger-io/honeybadger-ruby/commit/2003726d28520e22ab078cc3f4170b0a81d31a6b)), closes [#782](https://github.com/honeybadger-io/honeybadger-ruby/issues/782)
10
+
4
11
  ## [6.4.0](https://github.com/honeybadger-io/honeybadger-ruby/compare/v6.3.1...v6.4.0) (2026-02-18)
5
12
 
6
13
 
data/CLAUDE.md ADDED
@@ -0,0 +1 @@
1
+ AGENTS.md
@@ -53,7 +53,11 @@ module Honeybadger
53
53
  end
54
54
 
55
55
  execution do
56
- ::ActiveJob::Base.set_callback(:perform, :around, prepend: true, &ActiveJob.method(:perform_around)) if Honeybadger.config[:"exceptions.enabled"]
56
+ if Honeybadger.config[:"exceptions.enabled"]
57
+ ::ActiveSupport.on_load(:active_job) do
58
+ ::ActiveJob::Base.set_callback(:perform, :around, prepend: true, &ActiveJob.method(:perform_around))
59
+ end
60
+ end
57
61
 
58
62
  if config.load_plugin_insights?(:active_job)
59
63
  ::ActiveSupport::Notifications.subscribe(/(enqueue_at|enqueue|enqueue_retry|enqueue_all|perform|retry_stopped|discard)\.active_job/, Honeybadger::ActiveJobSubscriber.new)
@@ -1,4 +1,4 @@
1
1
  module Honeybadger
2
2
  # The current String Honeybadger version.
3
- VERSION = "6.4.0".freeze
3
+ VERSION = "6.4.1".freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybadger
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.0
4
+ version: 6.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Honeybadger Industries LLC
@@ -47,7 +47,9 @@ executables:
47
47
  extensions: []
48
48
  extra_rdoc_files: []
49
49
  files:
50
+ - AGENTS.md
50
51
  - CHANGELOG.md
52
+ - CLAUDE.md
51
53
  - LICENSE
52
54
  - README.md
53
55
  - TROUBLESHOOTING.md