bitfab 0.12.4 → 0.12.5

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: df5d0efa5533cd59dcfb77a2414e7a55963c51f6798e9ada18adaa1c41d1ead5
4
- data.tar.gz: ca45c66023664f8c1ba7a3cdd4d89bba71b093150d93fce7cdf69810c56babb3
3
+ metadata.gz: a66f64bbe867d0adeafbebc9984413802c8ecf8ae47007078b8a3e9d336e5bd0
4
+ data.tar.gz: 726943a84542d9bc5ead1cc54b0c66d726edaf57ed03703588f63fd41fb67ecd
5
5
  SHA512:
6
- metadata.gz: 3ca91c9fac20958f69b45e99e197116834ff0740ae3a7d8231e15fe1bc4f35fb4e874d3fce84fb4597d0a8253742d88d084538cfa7fa9806d85b935320eb8591
7
- data.tar.gz: db85971ed1a07a084ab2e8c8a8b631e4cac0c148e33d116e9aaa856a41230f0d6de8b4efd819e7b372c1ccbe3d75287f6014e9ed5b690472c4fd0f832d77d369
6
+ metadata.gz: fb26e2388ac5585d8a74aeb8de4f2b8af12df1d6abf4c882560a96107de46afd6fa9a8c1fd99482ae5af6c49234f058f473338c00b91502494e0c078c65a052f
7
+ data.tar.gz: 9eedf94be719b11b2456ed0002eaeb01afc0b1ef42099850dcc4507096072efb593975a5fa92cef8a99fa224cb1873d0f6c41bfa9d343782f70989b542303da4
data/lib/bitfab/replay.rb CHANGED
@@ -147,10 +147,16 @@ module Bitfab
147
147
  end
148
148
 
149
149
  # Fetch span data and execute a single replay item.
150
+ #
151
+ # Any error while fetching the span, building the mock tree, or
152
+ # deserializing inputs is captured on the returned item's :error rather
153
+ # than propagated, so one bad trace never aborts the whole replay run
154
+ # (mirrors the TypeScript and Python SDKs' per-item rescue).
150
155
  def process_single_item(http_client, server_item, receiver, method_name, test_run_id, mock_strategy)
156
+ metrics = extract_server_item_metrics(server_item)
157
+
151
158
  span = http_client.get_external_span(server_item["externalSpanId"])
152
159
  item_data = extract_span_data(span)
153
- metrics = extract_server_item_metrics(server_item)
154
160
 
155
161
  mock_tree = nil
156
162
  if mock_strategy == "all" || mock_strategy == "marked"
@@ -169,6 +175,18 @@ module Bitfab
169
175
  mock_strategy:,
170
176
  mock_tree:
171
177
  )
178
+ rescue => e
179
+ warn "Bitfab: replay item for span #{server_item["externalSpanId"]} failed before execution: #{e.message}"
180
+ {
181
+ input: [],
182
+ result: nil,
183
+ original_output: nil,
184
+ error: e.message,
185
+ duration_ms: metrics&.dig(:duration_ms),
186
+ tokens: metrics&.dig(:tokens),
187
+ model: metrics&.dig(:model),
188
+ trace_id: nil
189
+ }
172
190
  end
173
191
 
174
192
  # Walk the children of a root span tree node depth-first and build a
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bitfab
4
- VERSION = "0.12.4"
4
+ VERSION = "0.12.5"
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.4
4
+ version: 0.12.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harvest Team