Skip to content

release: 0.9.6#293

Merged
stainless-app[bot] merged 216 commits intomainfrom
release-please--branches--main--changes--next
Mar 30, 2026
Merged

release: 0.9.6#293
stainless-app[bot] merged 216 commits intomainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app bot commented Mar 24, 2026

Automated Release PR

0.9.6 (2026-03-30)

Full Changelog: v0.9.5...v0.9.6

Features

  • api: add task state update methods (d699e24)
  • api: keep backwards compatible models (3ec2a1e)
  • api: use DeploymentHistory instead of DeploymentHistoryRetrieveResponse (4c63d9c)
  • internal: implement indices array format for query and form serialization (3bf3db1)

Bug Fixes

  • deps: bump minimum typing-extensions version (fd76bc9)
  • pydantic: do not pass by_alias unless set (235636b)
  • sanitize endpoint path params (e6472be)

Chores

  • ci: skip lint on metadata-only changes (f4d5053)
  • ci: skip uploading artifacts on stainless-internal branches (45e7622)
  • format all api.md files (e67fa69)
  • internal: add request options to SSE classes (b788da0)
  • internal: bump dependencies (95112dd)
  • internal: fix lint error on Python 3.14 (cb99db1)
  • internal: make test_proxy_environment_variables more resilient (7bfaa75)
  • internal: make test_proxy_environment_variables more resilient to env (fd1a06e)
  • internal: remove mock server code (3a5ae0f)
  • internal: tweak CI branches (2e74af0)
  • internal: update gitignore (aba7c4f)
  • internal: version bump (1ef69ed)
  • internal: version bump (1132255)
  • internal: version bump (60e5402)
  • update mock server docs (8c5c6d3)

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

Automated Stainless SDK release (v0.9.6) that adds task state management APIs, hardens path parameter handling, and includes several internal improvements.

  • New task state update methods: Adds cancel, complete, fail, terminate, timeout, update_by_id, update_by_name, and query_workflow endpoints to the tasks resource (both sync and async), with corresponding param types and tests
  • Path parameter sanitization: Introduces path_template() utility that percent-encodes path params per RFC 3986 and rejects dot-segment traversal attacks, replacing raw f-string interpolation across all resource files
  • Pydantic compatibility fix: model_dump no longer passes by_alias=None to Pydantic v2, which could cause issues in strict Pydantic versions
  • Query serialization: Implements the indices array format (key[0]=val) for query/form serialization, previously raising NotImplementedError
  • Streaming options propagation: Stream/AsyncStream classes now receive FinalRequestOptions for downstream use
  • CI improvements: Lint/build jobs skip metadata-only commits; artifact uploads skip stl/ internal branches
  • Mock server removal: Prism mock server script and related test infrastructure removed; tests reference updated from "Prism" to "Mock server"
  • Dependency bumps: typing-extensions minimum raised from 4.10 to 4.14; lock files updated

Confidence Score: 5/5

This PR is safe to merge — it is an automated Stainless SDK release with well-structured generated code, comprehensive tests, and security-hardening changes.

All changes are auto-generated by Stainless codegen with consistent patterns. The path sanitization via path_template() is a security improvement with thorough test coverage. New API methods follow established patterns exactly. Bug fixes (pydantic by_alias, indices format) are minimal and correct. No logic errors or security concerns found.

No files require special attention.

Important Files Changed

Filename Overview
src/agentex/_utils/_path.py New path_template utility for safe URI path interpolation with percent-encoding and dot-segment rejection. Well-tested and follows RFC 3986.
src/agentex/resources/tasks.py Adds 10 new task state management methods (cancel, complete, fail, terminate, timeout, update_by_id, update_by_name, query_workflow) for both sync and async clients. All paths migrated to path_template.
src/agentex/_compat.py Fixes model_dump to not pass by_alias to Pydantic v2 when it's None, avoiding potential issues with Pydantic versions that don't accept None.
src/agentex/_qs.py Implements the indices array format for query/form serialization, replacing the previous NotImplementedError.
src/agentex/_streaming.py Adds options parameter to Stream and AsyncStream classes for request options propagation.
src/agentex/_response.py Passes self._options through to stream constructors in 3 places, complementing the streaming change.
src/agentex/resources/agents.py Migrates all f-string path construction to path_template() for sanitized path params.
src/agentex/resources/deployment_history.py Migrates to path_template() and adds order_by/order_direction parameters to list methods.
src/agentex/types/init.py Exports 8 new types for task state operations (cancel, complete, fail, terminate, timeout, update_by_id, update_by_name, query_workflow).
tests/test_utils/test_path.py Comprehensive tests for path_template covering encoding, dot-segment rejection, multi-component URIs, and edge cases.
pyproject.toml Version bump to 0.9.6, typing-extensions min version bumped from 4.10 to 4.14, format:docs command updated to find all api.md files.
.github/workflows/ci.yml CI workflow updated: branch filtering switched from blocklist to allowlist, lint/build skip on metadata-only changes, artifact upload skipped for stl/ branches.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Client: tasks.cancel/complete/fail/terminate/timeout] -->|POST /tasks/task_id/action| B[path_template]
    C[Client: tasks.update_by_id] -->|PUT /tasks/task_id| B
    D[Client: tasks.update_by_name] -->|PUT /tasks/name/task_name| B
    E[Client: tasks.query_workflow] -->|GET /tasks/task_id/query/query_name| B
    B --> F{Validate path params}
    F -->|Dot-segment detected| G[ValueError raised]
    F -->|Valid| H[Percent-encode per RFC 3986]
    H --> I[HTTP Request to API]
    I --> J[Task response]
Loading

Reviews (9): Last reviewed commit: "release: 0.9.6" | Re-trigger Greptile

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from da9add5 to 03f13c1 Compare March 30, 2026 16:49
@stainless-app stainless-app bot changed the title release: 0.9.5 release: 0.10.0 Mar 30, 2026
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch 2 times, most recently from 3ff4307 to 700eaed Compare March 30, 2026 16:52
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 700eaed to 60c0b54 Compare March 30, 2026 17:13
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from 60c0b54 to bdd8d47 Compare March 30, 2026 17:53
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from bdd8d47 to cae8c96 Compare March 30, 2026 18:05
@declan-scale declan-scale changed the title release: 0.10.0 release: 0.9.6 Mar 30, 2026
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app bot commented Mar 30, 2026

Release version edited manually

The Pull Request version has been manually set to 0.9.6 and will be used for the release.

If you instead want to use the version number 0.10.0 generated from conventional commits, just remove the label autorelease: custom version from this Pull Request.

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from cae8c96 to f363270 Compare March 30, 2026 18:09
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next branch from f363270 to 2c6ff7e Compare March 30, 2026 18:25
@danielmillerp danielmillerp self-requested a review March 30, 2026 18:46
@stainless-app stainless-app bot merged commit 017c5bb into main Mar 30, 2026
32 checks passed
@stainless-app stainless-app bot deleted the release-please--branches--main--changes--next branch March 30, 2026 18:46
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app bot commented Mar 30, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants