| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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: Michael Chou <michael.chou@scale.com>
Release version edited manuallyThe Pull Request version has been manually set to 0.11.5 and will be used for the release. If you instead want to use the version number 0.12.0 generated from conventional commits, just remove the label autorelease: custom version from this Pull Request. |
Sorry, something went wrong.
…ts adapter (#375) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Sorry, something went wrong.
|
🤖 Release is at https://github.com/scaleapi/scale-agentex-python/releases/tag/v0.11.5 🌻 |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Automated Release PR
0.11.5 (2026-05-29)
Full Changelog: v0.11.4...v0.11.5
Features
Performance Improvements
Chores
Refactors
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 is the 0.11.5 release PR, bundling four changesets: tracing performance improvements, a protocol-type module promotion, new cleaned_at fields on task response types, and dependency cleanup.
Confidence Score: 5/5
Safe to merge — changes are well-scoped, each guarded by matching tests, and backward compatibility is explicitly validated.
All three major areas of change (span-queue drain overhaul, per-loop client caching, protocol-type promotion) are covered by new or updated unit tests that pin the exact contracts being changed. The retry/drop logic is internally consistent, the WeakKeyDictionary eviction is verified end-to-end, and the back-compat shims are identity-tested. Dependency removals are dev/test packages that were never appropriate in the runtime wheel.
No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD E[enqueue span] --> S{_stopping?} S -- yes --> D1[record_drop: shutting down] S -- no --> Q{queue full?} Q -- yes --> D2[record_drop: queue full] Q -- no --> QI[put item on asyncio.Queue\nattempts=0] QI --> DRAIN[drain loop: await queue.get] DRAIN --> FIRST[batch = first item] FIRST --> LINGER{linger_ms > 0\nand not stopping?} LINGER -- yes --> WAIT[wait_for queue.get\nup to linger deadline] WAIT --> MORE{more items\nor timeout?} MORE -- more items --> BATCH_FULL{batch == batch_size?} BATCH_FULL -- no --> WAIT BATCH_FULL -- yes --> SPLIT MORE -- timeout --> SPLIT[split START / END] LINGER -- no --> DRAIN_NOW[drain_nowait until\nbatch_size or QueueEmpty] DRAIN_NOW --> SPLIT SPLIT --> PROC[_process_items per event_type\ngather per-processor _handle] PROC --> TRY{processor call\nsucceeds?} TRY -- yes --> CLEAR[batch.clear loop back] CLEAR --> DRAIN TRY -- no --> RETRY{retryable status\n429/5xx?} RETRY -- no --> D3[record_drop: permanent failure] RETRY -- yes --> ATCHECK{attempts+1 < max_retries?} ATCHECK -- no --> D4[record_drop: retries exhausted] ATCHECK -- yes --> REENQUEUE[_reenqueue\nattempts+1, processors=p] REENQUEUE --> Q2{queue full?} Q2 -- yes --> D5[record_drop: queue full on retry] Q2 -- no --> DRAIN subgraph PerLoopCache [Per-event-loop client cache] LC[asyncio.get_running_loop] --> WKD[WeakKeyDictionary lookup] WKD -- miss --> BUILD[_build_client keepalive=20] BUILD --> STORE[store in WeakKeyDictionary] WKD -- hit --> USE[reuse existing client] end PROC -.->|HTTP call via| PerLoopCacheReviews (6): Last reviewed commit: "release: 0.11.5" | Re-trigger Greptile