Module: Bulldogger::Probe

Defined in:
lib/bulldogger/probe.rb,
lib/bulldogger/probe/bucket.rb,
lib/bulldogger/probe/target.rb,
lib/bulldogger/probe/writer.rb,
lib/bulldogger/probe/session.rb,
lib/bulldogger/probe/registry.rb,
lib/bulldogger/probe/comparator.rb,
lib/bulldogger/probe/method_stats.rb,
lib/bulldogger/probe/raise_tracker.rb,
lib/bulldogger/probe/target_resolver.rb

Overview

Targeted capture: instead of a snapshot at the moment a test fails (Capture) or a full trace of every call (Record), a probe watches one or a few named methods across many calls and reports the shape of what it saw -- argument and return classes, nil counts, raise-exit counts, callers -- so a coding agent can answer "what does this method actually receive and return" without reading every call site by hand.

See lib/bulldogger/probe/session.rb for the mechanism: one TracePoint per target method (:call/:return, targeted -- cheap and strictly filtered) plus one shared, ref-counted pair of untargeted TracePoints (:raise/:rescue, per contract-verbs.md the only way to tell a raise-exit apart from a method that legitimately returns nil).

Defined Under Namespace

Modules: Comparator, Registry, TargetResolver, Writer Classes: Bucket, MethodStats, RaiseTracker, Session, Target

Class Method Summary collapse

Class Method Details

.call(target_strings, config:, run:, &block) ⇒ Object



28
29
30
# File 'lib/bulldogger/probe.rb', line 28

def self.call(target_strings, config:, run:, &block)
  Session.run(target_strings, config: config, run: run, &block)
end

.compare(path_a, path_b) ⇒ Object



32
33
34
# File 'lib/bulldogger/probe.rb', line 32

def self.compare(path_a, path_b)
  Comparator.compare(path_a, path_b)
end

.start(target_strings, config:, run:) ⇒ Object



24
25
26
# File 'lib/bulldogger/probe.rb', line 24

def self.start(target_strings, config:, run:)
  Session.start(target_strings, config: config, run: run)
end