v1.37.0
Release Notes
-
#4453 feat(api): add v2 score endpoint
Adds a v2 REST scoring endpoint for recording named scores against a function run or individual steps in a run. This
POST /v2/runs/{runId}/scoreswith body:
[ { "name": "accuracy", "value": 0.95, "stepId": "step 1" } ]Scores are run scoped when
stepIdis omitted. Score values can be a number or boolean. Scores can be submitted in batches of up to 100. Experiment scores are supported at run level only (I copied this from the sdk, shout if we don't want to support this in the api) like so:[ { "name": "accuracy", "value": 0.95, "experiment": { "id": "model-routing", "variant": "baseline" } } ] -
#4566 fix(execution): improve copy for error responses that do not come from the SDK
Augment responses to better identify when error responses do not come the SDK but rather intermediary proxies or app timeouts.
-
#4571 fix: Display errored attempts without step as
Function Errorrather than FinalizationErrored attempts that never resolved to a step are displayed as "Function error" rather than "Finalization" in the trace view.
-
#4572 feat: bring AI Metadata extraction from extended traces to parity with JS SDK
Extract granular token usage and request parameter information from extended traces for AI Metadata
-
#4591 perf: reduce sleep queue item payload size
Reduces the queue memory footprint of sleeps by ~30%.
-
#4593 fix: lease race causing wasted work
Fix race condition that could cause a completed step to requeue, despite already idempotently saving the outcome
-
#4598 fix(tracing): drop duplicate finalization span on errored runs
Errored runs no longer show a duplicate "Finalization" span in the trace view when every attempt failed before the SDK responded.
-
#4600 fix(tracing): stop dev server finalization group spans from duplicating in the trace UI
Dev server: runs whose finalization request failed and was retried no longer show a duplicate "Finalization" span in the trace view.
Migration Notes
-
#4597 refactor(ui): decompose traceRollup into focused helpers
🤖 Generated with Claude Code
-
#4598 fix(tracing): drop duplicate finalization span on errored runs
🤖 Generated with Claude Code
-
#4600 fix(tracing): stop dev server finalization group spans from duplicating in the trace UI
🤖 Generated with Claude Code
-
#4603 test(constraintapi): add Redis Lua compatibility regression
None
Validation
go test ./pkg/constraintapigo test ./tests/execution/queue -run 'TestLuaCompatibility/Basic Valkey/constraint API accepts empty usage arrays' -count=1 -vgo test ./tests/execution/queue -run 'TestLuaCompatibility/Basic Garnet/constraint API accepts empty usage arrays' -count=1 -v- Copied the moved regression case onto merge base
fda3771deand confirmed the Valkey run fails for acquire, extend, and release withjson: cannot unmarshal object into Go struct field ... cu.
Changelog
🚀 Features
- (queue) Make pause requeue extension configurable (#4569)
- (constraintapi) Return lease usage from lifecycle ops (#4596)
- Bring AI Metadata extraction from extended traces to parity with JS SDK (#4572)
- (traces) Remove run-details-v4 flag and legacy RunDetailsV3, always render V4 (#4584)
- (api) Add v2 score endpoint (#4453)
🐛 Bug Fixes
- (execution) Improve copy for error responses that do not come from the SDK (#4566)
- Hydrate determinstic spans for sleep queue items on retries (#4592)
- Lease race causing wasted work (#4593)
- (constraintapi) Fix Constraint API marshaling (#4602)
- (dashboard) Update Scores and Sessions nav icons (#4605)
- (tracing) Stop dev server finalization group spans from duplicating in the trace UI (#4600)
- Display errored attempts without step as
Function Errorrather than Finalization (#4571) - (tracing) Drop duplicate finalization span on errored runs (#4598)
- (sessions) Sessions docs url (#4609)
🚜 Refactor
- (queue) Subsume QueueManager APIs into other appropriate narrow interfaces (#4581)
- (ui) Decompose traceRollup into focused helpers (#4597)
- (queue) Break up queueProcessor (#4606)
⚡ Performance
- Reduce sleep queue item payload size (#4591)
🧪 Testing
- (constraintapi) Add Redis Lua compatibility regression (#4603)
- Capture WaitForRunStatus status-transition history on timeout (#4447)
- (dnscache) Test DNS cache against mock servers to reduce flakes (#4595)
⚙️ Miscellaneous Tasks
Fetched July 14, 2026
