bitfab 0.12.1 → 0.12.2

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: '08c78bc5383ea19b2bb2cb289ede12e22ede81afaaf13d9500fe7ca49ac6408e'
4
- data.tar.gz: 3c193f89a4843aaea5ec3c00d9e5b5410b787d802256b28ff3ca0eaa1c5d8e1c
3
+ metadata.gz: 90f13972943bdfcdd6c5b72859d9ae03b23549577771f0e7d4f8726e2cff9037
4
+ data.tar.gz: f7c393d995069261d6ddf554727b02b25e6ec37f1f516a0ad01b114f684b5cb9
5
5
  SHA512:
6
- metadata.gz: 2c71dd260c5af46a18eeb2d9d8f74e560509293a4053cff0a2055215e07302ddeeeec0c4f8693551545403343e9ea80cd8bd3a2adae99ce9780f98cb427386d2
7
- data.tar.gz: 72d63187fcf637f6b65854f13a4f837293531cf55707679057b45e52b498bab2dfa78671e48e64833a5a07035f3e20800438184bd2b99cbd32e376347278d264
6
+ metadata.gz: 2ddfbc335058f37fc3f024b6596d3029dff1601be1243a8f779bbcd7dc899d78f75769c2db8e70894a316649ece042b56f9089fbe39b573bfe40cf313ec2c984
7
+ data.tar.gz: 0eca0c359e794699587347552b79d608d4ebf6016abef029795a2ffabc475f7d52bc16bcddf32525c7f9a714e7df6386af3c2f9ab6d40d0f8a13c638baf4bf3c
data/lib/bitfab/client.rb CHANGED
@@ -84,13 +84,12 @@ module Bitfab
84
84
  return yield unless @enabled
85
85
 
86
86
  parent = SpanContext.current
87
- trace_id = parent ? parent[:trace_id] : SecureRandom.uuid
87
+ replay_ctx = ReplayContext.current
88
+ trace_id = parent ? parent[:trace_id] : (replay_ctx&.dig(:trace_id) || SecureRandom.uuid)
88
89
  span_id = SecureRandom.uuid
89
90
  parent_span_id = parent&.dig(:span_id)
90
91
  is_root_span = parent_span_id.nil?
91
92
  started_at = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%S.%3NZ")
92
-
93
- replay_ctx = ReplayContext.current
94
93
  resolved_test_run_id = replay_ctx&.dig(:test_run_id)
95
94
  resolved_input_source_span_id = replay_ctx&.dig(:input_source_span_id)
96
95
  resolved_input_source_trace_id = replay_ctx&.dig(:input_source_trace_id)
data/lib/bitfab/replay.rb CHANGED
@@ -22,19 +22,14 @@ module Bitfab
22
22
 
23
23
  # Execute a block with replay context set on the current thread.
24
24
  # The context is automatically cleared when the block completes.
25
- #
26
- # @param test_run_id [String]
27
- # @param input_source_span_id [String, nil]
28
- # @param input_source_trace_id [String, nil]
29
- # @param mock_tree [Hash{String => Hash}, nil] keyed by "#{key}:#{index}"
30
- # @param mock_strategy [String, nil] one of MOCK_STRATEGIES
31
- def with_context(test_run_id:, input_source_span_id: nil, input_source_trace_id: nil,
25
+ def with_context(test_run_id:, input_source_span_id: nil, input_source_trace_id: nil, trace_id: nil,
32
26
  mock_tree: nil, mock_strategy: nil)
33
27
  previous = Thread.current[REPLAY_CONTEXT_KEY]
34
28
  ctx = {
35
29
  test_run_id:,
36
30
  input_source_span_id:,
37
- input_source_trace_id:
31
+ input_source_trace_id:,
32
+ trace_id:
38
33
  }
39
34
  if mock_tree
40
35
  ctx[:mock_tree] = mock_tree
@@ -100,9 +95,14 @@ module Bitfab
100
95
  Bitfab.flush_traces
101
96
 
102
97
  begin
103
- http_client.complete_replay(test_run_id)
98
+ complete_response = http_client.complete_replay(test_run_id)
99
+ trace_id_map = complete_response&.dig("traceIds") || {}
100
+ result_items.each do |item|
101
+ item[:trace_id] = trace_id_map[item[:trace_id]]
102
+ end
104
103
  rescue => e
105
104
  warn "Bitfab: Failed to complete replay: #{e.message}"
105
+ result_items.each { |item| item[:trace_id] = nil }
106
106
  end
107
107
 
108
108
  {
@@ -248,11 +248,13 @@ module Bitfab
248
248
 
249
249
  fn_result = nil
250
250
  fn_error = nil
251
+ sdk_trace_id = SecureRandom.uuid
251
252
 
252
253
  ReplayContext.with_context(
253
254
  test_run_id:,
254
255
  input_source_span_id:,
255
256
  input_source_trace_id:,
257
+ trace_id: sdk_trace_id,
256
258
  mock_tree:,
257
259
  mock_strategy:
258
260
  ) do
@@ -272,7 +274,8 @@ module Bitfab
272
274
  error: fn_error,
273
275
  duration_ms: metrics[:duration_ms],
274
276
  tokens: metrics[:tokens],
275
- model: metrics[:model]
277
+ model: metrics[:model],
278
+ trace_id: sdk_trace_id
276
279
  }
277
280
  end
278
281
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bitfab
4
- VERSION = "0.12.1"
4
+ VERSION = "0.12.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitfab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.12.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harvest Team