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 +4 -4
- data/AGENTS.md +89 -0
- data/CHANGELOG.md +7 -0
- data/CLAUDE.md +1 -0
- data/lib/honeybadger/plugins/active_job.rb +5 -1
- data/lib/honeybadger/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 39ebd5e4fe5914237990936efd9e995f4fa33d2aea18bba59fab9884d7ca0e09
|
|
4
|
+
data.tar.gz: 22c9428b20da4cc7ce86173bee426231e24a05827b3f1403de46e65111453acc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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)
|
data/lib/honeybadger/version.rb
CHANGED
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.
|
|
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
|