Skip to content

release: 0.39.0#94

Merged
maebert merged 57 commits into
mainfrom
release-please--branches--main--changes--next--components--hyperspell
Jun 18, 2026
Merged

release: 0.39.0#94
maebert merged 57 commits into
mainfrom
release-please--branches--main--changes--next--components--hyperspell

Conversation

@stainless-app

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

Copy link
Copy Markdown
Contributor

Automated Release PR

0.39.0 (2026-06-18)

Full Changelog: v0.38.0...v0.39.0

Features

Bug Fixes

  • client: send content-type header for requests with an omitted optional body (7e3d6aa)
  • typescript: upgrade tsc-multi so that it works with Node 26 (bb51450)

Chores

  • avoid formatting file that gets changed during releases (cf52108)
  • format: run eslint and prettier separately (43ec88d)
  • internal: codegen related update (f6cdc59)
  • internal: more robust bootstrap script (dd48b06)
  • internal: update docs ordering (9ac7b35)
  • redact api-key headers in debug logs (9ccb5ff)
  • restructure docs search code (8a752b4)
  • tests: remove redundant File import (1f3a018)
  • update SDK settings (5f5049a)

Documentation


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

stainless-app Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor Author

🧪 Testing

To try out this version of the SDK:

npm install 'https://pkg.stainless.com/s/hyperspell-typescript/039e1e9c217eb24b9ddf42f33cca5af748927288/dist.tar.gz'

Expires at: Sat, 18 Jul 2026 00:06:46 GMT
Updated at: Thu, 18 Jun 2026 00:06:46 GMT

@canaries-inc

canaries-inc Bot commented Apr 22, 2026

Copy link
Copy Markdown

🐤 Canary Summary

This is an automated release PR with no UI/UX changes:

  • Version bumped from 0.38.0 to 0.38.1 across all package files
  • Updated npm publishing workflow authentication from OIDC to token-based
  • Modified release scripts to use NPM_TOKEN environment variable
  • Updated changelog and configuration metadata
  • No user-facing UI components, styling, or application logic affected


View PR tests on Canary

@canaries-inc

canaries-inc Bot commented Apr 22, 2026

Copy link
Copy Markdown

🐤 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 appears to be a standard release bump to version 0.38.1 with no identified logic, security, or correctness issues surfaced during review. The automated analysis found zero critical, significant, or medium-severity issues across the reviewed files. While only 4 of 13 changed files received coverage, the absence of any flagged concerns and the nature of a patch release (typically containing minor fixes or version metadata updates) supports a clean merge.

Key Findings:

  • No new review comments were generated, indicating no obvious logic bugs, security vulnerabilities, or correctness issues were detected in the analyzed code.
  • The PR is a patch release (0.38.1), which typically involves version string updates, changelog entries, and minor bug fixes rather than high-risk architectural changes.
  • Zero unresolved pre-existing comments were carried into this review, meaning there is no backlog of known issues being deferred.
  • 4 of 13 changed files were reviewed by the heuristic analysis — the unreviewed files represent a minor blind spot, but for a release PR this risk is generally low.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from dcbda64 to 7fde307 Compare April 23, 2026 04:06
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 7fde307 to 983f201 Compare April 23, 2026 04:06
@entelligence-ai-pr-reviews

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

Copy link
Copy Markdown

EntelligenceAI PR Summary

Delivers SDK v0.39.0 with a comprehensive Hyperdoc type system overhaul, new endpoint, feature additions, bug fixes, and CI security hardening.

  • New types: Overhauled shared.ts with 40+ interfaces covering all Hyperdoc node types, document frames, CRM entities (Company, Deal), and provenance structures
  • New endpoint: evaluate.listQueries (GET /evaluate/queries) for paginating prior evaluation queries
  • Memory refactor: list()/get() now return MemoryListResponse/MemoryGetResponse with full hyperdoc tree and enriched metadata
  • New feature: HYPERSPELL_CUSTOM_HEADERS env var support for injecting custom headers via newline-delimited key: value pairs in src/client.ts
  • Bug fix: buildBody now correctly preserves Content-Type headers for operations with explicit request bodies even when body value is null
  • Type upgrades: MemorySearchParams.effort changed from numeric to typed string enum ('minimal' | 'low' | 'medium' | 'high' | 'very_high'); source enums expanded with 10 new providers
  • New fields: provenance audit/compliance flag and recency_half_life_days decay scoring added to memories.search
  • CI security: GitHub Actions workflows pin all actions to specific commit SHAs in publish-npm.yml and release-doctor.yml
  • Stats/docs: configured_endpoints incremented to 31; api.md and local-docs-search.ts updated to reflect all schema changes

Confidence Score: 3/5 - Review Recommended

Likely safe but review recommended — this PR delivers a substantial SDK release with an overhauled type system and new endpoints, but carries three unresolved pre-existing concerns that warrant attention before merging. In scripts/fast-format, the guard at L31-37 checks $FILE_LIST as a path string (always non-empty) rather than its contents, meaning prettier can hang indefinitely when no files have changed — a real CI reliability issue. Additionally, scripts/utils/postprocess-files.cjs has an unresolved major bug where the ts-ignore comment replacement alters character counts, potentially corrupting declaration source maps.

Key Findings:

  • In scripts/fast-format L31-37, the emptiness guard tests $FILE_LIST (a path like /tmp/changed.txt), which is always a non-empty string — when the file list is actually empty, prettier receives no input but doesn't exit cleanly, causing CI hangs on PRs with no changed files.
  • In scripts/utils/postprocess-files.cjs L23-41, replacing // @ts-ignore with // @ts-expect-error changes the byte/character offset of subsequent lines, which breaks source map alignment in .d.ts.map declaration files — this could cause debugger and IDE type navigation to point to wrong locations.
  • The PR itself introduces a well-structured overhaul of shared.ts with 40+ new interfaces and a new evaluate.listQueries endpoint, which are substantive additions — none of the new review comments flagged logic or correctness issues in the new SDK surface area.
  • Coverage of 29/40 changed files leaves 11 files unreviewed, including potentially generated output files that could carry the postprocess-files.cjs bug into the distributed package.
Files requiring special attention
  • scripts/fast-format
  • scripts/utils/postprocess-files.cjs

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 983f201 to 8dead0f Compare April 23, 2026 22:30
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 8dead0f to c890ae3 Compare April 24, 2026 18:30
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from c890ae3 to 63c35fd Compare April 25, 2026 03:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 63c35fd to 479c910 Compare April 25, 2026 18:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 479c910 to f6c43d6 Compare April 25, 2026 20:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from f6c43d6 to 6f3fbdd Compare April 26, 2026 02:31
@stainless-app stainless-app Bot changed the title release: 0.38.1 release: 0.39.0 Apr 26, 2026
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 6f3fbdd to 7e1e1c1 Compare April 26, 2026 02:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 7e1e1c1 to 705d4a6 Compare April 27, 2026 00:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from a5372dc to 735d2fb Compare June 4, 2026 20:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 735d2fb to c461811 Compare June 10, 2026 17:31
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: tests/api-resources/memories.test.ts

NIT CORRECTNESS Test exercises provenance=true with effort='minimal', contradicting documented constraint

src/resources/memories.ts:598-604 documents provenance as 'effort=very_high only', but tests/api-resources/memories.test.ts:163+200 sends provenance=true alongside effort='minimal'. The test validates a combination the API docs say is unsupported, giving callers a false model of the API contract.

Prompt to fix with AI

Copy this prompt into your AI coding assistant to fix this issue.

In tests/api-resources/memories.test.ts, the search test at line 159 sets effort: 'minimal' but also passes provenance: true at line 200. The src/resources/memories.ts JSDoc for the provenance field states it is 'effort=\'very_high\' only'. Either change the test to use effort: 'very_high' to match the documented constraint, or remove the constraint note from the JSDoc if the API actually accepts provenance at any effort level.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch 2 times, most recently from 05200c8 to 8da1a77 Compare June 10, 2026 20:26
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 8da1a77 to b1b49c4 Compare June 11, 2026 17:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from b1b49c4 to ea99937 Compare June 11, 2026 23:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from ea99937 to ddfc1d7 Compare June 13, 2026 21:32
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from ddfc1d7 to d1d9783 Compare June 17, 2026 02:19
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from d1d9783 to 6866369 Compare June 17, 2026 22:32
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: src/resources/shared.ts

MAJOR BUG Replace unknown in Callout.children union to restore type narrowing

T | unknown collapses to unknown in TypeScript, making the entire Callout.children array typed as Array<unknown>. Any code switching on child.type loses all narrowing; callers must cast unsafely. The parallel Document.Document.children union has no unknown — the missing member is likely a self-referential Callout.Callout.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 6866369 to 8c5b7f3 Compare June 17, 2026 23:32
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 8c5b7f3 to 110f437 Compare June 18, 2026 00:06
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next--components--hyperspell branch from 110f437 to e7efc7d Compare June 18, 2026 00:06
@maebert maebert merged commit f717854 into main Jun 18, 2026
7 checks passed
@stainless-app

stainless-app Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Release is at https://github.com/hyperspell/node-sdk/releases/tag/v0.39.0 🌻

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