Skip to content

release: 0.2.0 - #2

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

release: 0.2.0#2
stainless-app[bot] wants to merge 93 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.2.0 (2026-06-25)

Full Changelog: v0.1.0...v0.2.0

Features

  • allow - as value representing stdin to binary-only file parameters in CLIs (40329ac)
  • api: api update (58ca36f)
  • api: api update (7101f8f)
  • api: api update (7e9d222)
  • api: api update (81dbe0c)
  • api: api update (d567ebf)
  • api: api update (a0e47e8)
  • api: api update (4e73766)
  • api: api update (a47645b)
  • api: api update (9e041b0)
  • api: api update (6388fc3)
  • api: api update (e11fbd3)
  • api: api update (cde57e6)
  • api: api update (15efdbc)
  • api: api update (6ea47ba)
  • api: api update (05fc238)
  • api: api update (2f69100)
  • api: api update (07389a5)
  • api: manual updates (909c9b0)
  • api: manual updates (d47a16c)
  • better error message if scheme forgotten in CLI *_BASE_URL/--base-url (665e431)
  • cli: add --raw-output/-r option to print raw (non-JSON) strings (4222549)
  • cli: alias parameters in data with x-stainless-cli-data-alias (fc1ebc7)
  • cli: send filename and content type when reading input from files (4b76c79)
  • support passing path and query params over stdin (14f99ef)

Bug Fixes

  • cli: correctly load zsh autocompletion (c419250)
  • cli: fix incompatible Go types for flag generated as array of maps (a95a486)
  • fall back to main branch if linking fails in CI (28b2498)
  • fix for failing to drop invalid module replace in link script (ad3cbf1)
  • fix quoting typo (d4f3537)
  • flags for nullable body scalar fields are strictly typed (c983439)

Chores

  • add documentation for ./scripts/link (2586047)
  • ci: support manually triggering release workflow (b5836aa)
  • cli: additional test cases for ShowJSONIterator (5784e71)
  • cli: fall back to JSON when using default "explore" with non-TTY (1b5c7e9)
  • cli: let --format raw be used in conjunction with --transform (d9c0c77)
  • cli: switch long lists of positional args over to param structs (4a9e250)
  • cli: use ShowJSONOpts as argument to formatJSON instead of many positionals (9e0c109)
  • internal: codegen related update (6a5c716)
  • internal: more robust bootstrap script (014bf27)
  • mark all CLI-related tests in Go with t.Parallel() (5fc2402)
  • modify CLI tests to inject stdout so mutating os.Stdout isn't necessary (b7fd553)
  • redact api-key headers in debug logs (6347635)
  • switch some CLI Go tests from os.Chdir to t.Chdir (2f49e45)
  • tests: bump steady to v0.22.1 (522092e)

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 force-pushed the release-please--branches--main--changes--next branch from e9ea7d3 to 27e3edd Compare April 3, 2026 05:40
@stainless-app
stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 27e3edd to 25aedf0 Compare April 3, 2026 05:40
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this release PR for version 0.2.0 appears clean with no issues identified across the reviewed files. The automated review found no logic bugs, security concerns, or correctness problems in any of the 6 reviewed changed files. This looks like a straightforward version bump or release packaging PR with no substantive technical concerns raised.

Key Findings:

  • No review comments were generated across 6 of 7 changed files, indicating the code changes are clean and well-structured.
  • Zero critical, significant, or medium-severity issues were detected by heuristic analysis, suggesting the release changes are safe.
  • The PR is scoped as a release (0.2.0), which typically involves version metadata updates and changelog entries — low-risk changes by nature.

@stainless-app
stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 25aedf0 to 03c6c45 Compare April 3, 2026 05:41
@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-cli/58ca36f39729f1276c2620cdcfebc5ebe5852d6c/dist.zip'. On macOS, run 'xattr -d com.apple.quarantine {executable name}'.

Expires at: Fri, 24 Jul 2026 22:32:43 GMT
Updated at: Wed, 24 Jun 2026 22:32:43 GMT

@canary-github

canary-github Bot commented Apr 3, 2026

Copy link
Copy Markdown

🐤 Canary Summary

This PR enhances CLI error messaging for base URL configuration:

  • Added upfront validation for HYPERSPELL_BASE_URL environment variable and --base-url flag
  • Users now get clear error messages specifying which configuration source is missing the scheme
  • Validation happens before CLI app execution, catching misconfiguration early
  • Error messages explicitly state expected format (http:// or https://), improving troubleshooting experience

Affected User Flows

Component User Flows
CLI Base URL Validation Improved
Configure API endpoint via env var: Generic URL parse errors → clear message 'HYPERSPELL_BASE_URL "example.com" is missing a scheme (expected http:// or https://)'

Configure API endpoint via CLI flag: Runtime URL errors → immediate validation error '--base-url "localhost:8080" is missing a scheme (expected http:// or https://)'

Start CLI with invalid base URL: App crashes with cryptic errors → early exit with actionable error message before app initialization

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this PR cleanly delivers the 0.2.0 release with well-scoped additions including ValidateBaseURL in pkg/cmd/cmdutil.go, onceStdinReader in pkg/cmd/flagoptions.go for safe stdin consumption, and proper wiring of URL validation in both the CLI flag layer (pkg/cmd/cmd.go) and the environment variable path (cmd/hyperspell/main.go). No review comments were generated across the 8 reviewed changed files, and the heuristic analysis found zero critical, significant, or medium issues. The changes are logically coherent — validating the base URL at both the flag and env-var entry points is a sound defensive pattern, and the once-reader abstraction prevents double-consumption of stdin, which is a common correctness concern in CLI tools.

Key Findings:

  • ValidateBaseURL correctly enforces http:///https:// scheme at both the --base-url flag validation site and the HYPERSPELL_BASE_URL environment variable startup path, closing two distinct injection surfaces consistently.
  • onceStdinReader in pkg/cmd/flagoptions.go addresses the classic stdin double-read hazard in CLI pipelines — safe and idiomatic use of sync.Once or equivalent guard for this pattern.
  • All 8 reviewed files produced zero findings from both automated heuristics and manual review comments, indicating the implementation is clean and the PR scope is well-contained to the stated feature set.
Files requiring special attention
  • pkg/cmd/cmdutil.go
  • pkg/cmd/flagoptions.go
  • cmd/hyperspell/main.go

@canary-github

canary-github Bot commented Apr 3, 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: 4/5 - Mostly Safe

Safe to merge — this PR introduces well-scoped features including onceStdinReader for enforcing single stdin consumption, isStdinPath() for detecting stdin aliases (-, /dev/fd/0, /dev/stdin), and ValidateBaseURL for HTTP/HTTPS scheme validation in cmdutil.go. The implementation addresses a clear need for binary file parameter support via stdin and tightens base URL validation across the CLI surface. No review comments were generated and all heuristic checks passed cleanly, making this a low-risk release candidate.

Key Findings:

  • onceStdinReader in pkg/cmd/flagoptions.go correctly enforces single-consumption semantics for stdin, which is a sound defensive pattern preventing silent double-read bugs in flag parsing pipelines.
  • ValidateBaseURL in pkg/cmd/cmdutil.go adds meaningful user-facing validation for scheme correctness (http:///https://), reducing the class of misconfiguration errors that could previously surface as cryptic network failures.
  • The isStdinPath() helper correctly enumerates the common stdin path aliases, though coverage of edge cases like /proc/self/fd/0 is not mentioned — this is a minor gap but not a blocking concern.
  • No automated review issues were flagged and 8 of 9 changed files were reviewed, providing high confidence in the change surface.
Files requiring special attention
  • pkg/cmd/flagoptions.go
  • pkg/cmd/cmdutil.go
  • cmd/hyperspell/main.go

Comment thread internal/requestflag/innerflag_test.go
Comment thread internal/requestflag/requestflag_test.go
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 3/5 - Review Recommended

Not safe to merge without fixes — while this PR delivers meaningful improvements like ValidateBaseURL, onceStdinReader, and startup validation in main.go, the test suite changes introduce two concrete correctness bugs that undermine the value of the new tests. Specifically, innerflag_test.go adds t.Parallel() inside a range loop without capturing the loop variable tt := tt, meaning all parallel subtests will use the last iteration's value in Go < 1.22. Additionally, requestflag_test.go runs parallel subtests that share mutable flag instances (strFlag, superstitiousIntFlag, boolFlag) defined in the outer TestFlagSet scope, introducing data races under -race that will cause non-deterministic failures.

Key Findings:

  • In internal/requestflag/innerflag_test.go, t.Parallel() is called inside a range loop without tt := tt variable capture — in Go < 1.22, all parallel subtests will reference the same final loop value, making the tests effectively useless as they all run with identical (last) inputs.
  • In internal/requestflag/requestflag_test.go, parallel subtests share the same outer-scope strFlag, superstitiousIntFlag, and boolFlag instances and concurrently call PreParse, Set, and Get on them — this is a real data race detectable with go test -race and can cause intermittent test failures or undefined behavior.
  • The production-side changes (ValidateBaseURL, onceStdinReader, startup exit-code validation) appear well-structured and purposeful, so the PR's core feature work is sound — only the test infrastructure is broken.
  • Both test bugs are in the same package and were introduced together as part of parallelizing the test suite, suggesting a systematic oversight when adding t.Parallel() calls without auditing shared state.
Files requiring special attention
  • internal/requestflag/innerflag_test.go
  • internal/requestflag/requestflag_test.go

@stainless-app
stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 03c6c45 to 5683b46 Compare April 3, 2026 21:30
@stainless-app
stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 5683b46 to 373f189 Compare April 4, 2026 05:08
Comment thread internal/requestflag/requestflag_test.go
Comment thread pkg/cmd/memory.go Outdated
Comment thread internal/apiquery/query_test.go
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 1/5 - Blocking Issues

Not safe to merge — this PR introduces multiple correctness-breaking bugs that will cause non-deterministic test failures and a silent functional regression in production. In internal/requestflag/requestflag_test.go, subtests now run in parallel while mutating shared strFlag, superstitiousIntFlag, and boolFlag instances declared in the outer TestFlagSet scope, creating data races on Flag internal fields. In pkg/cmd/memory.go, removing FileInput: true silently breaks the upload endpoint by passing a raw filename string as the request body instead of streaming the file contents. Additionally, internal/apiquery/query_test.go adds t.Parallel() inside a range loop without capturing loop variables, causing all subtests to close over the last iteration's values in Go < 1.22 — a pre-existing version of this same loop-variable closure bug in internal/requestflag/innerflag_test.go also remains unresolved from a prior review, indicating a pattern of unsafe parallel test refactoring throughout the codebase.

Key Findings:

  • In pkg/cmd/memory.go, removing FileInput: true from the flag options means the requestflag package will pass the raw filename string as the HTTP body instead of reading and streaming the file contents — this silently breaks the upload endpoint with no error surfaced to the user.
  • In internal/requestflag/requestflag_test.go, parallel subtests all mutate the shared strFlag, superstitiousIntFlag, and boolFlag variables from the outer TestFlagSet scope without synchronization, introducing data races on Flag internal fields (value, hasBeenSet, applied, count) that will cause non-deterministic and flaky test results.
  • In internal/apiquery/query_test.go, t.Parallel() is called inside a range loop without capturing name and test per iteration — in Go versions below 1.22 all parallel subtests will close over the final loop variable values, producing incorrect test behavior; this same anti-pattern also remains unresolved in internal/requestflag/innerflag_test.go from a prior review.
  • The PR does deliver meaningful improvements — ValidateBaseURL enforcement at startup, io.Writer abstraction in writeBinaryResponse for testability, and stdin file input support are all well-motivated changes — but the functional regression in memory.go and the data-race bugs in the test suite make the PR unsafe to merge in its current state.
Files requiring special attention
  • pkg/cmd/memory.go
  • internal/requestflag/requestflag_test.go
  • internal/apiquery/query_test.go
  • internal/requestflag/innerflag_test.go

@stainless-app
stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 373f189 to b0b376a Compare April 7, 2026 08:10
@stainless-app
stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from b0b376a to 4d95a0b Compare April 7, 2026 08:11
Comment thread internal/requestflag/requestflag_test.go
Comment thread pkg/cmd/flagoptions_test.go
Comment thread pkg/cmd/memory.go
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 2/5 - Changes Needed

Not safe to merge — this PR introduces three high-severity bugs that must be addressed before merging. In pkg/cmd/flagoptions_test.go, parallel subtests iterate over tt without capturing it, meaning all subtests run with the final loop value in Go < 1.22, making the entire parallel test suite unreliable. In internal/requestflag/requestflag_test.go, shared mutable flag instances (strFlag, superstitiousIntFlag, boolFlag) are accessed concurrently across parallel subtests, introducing data races that go test -race will catch — and this concern has been flagged in two prior unresolved review comments. Most critically, the removal of FileInput: true from the file flag in pkg/cmd/memory.go likely breaks the memories upload command by passing a raw file path string instead of streaming file contents to the multipart upload. The PR's goals — stdin support for @file parameters, ValidateBaseURL enforcement, and test modernization — are well-intentioned, but these regressions block a safe release.

Key Findings:

  • In pkg/cmd/flagoptions_test.go, the for _, tt := range tests loop adds t.Parallel() without a tt := tt capture, causing all parallel subtests to close over the same loop variable and execute with only the last test case's data in Go versions prior to 1.22.
  • In internal/requestflag/requestflag_test.go, strFlag, superstitiousIntFlag, and boolFlag are declared once in the outer TestFlagSet scope and then mutated concurrently by multiple t.Parallel() subtests, introducing data races on internal fields like value, hasBeenSet, applied, and count — this was flagged in two prior unresolved review comments and remains unaddressed.
  • In pkg/cmd/memory.go, removing FileInput: true from the file flag definition means the flag no longer signals that it should read and stream file contents; the CLI will instead forward the raw path string to the multipart upload, functionally breaking the memories upload command.
  • The test modernization effort (widespread t.Parallel() adoption) is a positive direction, but the incorrect parallel patterns introduced here undermine test reliability precisely in the areas being modernized.
  • 3 previous unresolved comment(s) likely resolved in latest diff (score-only signal; thread status unchanged)
Files requiring special attention
  • pkg/cmd/memory.go
  • pkg/cmd/flagoptions_test.go
  • internal/requestflag/requestflag_test.go

Comment thread internal/apiquery/query_test.go
Comment thread internal/requestflag/requestflag_test.go
Comment thread pkg/cmd/memory.go
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 1/5 - Blocking Issues

Not safe to merge — this PR introduces data races in parallelized test suites and a functional regression in multipart file uploads. In internal/requestflag/requestflag_test.go, multiple subtests running in parallel all mutate shared strFlag, superstitiousIntFlag, and boolFlag instances declared in the outer TestFlagSet scope, producing concurrent read/write races that will cause flaky or incorrect test results — and this concern has been raised in three separate unresolved prior review comments, meaning it has been flagged repeatedly without correction. In internal/apiquery/query_test.go, the loop-variable capture bug (missing test := test before t.Parallel()) will cause all parallel subtests to reference the same final loop value in Go < 1.22. Most critically, the removal of FileInput: true from the file flag in pkg/cmd/memory.go is a behavioral regression that will cause multipart uploads to send the literal filename string rather than the actual file contents, breaking the feature the PR claims to enhance.

Key Findings:

  • In pkg/cmd/memory.go, removing FileInput: true from the file flag definition means the flag is no longer treated as a path to open — multipart uploads will transmit the raw filename string as the body, not the file contents, which is a silent functional regression for all binary file parameter uploads.
  • In internal/requestflag/requestflag_test.go, the parallel subtests Set string flag, Set int flag with valid value, Set int flag with invalid value, etc. all concurrently mutate the same strFlag, superstitiousIntFlag, and boolFlag pointers from the outer scope, introducing data races; this issue has appeared in three consecutive unresolved review comments and remains unfixed.
  • In internal/apiquery/query_test.go, the table-driven subtests call t.Parallel() without a local copy of the test loop variable, so in Go versions before 1.22 every goroutine captures the same final iteration value, rendering the parallel subtests useless for correctness and potentially masking real failures.
  • The combination of a functional file-upload regression (FileInput removal) and multiple confirmed data races in the newly parallelized test suites means neither the production code nor the test harness can be trusted as-is.
  • 4 previous unresolved comment(s) likely resolved in latest diff (score-only signal; thread status unchanged)
Files requiring special attention
  • pkg/cmd/memory.go
  • internal/requestflag/requestflag_test.go
  • internal/apiquery/query_test.go

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: pkg/cmd/memory.go

NIT CORRECTNESS provenance flag references undocumented effort level 'very_high'

The effort flag documents only 'minimal', 'low', 'medium', 'high' as valid values, but the provenance usage string says it applies to effort='very_high' only — CLI users reading --help have no way to discover this level.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: scripts/link

NIT CORRECTNESS Redirect stderr of go list -m to suppress confusing error output on skip path

When $REPLACEMENT is not a resolvable module, go list -m exits non-zero and emits an error on stderr before the 'Skipping…' message, making CI logs look like a failure rather than a graceful skip.

if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then
Prompt to fix with AI

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

In scripts/link at line 12, the command `go list -m "$REPLACEMENT" >/dev/null` only redirects stdout. When the module path doesn't exist, `go list -m` prints an error to stderr, producing confusing output in CI before the 'Skipping…' message. Change `>/dev/null` to `>/dev/null 2>&1` so both stdout and stderr are suppressed for the probe call.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: pkg/cmd/memory.go

NIT MAINTAINABILITY Remove internal ticket reference from user-facing help text

The string (ENG-2479 Phase 4) is an internal engineering ticket reference that surfaces verbatim when a user runs hyperspell memory get --help.

	Usage:   "Retrieves a document by provider and resource_id, as a document-shaped response\ncarrying the full hyperdoc tree.",
Prompt to fix with AI

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

In pkg/cmd/memory.go at line 224, the `Usage` field of `memoriesGet` contains an internal ticket reference `(ENG-2479 Phase 4)` that is visible to end users via `--help`. Remove `(ENG-2479 Phase 4)` from the usage string so it reads: `"Retrieves a document by provider and resource_id, as a document-shaped response\ncarrying the full hyperdoc tree."`

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: scripts/link

NIT CORRECTNESS Suppress stderr from go list -m when module is not found

When $REPLACEMENT isn't a valid module path, go list -m prints a go: ... error to stderr before the 'Skipping' message, producing confusing mixed output. Add 2>/dev/null alongside the existing stdout redirect.

if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then
Prompt to fix with AI

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

In `scripts/link` at line 12, the condition `go list -m "$REPLACEMENT" >/dev/null` only redirects stdout but not stderr. When the module path is invalid/not found, `go list` prints an error to stderr that appears before the 'Skipping' message, confusing users. Change the line to: `if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then`

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: pkg/cmd/memory.go

NIT CORRECTNESS Add 'very_high' to effort flag's documented values

The provenance flag usage says it requires effort='very_high', but the effort flag's usage string only lists 'minimal', 'low', 'medium', 'high' — omitting 'very_high'. A user reading the help text cannot discover the valid value needed to activate provenance.

Prompt to fix with AI

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

In pkg/cmd/memory.go at lines 260-265, the `effort` flag's Usage string lists valid values as: 'minimal', 'low', 'medium', 'high'. At line 279, the `provenance` flag's Usage says it only works with effort='very_high', but that value is not documented. Append `'very_high' = rewrite + extended refinement with full provenance tracking (up to 6 rounds + provenance).` (or equivalent) to the end of the effort Usage string so users can discover the value needed to enable provenance.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: scripts/link

NIT MAINTAINABILITY Suppress stderr from go list -m when module is not found

When $REPLACEMENT is not a local directory and is also not a resolvable Go module, go list -m prints an error to stderr before the script silently skips — producing confusing noise in CI logs.

if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then
Prompt to fix with AI

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

In `scripts/link` at line 12, the condition `go list -m "$REPLACEMENT" >/dev/null` only suppresses stdout. When the module cannot be resolved, `go list` also emits an error to stderr, which pollutes CI logs before the friendly skip message appears. Change the redirect to `>/dev/null 2>&1` to suppress both stdout and stderr.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: scripts/link

NIT MAINTAINABILITY Suppress stderr from go list -m when module is not found

When $REPLACEMENT is not a local directory and the module doesn't exist, go list -m prints an error to stderr before the script reaches the else branch, making CI logs look like the script failed.

if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then
Prompt to fix with AI

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

In `scripts/link` at line 12, the condition `go list -m "$REPLACEMENT" >/dev/null` only suppresses stdout. When the module does not exist, `go list -m` prints an error to stderr that pollutes CI logs before the 'Skipping' message. Change `>/dev/null` to `>/dev/null 2>&1` so both stdout and stderr are suppressed when `go list -m` fails.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: pkg/cmd/memory.go

NIT CORRECTNESS Provenance flag references undocumented effort value 'very_high'

The provenance usage string conditions its effect on effort='very_high', but the effort flag only documents four valid values: 'minimal', 'low', 'medium', 'high' — 'very_high' is absent, leaving users no way to discover or invoke the supported combination.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: scripts/link

NIT UX Suppress stderr from go list -m when module is not found

Only stdout is redirected; when the module doesn't exist go list emits an error to stderr, so the terminal shows a Go error line immediately before "Skipping Go SDK replacement…", making it look like the script failed.

if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then
Prompt to fix with AI

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

In scripts/link, line 12, the command `go list -m "$REPLACEMENT" >/dev/null` only redirects stdout. When the module doesn't exist, go list writes an error to stderr that appears before the 'Skipping...' message. Fix by also redirecting stderr: change `>/dev/null` to `>/dev/null 2>&1` on that line.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: scripts/link

NIT MAINTAINABILITY Suppress stderr from go list -m when module is not found

When $REPLACEMENT is neither a local directory nor a resolvable module, go list -m prints a Go error to stderr before the else-branch prints "Skipping", making the output look like an unhandled failure. Adding 2>/dev/null keeps the output clean.

if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then
Prompt to fix with AI

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

In `scripts/link` at line 12, the condition `go list -m "$REPLACEMENT" >/dev/null` only suppresses stdout. When the module cannot be resolved, Go prints an error to stderr, which appears on the terminal before the 'Skipping' message in the else branch, making the output look like an error. Change `>/dev/null` to `>/dev/null 2>&1` so both stdout and stderr are suppressed, keeping the output clean when the else branch is taken.

Comment thread pkg/cmd/evaluate.go
@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: pkg/cmd/memory.go

NIT CORRECTNESS Provenance flag references undocumented effort level 'very_high'

The provenance flag usage says it requires effort='very_high', but the effort flag only documents four values: minimal, low, medium, and high. Users reading the help text cannot discover the correct effort value to pass for provenance to take effect.

Prompt to fix with AI

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

In pkg/cmd/memory.go at line 279, the provenance flag's Usage string references `effort='very_high'` but the effort flag at lines 262-263 only documents values 'minimal', 'low', 'medium', 'high'. Either add 'very_high' to the effort flag's Usage description, or correct the provenance flag's Usage to reference the correct effort level.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: scripts/link

NIT CORRECTNESS Redirect stderr from go list -m to suppress confusing error output

When $REPLACEMENT is not a local directory and not a valid module, go list -m exits non-zero and prints an error to stderr before the script prints the friendly 'Skipping' message, producing misleading noise for users.

if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then
Prompt to fix with AI

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

In `scripts/link` at line 12, the condition `go list -m "$REPLACEMENT" >/dev/null` only redirects stdout. When the module doesn't exist, `go list` prints an error to stderr that appears before the 'Skipping' message, confusing users. Change the redirection to `>/dev/null 2>&1` so the full line reads: `if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null 2>&1; then`

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

File: pkg/cmd/memory.go

NIT CORRECTNESS provenance usage references non-existent effort level 'very_high'

The effort flag only defines four values ('minimal', 'low', 'medium', 'high'), so users reading --help will be unable to use provenance correctly since the required effort level doesn't exist.

Prompt to fix with AI

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

In pkg/cmd/memory.go at line 279, the provenance flag's Usage string says "If true (effort='very_high' only)" but the effort flag defined at line 260-264 only lists 'minimal', 'low', 'medium', 'high' as valid values — there is no 'very_high'. Either add 'very_high' to the effort flag's usage/allowed values, or correct the provenance usage string to reference the actual effort level that enables provenance (e.g. 'high'). Fix whichever reflects the true API contract.

@aburkard

Copy link
Copy Markdown
Contributor

Superseded by the stlc-based SDK generation cutover (ENG-2597) — releases now flow through our in-house release-please workflow instead of Stainless. Closing this Stainless-hosted release PR.

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