chore: release main#424
Merged
declan-scale merged 19 commits intoJun 23, 2026
Merged
Conversation
… delivery adapters, emitter) (#412)
…gModel (#355) Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: Declan Brady <declan.brady@scale.com> Co-authored-by: Nitesh Dhanpal <NiteshDhanpal@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
a191216 to
bc0de88
Compare
…quivalence [AGX1-373] (#414)
bc0de88 to
4265db1
Compare
4265db1 to
5f73947
Compare
40522a9 to
dc4d0af
Compare
dc4d0af to
d01f757
Compare
d01f757 to
d5e53aa
Compare
d5e53aa to
eea2ce6
Compare
eea2ce6 to
b4f2805
Compare
…est) (#438) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
b4f2805 to
7cba674
Compare
7cba674 to
8d5f6aa
Compare
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8d5f6aa to
efc0a50
Compare
efc0a50 to
ba79c0d
Compare
ba79c0d to
26f7ca4
Compare
8bcf459 to
3fc8174
Compare
3fc8174 to
44602a2
Compare
44602a2 to
055f0c1
Compare
declan-scale
approved these changes
Jun 23, 2026
Contributor
Author
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ Stainless prepared a new release
agentex-client: 0.15.0
0.15.0 (2026-06-23)
Full Changelog: agentex-client-v0.14.0...agentex-client-v0.15.0
Features
Bug Fixes
Refactors
agentex-sdk: 0.14.0
0.14.0 (2026-06-23)
Full Changelog: agentex-sdk-v0.13.2...agentex-sdk-v0.14.0
Features
This pull request is managed by Stainless's GitHub App.
The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.
For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.
🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions
Greptile Summary
This release (agentex-client 0.15.0 / agentex-sdk 0.14.0) introduces the unified harness surface — a shared
SpanDeriver → SpanTracer → UnifiedEmitterpipeline that all agent frameworks (LangGraph, pydantic-ai, OpenAI Agents, Claude Code, Codex) now route through for streaming delivery and tracing. It also adds a webhook helper (handle_webhook) for forward-route agents, a newwebhooks.create_webhook_triggerAPI resource, and two operational fixes: fail-open tracing span activities under Temporal, and end-only span ingest by default in the Agentex tracing processor.src/agentex/lib/core/harness/): Newtypes.py,span_derivation.py,tracer.py,auto_send.py,yield_delivery.py, andemitter.pydefine the canonicalStreamTaskMessage*pipeline; each framework tap now implementsHarnessTurnand delegates delivery + tracing toUnifiedEmitter.TracingModule.start_span/end_spanin Temporal now fail-open onActivityError/TemporalTimeoutErrorwith a low-cardinality Temporal metric;AgentexTracingProcessorskips the span-start write by default (AGENTEX_TRACING_SKIP_AGENTEX_SPAN_START=1), halving per-span API calls.handle_webhookhelper inagentex.lib.sdk.utils.webhooks(withgithub_prandgenericshapers, remote params resolution, session-keyed task get-or-create, and async reply polling) backed by a newwebhooks.create_webhook_triggerSDK method.Confidence Score: 5/5
Safe to merge; the unified harness surface is well-structured, the operational tracing fixes are conservative and reversible via env-var, and the webhook helper degrades gracefully on errors.
The core harness pipeline (SpanDeriver → SpanTracer → UnifiedEmitter) is clean with appropriate defensive guards throughout. The fail-open tracing change and end-only ingest default are intentional and well-documented. The only new code issue found is a dead private helper (_message_ids) in webhooks.py that has no runtime impact.
src/agentex/lib/sdk/utils/webhooks.py (dead _message_ids function); src/agentex/lib/core/temporal/plugins/openai_agents/models/temporal_streaming_model.py (previously noted unreachable guard at lines 534-536 remains).
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[Agent Turn\nLangGraph / pydantic-ai / OpenAI / ClaudeCode / Codex] --> B[HarnessTurn\nevents + usage] B --> C[UnifiedEmitter] C --> D{Delivery Mode} D -->|sync HTTP ACP| E[yield_events\nyield_delivery.py] D -->|async / temporal| F[auto_send\nauto_send.py] E --> G[SpanDeriver\nspan_derivation.py] F --> G G --> H[SpanTracer\ntracer.py] H --> I[adk.tracing\nstart_span / end_span] E --> J[StreamTaskMessage*\nyielded to caller] F --> K[adk.streaming\nstreaming_task_message_context] F --> L[TurnResult\nfinal_text + usage]%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD A[Agent Turn\nLangGraph / pydantic-ai / OpenAI / ClaudeCode / Codex] --> B[HarnessTurn\nevents + usage] B --> C[UnifiedEmitter] C --> D{Delivery Mode} D -->|sync HTTP ACP| E[yield_events\nyield_delivery.py] D -->|async / temporal| F[auto_send\nauto_send.py] E --> G[SpanDeriver\nspan_derivation.py] F --> G G --> H[SpanTracer\ntracer.py] H --> I[adk.tracing\nstart_span / end_span] E --> J[StreamTaskMessage*\nyielded to caller] F --> K[adk.streaming\nstreaming_task_message_context] F --> L[TurnResult\nfinal_text + usage]Reviews (10): Last reviewed commit: "chore: release main" | Re-trigger Greptile