Skip to content

release: 0.38.0#111

Open
stainless-app[bot] wants to merge 10 commits intomainfrom
release-please--branches--main--changes--next
Open

release: 0.38.0#111
stainless-app[bot] wants to merge 10 commits intomainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app Bot commented Apr 18, 2026

Automated Release PR

0.38.0 (2026-04-22)

Full Changelog: v0.37.0...v0.38.0

Features

Performance Improvements

  • client: optimize file structure copying in multipart requests (c28640c)

Chores

  • tests: bump steady to v0.22.1 (7d67d91)

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

@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented Apr 18, 2026

🧪 Testing

To try out this version of the SDK:

pip install 'https://pkg.stainless.com/s/hyperspell-python/23c9221674f7d4d4d563b3e8d80d55c0b884114a/hyperspell-0.37.0-py3-none-any.whl'

Expires at: Fri, 22 May 2026 19:39:28 GMT
Updated at: Wed, 22 Apr 2026 19:39:28 GMT

@canaries-inc
Copy link
Copy Markdown

canaries-inc Bot commented Apr 18, 2026

🐤 Canary Summary

This PR is a Python SDK release with no UI/UX changes affecting end users:

  • Version bump to 0.38.0 across all configuration files
  • Added date parameter to memories API for backend ranking/filtering
  • Updated API type definitions and test coverage
  • No user-facing UI components or changes present


View PR tests on Canary

@canaries-inc
Copy link
Copy Markdown

canaries-inc Bot commented Apr 18, 2026

🐤 Canary Proposed Tests

No testable user journeys found for this PR.

@entelligence-ai-pr-reviews
Copy link
Copy Markdown


Confidence Score: 5/5 - Safe to Merge

Safe to merge — this PR is a release bump to version 0.38.0 and the automated review found no issues across the reviewed files. No logic changes, security concerns, or correctness problems were identified, and there are no unresolved pre-existing comments to carry forward. The PR appears to be a standard version release with clean diffs.

Key Findings:

  • No review comments were generated by the automated analysis, indicating no detectable logic, security, or correctness issues in the changed files.
  • Zero critical, significant, or medium-severity issues were flagged by the heuristic analysis, consistent with a version bump or release preparation PR.
  • Coverage of 3/8 changed files leaves some files unreviewed, but for a release PR this is a low-risk gap — typically release commits touch changelogs, version files, and lock files which are low-risk by nature.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 8517aa7 to 9e83d93 Compare April 18, 2026 08:14
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 9e83d93 to d34485e Compare April 18, 2026 08:16
@entelligence-ai-pr-reviews
Copy link
Copy Markdown

entelligence-ai-pr-reviews Bot commented Apr 18, 2026

EntelligenceAI PR Summary

Release v0.38.0 adds a date field to the memories update API and replaces deepcopy_minimal with a new deepcopy_with_paths utility for optimized multipart file copying.

  • Added optional date: Union[str, datetime] parameter to MemoryUpdateParams TypedDict and both sync/async update methods in memories.py
  • Introduced deepcopy_with_paths in src/hyperspell/_files.py for targeted shallow copying of only dict/list containers along specified key paths
  • Removed deepcopy_minimal from src/hyperspell/_utils/_utils.py and its re-export in __init__.py
  • Updated memories.py upload methods to use deepcopy_with_paths with [['file']] paths instead of deepcopy_minimal
  • Updated README MCP badge URLs to scoped package name @hyperspell/hyperspell-mcp
  • Bumped @stdy/cli from 0.20.2 to 0.22.1 in scripts/mock and scripts/test
  • Deleted tests/test_deepcopy.py; added 8 new test cases in tests/test_files.py for deepcopy_with_paths
  • Version bumped to 0.38.0 in pyproject.toml, _version.py, and .release-please-manifest.json

Confidence Score: 4/5 - Mostly Safe

Safe to merge with minor caveats — this release PR cleanly adds an optional date: Union[str, datetime] parameter to MemoryUpdateParams and both sync/async update methods in memories.py, and replaces deepcopy_minimal with the new deepcopy_with_paths utility in src/hyperspell/_files.py for more targeted container copying along specified key paths. No logic bugs, security issues, or runtime regressions were identified in the reviewed files. Coverage is partial (8/16 changed files reviewed), so there is a small residual risk in unreviewed files, but the changes are scoped and well-bounded. The PR reads like a clean, backward-compatible API surface expansion with an internal utility refactor.

Key Findings:

  • The new deepcopy_with_paths in src/hyperspell/_files.py is a targeted replacement for deepcopy_minimal; as long as all call sites previously using deepcopy_minimal have been updated to deepcopy_with_paths with correct path arguments, there is no regression risk — the removal of the old function should be verified across all consumers.
  • The optional date: Union[str, datetime] parameter in MemoryUpdateParams is additive and backward-compatible, posing no risk to existing callers that omit the field.
  • Only 8 of 16 changed files were reviewed, leaving half the diff unverified; while the changes appear scoped, unreviewed files could contain edge cases in path handling or type coercion for the new date field.
  • No critical, significant, or medium-severity issues were flagged by automated review, and no pre-existing unresolved comments were carried into this PR.
Files requiring special attention
  • src/hyperspell/_files.py
  • src/hyperspell/resources/memories.py

@entelligence-ai-pr-reviews
Copy link
Copy Markdown

Releases v0.38.0 with a new date field on the memories update endpoint and a targeted deep copy utility replacing the previous full-copy approach in multipart requests.

  • Added date: str | datetime | None parameter to sync/async memories.update() and MemoryUpdateParams
  • Introduced deepcopy_with_paths in src/hyperspell/_files.py for selective container deep copying along specified key paths
  • Removed deepcopy_minimal from src/hyperspell/_utils/_utils.py and its export from src/hyperspell/_utils/__init__.py
  • Updated src/hyperspell/resources/memories.py to use deepcopy_with_paths with ['file'] path in both sync and async upload methods
  • Added 8 new tests in tests/test_files.py covering deepcopy_with_paths and mutation-safety with extract_files
  • Removed tests/test_deepcopy.py along with the deprecated utility
  • Version bumped in pyproject.toml, _version.py, and .release-please-manifest.json; OpenAPI spec hash refreshed in .stats.yml

@entelligence-ai-pr-reviews
Copy link
Copy Markdown

Releases hyperspell v0.38.0 with an API enhancement, a deep copy performance improvement, and a test dependency update.

  • Added optional date field (Union[str, datetime], ISO 8601) to MemoryUpdateParams and sync/async update methods in memories.py
  • Replaced deepcopy_minimal (removed from _utils/_utils.py and _utils/__init__.py) with the new deepcopy_with_paths utility in _files.py, which shallow-copies only containers along specified key paths
  • Updated memories.py upload methods to use deepcopy_with_paths imported from _files instead of _utils
  • Bumped @stdy/cli from 0.20.2 to 0.22.1 in scripts/mock and scripts/test
  • Updated OpenAPI spec URL/hash in .stats.yml
  • Removed tests/test_deepcopy.py; added TestDeepcopyWithPaths tests in tests/test_files.py
  • Version bumped to 0.38.0 in pyproject.toml, _version.py, and .release-please-manifest.json

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from d34485e to 7c5dc69 Compare April 22, 2026 18:30
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 7c5dc69 to 3aee06b Compare April 22, 2026 19:22
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 3aee06b to 4d6e79f Compare April 22, 2026 19:27
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 4d6e79f to 69f3e7d Compare April 22, 2026 19:39
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 69f3e7d to 2b93798 Compare April 22, 2026 19:52
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 2b93798 to 3342428 Compare April 22, 2026 23:12
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.

0 participants