Skip to content

release: 0.1.0#2

Open
stainless-app[bot] wants to merge 57 commits into
mainfrom
release-please--branches--main--changes--next
Open

release: 0.1.0#2
stainless-app[bot] wants to merge 57 commits into
mainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app

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

Copy link
Copy Markdown
Contributor

Automated Release PR

0.1.0 (2026-06-04)

Full Changelog: v0.0.2...v0.1.0

Features

Bug Fixes

  • go: avoid panic when http.DefaultTransport is wrapped (ee40854)

Chores

  • avoid embedding reflect.Type for dead code elimination (6567e85)
  • internal: more robust bootstrap script (c2663fb)
  • redact api-key headers in debug logs (ce6b68d)
  • tests: bump steady to v0.22.1 (90f868d)

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 3, 2026

Copy link
Copy Markdown
Contributor Author

🧪 Testing

To try out this version of the SDK:

Download and unzip: 'https://pkg.stainless.com/s/hyperspell-go/f77a01069f1189af857c461808d93c8cbec06d32/source.zip'. Run 'go mod edit -replace github.com/hyperspell/hyperspell-go=/path/to/unzipped_directory'.

Expires at: Fri, 03 Jul 2026 00:31:27 GMT
Updated at: Wed, 03 Jun 2026 00:31:27 GMT

Comment thread memory.go Outdated
type MemoryUploadParams struct {
// The file to ingest.
File io.Reader `json:"file,omitzero" api:"required" format:"binary"`
File string `json:"file" api:"required"`

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Correctness: Changing File from io.Reader (with format:"binary") to string breaks actual binary file uploads — apiform.MarshalRoot will now write a plain string value into the multipart form instead of streaming binary file content, making the Upload endpoint non-functional for real files.

🤖 AI Agent Prompt for Cursor/Windsurf

📋 Copy this prompt to your AI coding assistant (Cursor, Windsurf, etc.) to get help fixing this issue

In memory.go at line 964, the `File` field in `MemoryUploadParams` was changed from `io.Reader` with `format:"binary"` tag to `string`. This breaks the `MarshalMultipart` method because `apiform.MarshalRoot` relies on the `format:"binary"` tag to correctly stream binary file content into the multipart writer. Revert this field back to `io.Reader` with the original tags: `json:"file,omitzero" api:"required" format:"binary"`. Also ensure that the `io` package import is present (or re-added if removed).

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 1/5 - Blocking Issues

Not safe to merge — the change to memory.go that converts the File field from io.Reader (with format:"binary") to a plain string type fundamentally breaks binary file upload functionality. When apiform.MarshalRoot processes the multipart form, it will serialize a string literal instead of streaming actual binary file content, rendering the Upload endpoint non-functional for any real file uploads. While this PR appears to be a v0.1.0 release milestone, shipping a broken file upload API as the initial release would be a poor foundation.

Key Findings:

  • In memory.go, changing File from io.Reader with format:"binary" to string means apiform.MarshalRoot will write a plain string value into the multipart form body — actual binary file content cannot be transmitted this way, making the Upload endpoint completely non-functional for real use cases.
  • This is a critical correctness bug (score 9.0) in a core file upload path — not a style issue or minor edge case — which means it would ship broken functionality to all consumers of this v0.1.0 release.
  • The severity is amplified by the fact that this is a release PR (v0.1.0): any downstream users pinning to this version would get a broken file upload API with no workaround short of upgrading.
Files requiring special attention
  • memory.go

@canaries-inc

canaries-inc Bot commented Apr 3, 2026

Copy link
Copy Markdown

🐤 Canary Summary

This is a Go SDK library release with no UI/UX components:

  • No web frontend, mobile app, or graphical user interface exists in this repository
  • This is a backend SDK for developers to integrate into their applications
  • Changes are purely infrastructure (version bumps, release management, API client code)
  • The repository contains only Go SDK code, tests, and documentation

@canaries-inc

canaries-inc Bot commented Apr 3, 2026

Copy link
Copy Markdown

🐤 Canary Proposed Tests

No testable user journeys found for this PR.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 43a3754 to 183ab13 Compare April 8, 2026 03:30
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this is a clean version bump release PR for hyperspell-go SDK v0.1.0 with no logic changes, only metadata and documentation updates. The changes are confined to internal/version.go (constant update), .release-please-manifest.json, README.md installation pin, CHANGELOG.md entry, and .stats.yml config hash — all of which are standard release artifacts. No review comments were generated, no pre-existing unresolved issues exist, and the scope of changes carries essentially zero runtime risk.

Key Findings:

  • The PackageVersion constant in internal/version.go is updated from 0.0.2 to 0.1.0, which is a purely mechanical string change with no behavioral impact beyond version reporting.
  • All other changed files (CHANGELOG.md, README.md, .release-please-manifest.json, .stats.yml) are documentation or manifest files that carry no runtime execution risk.
  • No review comments were raised by the automated analysis, and there are zero unresolved pre-existing concerns associated with this PR.
  • The PR is consistent with a standard release-please generated release workflow, which reduces the likelihood of human error in the versioning process.
Files requiring special attention
  • internal/version.go
  • .release-please-manifest.json

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 183ab13 to a270d0c Compare April 8, 2026 22:30
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this PR is a version bump release that increments PackageVersion in internal/version.go from 0.0.2 to 0.1.0, with coordinated updates across .release-please-manifest.json, README.md, CHANGELOG.md, and the OpenAPI spec hash. The changes are purely mechanical and administrative with no logic, behavior, or API surface modifications. No review comments were generated and no pre-existing unresolved issues exist.

Key Findings:

  • The PackageVersion constant change in internal/version.go is a straightforward string update with no runtime logic impact beyond version reporting.
  • The CHANGELOG.md addition and README installation command update (v0.1.0 pin) are documentation-only changes that correctly reflect the new release version.
  • The OpenAPI spec URL and hash refresh is consistent with the release process and introduces no functional code changes.
  • Zero review comments were generated across reviewed files, and heuristic analysis found no critical, significant, or medium-severity issues.
Files requiring special attention
  • internal/version.go
  • .release-please-manifest.json

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from a270d0c to f7738a1 Compare April 9, 2026 02:30
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this PR is a straightforward version bump coordinating the PackageVersion constant in internal/version.go, .release-please-manifest.json, README.md, CHANGELOG.md, and .stats.yml from 0.0.2 to 0.1.0. No logic, runtime behavior, or API surface is modified; the changes are purely metadata and documentation updates driven by the release tooling. The changelog accurately documents two API updates and the stats file reflects refreshed spec hashes, all consistent with a standard minor release cut.

Key Findings:

  • PackageVersion in internal/version.go is updated from 0.0.2 to 0.1.0, which is a non-breaking string constant change with no runtime side effects beyond correct SDK version reporting.
  • .release-please-manifest.json and README.md pin the install version consistently at v0.1.0, keeping documentation and release tooling in sync with the actual version constant.
  • .stats.yml hash updates reflect the new OpenAPI spec revision, which is expected housekeeping for a minor release and carries no logic risk.
  • No review comments were generated and no pre-existing unresolved issues are present; all five changed files align coherently around a single version increment.
Files requiring special attention
  • internal/version.go
  • CHANGELOG.md

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from f7738a1 to 4771fd0 Compare April 11, 2026 09:05
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this PR is a clean version bump from 0.0.2 to 0.1.0 with no logic changes, consisting entirely of version string updates in .release-please-manifest.json and internal/version.go, changelog additions, and cosmetic test fixture improvements replacing generic "text" placeholders with "..." or more descriptive strings. The changes in client_test.go, usage_test.go, and memory_test.go are purely cosmetic fixture updates that improve readability without altering any test logic or assertions. No review comments were generated and no pre-existing unresolved issues are present.

Key Findings:

  • Version bump is consistently applied across both .release-please-manifest.json and internal/version.go, ensuring no version skew between manifest and runtime-reported version.
  • Test fixture changes in client_test.go, usage_test.go, and memory_test.go replace placeholder "text" strings with "..." or descriptive values — purely cosmetic with zero impact on test correctness or coverage.
  • README.md install command version pin update correctly reflects the new 0.1.0 release, keeping documentation in sync with the released version.
  • CHANGELOG.md entry for v0.1.0 follows the existing format, making this a well-structured release PR with all expected release artifacts updated.
Files requiring special attention
  • internal/version.go
  • .release-please-manifest.json
  • CHANGELOG.md

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 4771fd0 to 6331c45 Compare April 16, 2026 19:30
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this PR is a clean release bump from 0.0.2 to 0.1.0 that involves only version string updates and alphabetical reordering of enum constants (placing github before google_drive) across files like action.go, aliases.go, auth.go, connection.go, integration.go, integrationwebcrawler.go, memory.go, and shared/shared.go. No logic changes, no new code paths, and no behavioral modifications are introduced. The review produced zero comments across 13 of 16 changed files, and the heuristic analysis found no critical, significant, or medium-severity issues.

Key Findings:

  • Version bump in .release-please-manifest.json, internal/version.go, and README.md is consistent and correct — all three sources updated atomically to 0.1.0.
  • Enum constant reordering (alphabetizing github before google_drive) is purely cosmetic and does not affect runtime behavior, as Go iota-based or string-based enum values are not position-sensitive in the way this change is applied.
  • No review comments were generated and heuristic analysis found zero issues at any severity level, making this one of the rare cases where a score of 5 is justified.
Files requiring special attention
  • internal/version.go
  • .release-please-manifest.json
  • shared/shared.go

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 6331c45 to 7f7913b Compare April 18, 2026 00:30
@entelligence-ai-pr-reviews

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

Copy link
Copy Markdown

EntelligenceAI PR Summary

Updates .stats.yml to reference a new OpenAPI specification version with a reformatted spec URL and updated hashes.

  • Switched openapi_spec_url from percent-encoded path format to a clean path format
  • Refreshed openapi_spec_hash to match the new specification content
  • Refreshed config_hash to reflect the updated configuration state
  • configured_endpoints count remains unchanged at 30

Confidence Score: 3/5 - Review Recommended

Likely safe but review recommended — this PR itself is a clean metadata-only change updating .stats.yml with a reformatted openapi_spec_url and refreshed hashes, with no logic changes introduced. However, three unresolved pre-existing review comments remain open on the broader codebase included in this release: a confirmed bug in WithSkipCompaction in internal/encoding/json/opt.go where the boolean parameter b is silently ignored, a correctness issue in memory.go where the Date field uses any instead of param.Opt[time.Time] and lacks the format:"date-time" struct tag unlike its counterpart in MemoryAddParams, and a test reliability issue in packages/param/encoder_test.go where t.Logf is used on mismatch instead of t.Fatalf, allowing test failures to go undetected. These pre-existing bugs are not introduced by this PR but are unresolved at the time of this release tag, which warrants a review before cutting a public 0.1.0 release.

Key Findings:

  • The WithSkipCompaction function in internal/encoding/json/opt.go ignores its bool argument b, meaning callers cannot actually disable compaction — a functional bug that would ship in the 0.1.0 public release.
  • In memory.go, the Date field on the relevant struct uses any instead of param.Opt[time.Time] and is missing the format:"date-time" struct tag, unlike the identical field in MemoryAddParams, which could cause incorrect serialization or validation behavior at runtime.
  • In packages/param/encoder_test.go, using t.Logf instead of t.Fatalf on a shimjson output mismatch means test failures are silently logged rather than failing the test suite, undermining test coverage reliability for a 0.1.0 release.
  • The .stats.yml change itself is purely mechanical and correct — the URL reformatting from percent-encoded to clean path and hash refreshes are consistent with a spec update and introduce no risk.
Files requiring special attention
  • internal/encoding/json/opt.go
  • memory.go
  • packages/param/encoder_test.go

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Version bump from 0.0.2 to 0.1.0 with enum reordering, a new MemoryUpdateParams field, and test/doc cleanup.

  • Bumped version in .release-please-manifest.json and internal/version.go; updated CHANGELOG.md and README.md
  • Reordered github/google_drive constants alphabetically in action.go, aliases.go, auth.go, connection.go, integration.go, integrationwebcrawler.go, memory.go, and shared/shared.go
  • Added Date field to MemoryUpdateParams in memory.go for date-based ranking and filtering
  • Replaced "text" placeholder with "..." in README.md, client_test.go, and usage_test.go
  • Updated memory_test.go with realistic parameter values, expanded metadata, and corrected field usage
  • Refreshed OpenAPI spec URL and hashes in .stats.yml

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 7f7913b to 8201b03 Compare April 18, 2026 08:15
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Releases Hyperspell Go SDK v0.1.0 with enum ordering fixes, a new memory field, dependency upgrades, and updated test data.

  • Bumps PackageVersion constant and release manifest from 0.0.2 to 0.1.0
  • Refreshes OpenAPI spec URL, spec hash, and config hash in .stats.yml
  • Reorders github/google_drive provider and source constants alphabetically across action.go, aliases.go, auth.go, connection.go, integration.go, integrationwebcrawler.go, memory.go, and shared/shared.go
  • Adds Date field (any, omitzero) to MemoryUpdateParams in memory.go
  • Replaces "text" placeholder with "..." in README.md, client_test.go, and usage_test.go
  • Updates memory_test.go with realistic test data including Date, metadata fields, and vault source
  • Upgrades @stdy/cli from 0.20.2 to 0.22.1 in scripts/mock and scripts/test

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 7baa80c to 57940c4 Compare May 14, 2026 04:15
Comment on lines +11 to +15
func WithSkipCompaction(b bool) Option {
return func(eos *encOpts) {
eos.skipCompaction = true
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

MAJOR BUG WithSkipCompaction ignores its bool argument

The parameter b is never read; the closure unconditionally sets skipCompaction = true, so WithSkipCompaction(false) silently enables skip-compaction instead of disabling it.

Suggested change
func WithSkipCompaction(b bool) Option {
return func(eos *encOpts) {
eos.skipCompaction = true
}
}
func WithSkipCompaction(b bool) Option {
return func(eos *encOpts) {
eos.skipCompaction = b
}
}
Prompt to fix with AI

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

In file `internal/encoding/json/opt.go`, lines 11–15, the function `WithSkipCompaction(b bool)` ignores its `b` parameter and always sets `eos.skipCompaction = true`. Fix it by replacing the hardcoded `true` with `b`: change `eos.skipCompaction = true` to `eos.skipCompaction = b`.

Comment on lines +548 to +550
if string(b) != test.expected {
t.Logf("expected %s (%s), received %s", test.expected, reflect.TypeOf(test.value), string(b))
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

NIT BUG Use t.Fatalf instead of t.Logf on shimjson output mismatch

t.Logf on mismatch means this subtest always passes regardless of what shimjson.Marshal returns, making it impossible to catch regressions in the shim encoder.

Suggested change
if string(b) != test.expected {
t.Logf("expected %s (%s), received %s", test.expected, reflect.TypeOf(test.value), string(b))
}
if string(b) != test.expected {
t.Fatalf("expected %s (%s), received %s", test.expected, reflect.TypeOf(test.value), string(b))
}
Prompt to fix with AI

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

In packages/param/encoder_test.go at line 549, the assertion `t.Logf("expected %s (%s), received %s", test.expected, reflect.TypeOf(test.value), string(b))` should be `t.Fatalf(...)` instead of `t.Logf(...)`. The current code silently passes the test even when shimjson.Marshal returns a wrong value. Change `t.Logf` to `t.Fatalf` to match the pattern used in the json-marshal subtest (line 539) so that output mismatches actually fail the test.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 57940c4 to d07a27e Compare May 15, 2026 09:31
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: packages/param/encoder.go

NIT CORRECTNESS MarshalWithExtras extras path omits WithSkipCompaction unlike normal path

The PR adds WithSkipCompaction(true) to the normal and union marshal paths (lines 69, 99) as an optimization for SDK types, but the extras branch at line 47 calls shimjson.Marshal(underlying) without the option, inconsistently missing the same optimization.

		bytes, err := shimjson.Marshal(underlying, shimjson.WithSkipCompaction(true))
Prompt to fix with AI

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

In packages/param/encoder.go MarshalWithExtras, add shimjson.WithSkipCompaction(true) to the shimjson.Marshal call in the `len(extras) > 0` branch (line 47) to match the optimization applied in the normal path (line 69) and MarshalUnion (line 99). The underlying value here is also an SDK struct and the same compaction-skip optimization is valid.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from d07a27e to 9464c51 Compare May 18, 2026 23:31
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: packages/param/encoder.go

NIT CORRECTNESS MarshalWithExtras extras path misses WithSkipCompaction, breaks PR's own pattern

encoder.go line 47 calls shimjson.Marshal(underlying) without WithSkipCompaction(true) in the extras branch, while lines 69 and 99 (the no-extras and union paths) both apply it. opt.go's optimization therefore silently does not apply when len(extras) > 0, leaving the O(n²) compaction the PR intends to eliminate.

		bytes, err := shimjson.Marshal(underlying, shimjson.WithSkipCompaction(true))
Prompt to fix with AI

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

In `packages/param/encoder.go` line 47, change `shimjson.Marshal(underlying)` to `shimjson.Marshal(underlying, shimjson.WithSkipCompaction(true))` to apply the same compaction-skip optimisation that the no-extras path (line 69) and the union path (line 99) already use. The `sjson` patching that follows operates on raw bytes and does not require pre-compacted input.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 9464c51 to bcd50d7 Compare May 20, 2026 17:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from bcd50d7 to f4da73e Compare May 20, 2026 23:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from f4da73e to d55c1da Compare May 27, 2026 23:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from d55c1da to 4ee20be Compare May 28, 2026 19:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 4ee20be to 76b066c Compare May 28, 2026 23:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 76b066c to 19be368 Compare May 29, 2026 03:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 19be368 to 98908ce Compare June 3, 2026 00:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 98908ce to 83cfb44 Compare June 4, 2026 17:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 83cfb44 to a25ea8b Compare June 4, 2026 18:31
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from a25ea8b to ba01baa Compare June 4, 2026 20:31
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