Skip to content

release: 0.4.0#45

Merged
Minro4 merged 11 commits into
mainfrom
release-please--branches--main--changes--next
Dec 16, 2025
Merged

release: 0.4.0#45
Minro4 merged 11 commits into
mainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app Bot commented Nov 22, 2025

Automated Release PR

0.4.0 (2025-12-16)

Full Changelog: v0.3.0...v0.4.0

Features

Bug Fixes

  • ensure streams are always closed (32ac012)
  • types: allow pyright to infer TypedDict types within SequenceNotStr (997476f)

Chores

  • add missing docstrings (2b5cc82)
  • add Python 3.14 classifier and testing (640200d)
  • deps: mypy 1.18.1 has a regression, pin to 1.17 (c6f5782)
  • docs: use environment variables for authentication in code snippets (6edcba1)
  • internal: add missing files argument to base client (2e6d189)
  • update lockfile (484feab)

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


Note

Adds DataViews API (with service accounts), knowledge sync config support, enum updates, and streaming cleanup, releasing v0.4.0.

  • API:
    • DataViews: New client.data_views with create, list, delete; nested service_accounts with create, list, delete, credentials. New types (DataView*, ServiceAccount*). Wired into Datagrid (raw/streaming, exports) and documented in api.md.
    • Knowledge: update now accepts sync configuration (cron trigger, enable/disable) in multipart payloads.
    • Enums: Add LLM model "gemini-3-pro-preview"; new tools "planner", "trimble", "content_writer".
  • Client/Runtime:
    • Streaming: Ensure async SSE responses always close; simplify event parsing.
    • README: Examples default to DATAGRID_API_KEY env var; aiohttp snippet updated.
  • Release/Meta:
    • Version bump to 0.4.0; update changelog. Add Python 3.14 classifier; pin mypy==1.17; refresh requirement locks.

Written by Cursor Bugbot for commit 7423dcc. This will update automatically on new commits. Configure here.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from c7c7d1f to 84dc151 Compare November 22, 2025 05:08
@stainless-app stainless-app Bot changed the title release: 0.3.0 release: 0.3.1 Nov 22, 2025
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 84dc151 to 90fc16d Compare November 22, 2025 05:09
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented Nov 22, 2025

🧪 Testing

To try out this version of the SDK, run:

pip install 'https://pkg.stainless.com/s/datagrid-python/2e6d189f8d3323fc6e63c93dc02d5bf18ffbb224/datagrid_ai-0.3.0-py3-none-any.whl'

Expires at: Thu, 15 Jan 2026 21:07:47 GMT
Updated at: Tue, 16 Dec 2025 21:07:47 GMT

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 90fc16d to 3b45d43 Compare December 11, 2025 16:08
@stainless-app stainless-app Bot changed the title release: 0.3.1 release: 0.4.0 Dec 11, 2025
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch 2 times, most recently from 11fb9be to 7fa5e52 Compare December 11, 2025 16:09
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
finally:
# Ensure the response is closed even if the consumer doesn't read all data
await response.aclose()
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: AsyncStream lost error handling and event differentiation logic

The AsyncStream.__stream__ method was refactored to remove critical functionality that still exists in the synchronous Stream.__stream__ method. The async version no longer handles: (1) [DONE] termination signals, (2) error events that raise APIError when sse.event == "error" or when data.get("error") is present, and (3) differentiation between unnamed events (yielding data) vs named events (yielding {"data": data, "event": sse.event}). This causes async streams to silently process error responses as normal data instead of raising exceptions, and incorrectly formats named events.

Fix in Cursor Fix in Web

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 7fa5e52 to 6ac4e84 Compare December 15, 2025 16:37
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 6ac4e84 to 7423dcc Compare December 16, 2025 21:07
@Minro4 Minro4 merged commit 8f09bb4 into main Dec 16, 2025
7 of 8 checks passed
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented Dec 16, 2025

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.

1 participant