Skip to content

chore: release main#457

Merged
stainless-app[bot] merged 29 commits into
mainfrom
release-please--branches--main--changes--next
Jul 10, 2026
Merged

chore: release main#457
stainless-app[bot] merged 29 commits into
mainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app

@stainless-app stainless-app Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

✨ Stainless prepared a new release

agentex-client: 0.18.0

0.18.0 (2026-07-10)

Full Changelog: agentex-client-v0.17.0...agentex-client-v0.18.0

Features

  • api: add schedule resume (56f41aa)
  • api: add skipped_action_times field to agents schedule responses (de49d43)
  • api: add webhook endpoint (f1c1252)
  • api: manual updates (e855070)
  • api: manual updates (e3c8baf)
  • api: remove retrieve/delete/pause/trigger/unpause, update create/list in schedules (8f084b6)
  • api: update schedule configs (c1e7db8)
  • Use stable handles for run schedules (9145865)

Bug Fixes

  • cap openai <2.45 for openai-agents 0.14.x compatibility (#459) (14c124d)

Chores

agentex-sdk: 0.18.0

0.18.0 (2026-07-10)

Full Changelog: agentex-sdk-v0.17.0...agentex-sdk-v0.18.0

Bug Fixes

  • cap openai <2.45 for openai-agents 0.14.x compatibility (#459) (14c124d)

Chores


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 a Stainless-generated SDK release (v0.18.0) for both agentex-client and agentex-sdk. The schedule resource has been substantially overhauled to align with a revamped backend API, and a critical runtime compatibility cap has been applied to the openai dependency.

  • Schedule API overhaul: New endpoints added (update, delete, delete_by_name, pause_by_name, resume_by_name, retrieve_by_name, skip, unskip, trigger_by_name, update_by_name); unpause renamed to resume; ScheduleCreateParams now requires initial_input (content/author/type) instead of task_queue/workflow_name; ScheduleListResponse.schedules renamed to run_schedules; schedule_id field renamed to id across response models; state made optional across all response types; skipped_action_times field added.
  • openai version cap: adk/pyproject.toml tightens openai from >=2.2,<3 to >=2.2,<2.45 to prevent a pydantic ValidationError in every Runner.run_streamed call caused by openai 2.45.0 introducing InputTokensDetails.cache_write_tokens as a required field while openai-agents 0.14.x still instantiates it without that field. The comment explains the ceiling is temporary until openai-agents ships a fix.

Confidence Score: 5/5

Safe to merge — all changes are generated from the OpenAPI spec; the openai cap fix prevents a runtime crash and is well-documented.

The schedule API overhaul is a large but internally consistent set of generated changes: new endpoints follow the same patterns as existing ones, input validation is present on every method, and async mirrors sync faithfully. The most impactful change — the openai version ceiling tightened to <2.45 — directly prevents a pydantic ValidationError on every streaming run and includes a clear comment explaining the root cause and the temporary nature of the fix. The field renames (schedule_id → id, schedules → run_schedules) are intentional breaking changes tracking a backend API update rather than code mistakes.

No files require special attention. The generated schedule types and resource are consistent, and the openai cap in adk/pyproject.toml is correct and well-motivated.

Important Files Changed

Filename Overview
src/agentex/resources/agents/schedules.py Major expansion: 17 new sync/async methods added (update, delete, delete_by_name, pause_by_name, resume_by_name, retrieve_by_name, skip, unskip, trigger_by_name, update_by_name); unpause replaced by resume; consistent input validation and path templating throughout
adk/pyproject.toml Tightens openai ceiling to <2.45 with a well-documented comment explaining the openai-agents 0.14.x ValidationError regression; version bumped to 0.18.0
src/agentex/types/agents/schedule_list_response.py Breaking field rename: schedules → run_schedules; Schedule abbreviated model expanded to full RunSchedule with all new fields (skipped_action_times, task_metadata, task_params, etc.)
src/agentex/types/agents/schedule_create_params.py Breaking change: required fields switched from (task_queue, workflow_name) to initial_input (content, author, type); new optional fields added (timezone, task_metadata, task_params, description)
src/agentex/types/agents/schedule_create_response.py Breaking change: schedule_id renamed to id; state made optional; replaced Action/Spec nested models with flat fields; added creator_principal, skipped_action_times, task_metadata, task_params, updated_at
tests/api_resources/agents/test_schedules.py Tests updated to match new API shape; all mock-server tests remain skipped per existing pattern; path-param validation tests are live and cover new endpoints
src/agentex/types/agents/schedule_unpause_response.py File deleted; ScheduleUnpauseResponse removed entirely as unpause was renamed to resume across the API

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant C as Client
    participant S as SchedulesResource
    participant API as Agentex API

    Note over C,API: ID-based endpoints
    C->>S: create(agent_id, initial_input, name, ...)
    S->>API: "POST /agents/{agent_id}/schedules"
    API-->>C: "ScheduleCreateResponse {id, name, state?, ...}"

    C->>S: update(schedule_id, agent_id, ...)
    S->>API: "PATCH /agents/{agent_id}/schedules/{schedule_id}"
    API-->>C: ScheduleUpdateResponse

    C->>S: pause(schedule_id, agent_id, note?)
    S->>API: "POST /agents/{agent_id}/schedules/{schedule_id}/pause"
    API-->>C: SchedulePauseResponse

    C->>S: resume(schedule_id, agent_id, note?)
    S->>API: "POST /agents/{agent_id}/schedules/{schedule_id}/resume"
    API-->>C: ScheduleResumeResponse

    C->>S: skip(schedule_id, agent_id, scheduled_time)
    S->>API: "POST /agents/{agent_id}/schedules/{schedule_id}/skip"
    API-->>C: ScheduleSkipResponse

    C->>S: delete(schedule_id, agent_id)
    S->>API: "DELETE /agents/{agent_id}/schedules/{schedule_id}"
    API-->>C: DeleteResponse

    Note over C,API: Name-based endpoints (new stable-handle surface)
    C->>S: retrieve_by_name(name, agent_id)
    S->>API: "GET /agents/{agent_id}/schedules/name/{name}"
    API-->>C: ScheduleRetrieveByNameResponse

    C->>S: pause_by_name(name, agent_id, note?)
    S->>API: "POST /agents/{agent_id}/schedules/name/{name}/pause"
    API-->>C: SchedulePauseByNameResponse

    C->>S: trigger_by_name(name, agent_id)
    S->>API: "POST /agents/{agent_id}/schedules/name/{name}/trigger"
    API-->>C: ScheduleTriggerByNameResponse
Loading
%%{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"}}}%%
sequenceDiagram
    participant C as Client
    participant S as SchedulesResource
    participant API as Agentex API

    Note over C,API: ID-based endpoints
    C->>S: create(agent_id, initial_input, name, ...)
    S->>API: "POST /agents/{agent_id}/schedules"
    API-->>C: "ScheduleCreateResponse {id, name, state?, ...}"

    C->>S: update(schedule_id, agent_id, ...)
    S->>API: "PATCH /agents/{agent_id}/schedules/{schedule_id}"
    API-->>C: ScheduleUpdateResponse

    C->>S: pause(schedule_id, agent_id, note?)
    S->>API: "POST /agents/{agent_id}/schedules/{schedule_id}/pause"
    API-->>C: SchedulePauseResponse

    C->>S: resume(schedule_id, agent_id, note?)
    S->>API: "POST /agents/{agent_id}/schedules/{schedule_id}/resume"
    API-->>C: ScheduleResumeResponse

    C->>S: skip(schedule_id, agent_id, scheduled_time)
    S->>API: "POST /agents/{agent_id}/schedules/{schedule_id}/skip"
    API-->>C: ScheduleSkipResponse

    C->>S: delete(schedule_id, agent_id)
    S->>API: "DELETE /agents/{agent_id}/schedules/{schedule_id}"
    API-->>C: DeleteResponse

    Note over C,API: Name-based endpoints (new stable-handle surface)
    C->>S: retrieve_by_name(name, agent_id)
    S->>API: "GET /agents/{agent_id}/schedules/name/{name}"
    API-->>C: ScheduleRetrieveByNameResponse

    C->>S: pause_by_name(name, agent_id, note?)
    S->>API: "POST /agents/{agent_id}/schedules/name/{name}/pause"
    API-->>C: SchedulePauseByNameResponse

    C->>S: trigger_by_name(name, agent_id)
    S->>API: "POST /agents/{agent_id}/schedules/name/{name}/trigger"
    API-->>C: ScheduleTriggerByNameResponse
Loading

Reviews (8): Last reviewed commit: "chore: release main" | Re-trigger Greptile

declan-scale and others added 14 commits June 22, 2026 15:59
…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>
…est) (#438)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…5f2fe01d48613aaa6fcf--merge-conflict' into next
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 7f73c97 to e6d57e8 Compare July 9, 2026 20:41
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch 2 times, most recently from e90258c to 942191a Compare July 9, 2026 21:32
@socket-security

socket-security Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​agentex-sdk@​0.13.0 ⏵ 0.17.094 +1100100100 +50100
Updatedpypi/​agentex-client@​0.13.0 ⏵ 0.17.099 +1100100100100

View full report

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 942191a to 536bd0a Compare July 9, 2026 21:36
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 536bd0a to f72146b Compare July 9, 2026 21:37
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from f72146b to a6e3f7f Compare July 9, 2026 22:54
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from a6e3f7f to 0b1126b Compare July 10, 2026 00:19
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 0b1126b to 1f342fb Compare July 10, 2026 16:54
stainless-app Bot added 2 commits July 10, 2026 17:34
adding skip and unskip endpoints
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 1f342fb to 80b5b82 Compare July 10, 2026 17:35
@stainless-app stainless-app Bot merged commit 0afaae4 into main Jul 10, 2026
51 checks passed
@stainless-app stainless-app Bot deleted the release-please--branches--main--changes--next branch July 10, 2026 17:45
@stainless-app

stainless-app Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

@stainless-app

stainless-app Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

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.

5 participants