Skip to content

Commit 921d465

Browse files
authored
Add --query flag to kernel browsers list (#126)
And related test <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: adds an optional list filter flag and passes it through to the SDK, with a small unit test verifying param wiring. > > **Overview** > Adds a new `--query` flag to `kernel browsers list` and threads it through `BrowsersListInput` into `kernel.BrowserListParams.Query` so list results can be searched (session/profile/proxy IDs). > > Adds a unit test ensuring the query value is passed to the underlying `BrowsersService.List` call. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 64b55db. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent f22a08b commit 921d465

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

cmd/browsers.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ type BrowsersListInput struct {
228228
Status string
229229
Limit int
230230
Offset int
231+
Query string
231232
}
232233

233234
func (b BrowsersCmd) List(ctx context.Context, in BrowsersListInput) error {
@@ -257,6 +258,9 @@ func (b BrowsersCmd) List(ctx context.Context, in BrowsersListInput) error {
257258
if in.Offset > 0 {
258259
params.Offset = kernel.Opt(int64(in.Offset))
259260
}
261+
if in.Query != "" {
262+
params.Query = kernel.Opt(in.Query)
263+
}
260264

261265
page, err := b.browsers.List(ctx, params)
262266
if err != nil {
@@ -2139,6 +2143,7 @@ func init() {
21392143
browsersListCmd.Flags().String("status", "", "Filter by status: 'active' (default), 'deleted', or 'all'")
21402144
browsersListCmd.Flags().Int("limit", 0, "Maximum number of results to return (default 20, max 100)")
21412145
browsersListCmd.Flags().Int("offset", 0, "Number of results to skip (for pagination)")
2146+
browsersListCmd.Flags().String("query", "", "Search browsers by session ID, profile ID, or proxy ID")
21422147

21432148
// get flags
21442149
browsersGetCmd.Flags().StringP("output", "o", "", "Output format: json for raw API response")
@@ -2418,12 +2423,14 @@ func runBrowsersList(cmd *cobra.Command, args []string) error {
24182423
status, _ := cmd.Flags().GetString("status")
24192424
limit, _ := cmd.Flags().GetInt("limit")
24202425
offset, _ := cmd.Flags().GetInt("offset")
2426+
query, _ := cmd.Flags().GetString("query")
24212427
return b.List(cmd.Context(), BrowsersListInput{
24222428
Output: out,
24232429
IncludeDeleted: includeDeleted,
24242430
Status: status,
24252431
Limit: limit,
24262432
Offset: offset,
2433+
Query: query,
24272434
})
24282435
}
24292436

cmd/browsers_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,26 @@ func TestBrowsersList_PrintsErrorOnFailure(t *testing.T) {
193193
assert.Contains(t, err.Error(), "list failed")
194194
}
195195

196+
func TestBrowsersList_WithQuery_PassesParam(t *testing.T) {
197+
setupStdoutCapture(t)
198+
199+
var captured kernel.BrowserListParams
200+
fake := &FakeBrowsersService{
201+
ListFunc: func(ctx context.Context, query kernel.BrowserListParams, opts ...option.RequestOption) (*pagination.OffsetPagination[kernel.BrowserListResponse], error) {
202+
captured = query
203+
return &pagination.OffsetPagination[kernel.BrowserListResponse]{Items: []kernel.BrowserListResponse{
204+
{SessionID: "sess-matched"},
205+
}}, nil
206+
},
207+
}
208+
b := BrowsersCmd{browsers: fake}
209+
err := b.List(context.Background(), BrowsersListInput{Query: "sess-matched"})
210+
211+
assert.NoError(t, err)
212+
assert.True(t, captured.Query.Valid())
213+
assert.Equal(t, "sess-matched", captured.Query.Value)
214+
}
215+
196216
func TestBrowsersCreate_PrintsResponse(t *testing.T) {
197217
setupStdoutCapture(t)
198218

0 commit comments

Comments
 (0)