-
Notifications
You must be signed in to change notification settings - Fork 6
CLI: Update SDK to v0.30.0 and add new flags #102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Updated kernel-go-sdk from v0.28.0 to v0.29.0 - Added 1280x800@60 to available viewport configurations to match SDK update - Updated viewport test to reflect the new viewport option SDK release notes: - Add support for 1280x800@60 viewport - Add convenient param.SetJSON helper
- Update kernel-go-sdk from v0.29.0 to v0.30.0 - Add --status flag for browser list (active, deleted, all) - Add --async-timeout flag for invoke command SDK bump triggered by: kernel/kernel-go-sdk@6ca29d2
|
🔧 CI Fix Available I've pushed a fix for the CI failure. The test |
| } | ||
| if asyncTimeout > 0 { | ||
| params.AsyncTimeoutSeconds = kernel.Opt(asyncTimeout) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing validation for async-timeout documented bounds
Low Severity
The --async-timeout flag help text states "(min 10, max 3600)" but the code only checks if asyncTimeout > 0 before passing the value to AsyncTimeoutSeconds. This allows values like 5 (below minimum) or 10000 (above maximum) to be sent to the API. Users relying on the documented constraints would expect invalid values to be rejected by the CLI with a helpful error.
Additional Locations (1)
The viewport '1280x800@60' was added twice: - Once in commit 899caee (SDK v0.29.0 update) - Again in commit 4d9565b (feat: add 1280x800 viewport support #97) This resulted in 8 items in getAvailableViewports() while the test expected 7 items, causing test failures. Also removes the duplicate assertion in the test file. Co-authored-by: mason <mason@onkernel.com>
Adds CLI support for the SDK's InvocationService.ListBrowsers() method which returns all active browser sessions created within a specific invocation. Usage: kernel invoke browsers <invocation_id> [--output json] Co-authored-by: mason <mason@onkernel.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| if err != nil { | ||
| pterm.Error.Printf("Failed to list browsers for invocation: %v\n", err) | ||
| return nil | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
API error returns success exit code in new command
Medium Severity
The new runInvocationBrowsers function prints the error on API failure but returns nil instead of the error. This causes the CLI to exit with code 0 (success) even when the API call fails. Scripts and CI/CD pipelines that check exit codes will incorrectly believe the command succeeded. Other handlers in browsers.go and agents.go properly return util.CleanedUpSdkError{Err: err} for API errors.
| return util.PrintPrettyJSONSlice(resp.Browsers) | ||
| } | ||
|
|
||
| if len(resp.Browsers) == 0 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing nil check on API response causes potential panic
Medium Severity
The runInvocationBrowsers function accesses resp.Browsers without first checking if resp is nil. Other similar functions in browsers.go and agents.go follow a defensive pattern of checking if page != nil before accessing response fields. If the SDK returns a nil response without an error (which the existing defensive code suggests is possible), this would cause a nil pointer dereference panic.


This PR updates the Go SDK to 6ca29d21e5610db982caf74297cf481996793170 and adds CLI flags for new SDK parameters.
SDK Update
Coverage Analysis
A full enumeration of SDK methods and CLI commands was performed to identify coverage gaps.
New Flags
--statusforkernel browsers list- Filter by status: 'active' (default), 'deleted', or 'all'. Corresponds toBrowserListParams.Status--async-timeoutforkernel invoke- Timeout in seconds for async invocations (min 10, max 3600). Corresponds toInvocationNewParams.AsyncTimeoutSecondsDeprecations
--include-deletedforkernel browsers listas deprecated in favor of--statusTriggered by: kernel/kernel-go-sdk@6ca29d2
Reviewer: @stainless-app[bot]
Note
Medium Risk
Moderate risk due to the SDK version bump and new request parameters/endpoint usage that could change CLI behavior against the API (especially listing/filtering and invocation timeouts).
Overview
Updates
kernel-go-sdktov0.30.0and wires new SDK parameters into the CLI.kernel browsers listnow supports--status(active|deleted|all), deprecating--include-deletedwhile keeping it as a fallback; table output conditionally showsDeleted Atbased on the chosen status.kernel invokeadds--async-timeoutto passAsyncTimeoutSeconds, and introduceskernel invoke browsers <invocation_id>to list browser sessions for a specific invocation (table or--output json).Written by Cursor Bugbot for commit 2658014. This will update automatically on new commits. Configure here.