Skip to content

Commit d18dca1

Browse files
archandattaclaude
andcommitted
refactor: drop --offset, align telemetry events flags with stream
Address review: remove the --offset flag (it advertised an X-Next-Offset cursor the command never emits; --all owns multi-page paging). Rename --category to --categories to match the telemetry stream sibling, and drop the now-inaccurate "ignored with --all"/"ignored when --offset" help clauses. Expand the param-mapping test to cover since/until and multi-event emit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent c0d3174 commit d18dca1

3 files changed

Lines changed: 19 additions & 16 deletions

File tree

cmd/browsers.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2751,12 +2751,11 @@ followed automatically by Chromium.`,
27512751
telemetryRoot.AddCommand(telemetryStream)
27522752

27532753
telemetryEvents := &cobra.Command{Use: "events <id>", Short: "Read recorded telemetry events", Args: cobra.ExactArgs(1), RunE: runBrowsersTelemetryEvents}
2754-
telemetryEvents.Flags().Int64("limit", 0, "Max events per page (1-100, default 20). Ignored with --all")
2755-
telemetryEvents.Flags().Int64("offset", 0, "Pagination cursor: the X-Next-Offset value from a previous page")
2756-
telemetryEvents.Flags().String("since", "", "Window start: RFC-3339 timestamp or duration like 5m (default 5m). Ignored when --offset is set")
2754+
telemetryEvents.Flags().Int64("limit", 0, "Max events per page (1-100, default 20)")
2755+
telemetryEvents.Flags().String("since", "", "Window start: RFC-3339 timestamp or duration like 5m (default 5m)")
27572756
telemetryEvents.Flags().String("until", "", "Window end (exclusive): RFC-3339 timestamp or duration like 5m")
2758-
telemetryEvents.Flags().StringSlice("category", []string{}, "Filter by event category (console,network,page,interaction,control,connection,system,screenshot,captcha,monitor)")
2759-
telemetryEvents.Flags().Bool("all", false, "Walk the cursor and fetch every page")
2757+
telemetryEvents.Flags().StringSlice("categories", []string{}, "Filter by event category (console,network,page,interaction,control,connection,system,screenshot,captcha,monitor)")
2758+
telemetryEvents.Flags().Bool("all", false, "Fetch every page instead of just the first")
27602759
telemetryEvents.Flags().StringP("output", "o", "", "Output format: json for newline-delimited JSON envelopes")
27612760
telemetryRoot.AddCommand(telemetryEvents)
27622761

cmd/browsers_telemetry.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ func runBrowsersTelemetryStream(cmd *cobra.Command, args []string) error {
239239
type BrowsersTelemetryEventsInput struct {
240240
Identifier string
241241
Limit int64
242-
Offset int64
243242
Since string
244243
Until string
245244
Categories []string
@@ -256,17 +255,14 @@ func (b BrowsersCmd) TelemetryEvents(ctx context.Context, in BrowsersTelemetryEv
256255
}
257256
for _, c := range in.Categories {
258257
if !slices.Contains(streamFilterCategories, c) {
259-
return fmt.Errorf("invalid --category value %q: must be one of %s", c, strings.Join(streamFilterCategories, ", "))
258+
return fmt.Errorf("invalid --categories value %q: must be one of %s", c, strings.Join(streamFilterCategories, ", "))
260259
}
261260
}
262261

263262
params := kernel.BrowserTelemetryEventsParams{}
264263
if in.Limit > 0 {
265264
params.Limit = kernel.Opt(in.Limit)
266265
}
267-
if in.Offset > 0 {
268-
params.Offset = kernel.Opt(in.Offset)
269-
}
270266
if in.Since != "" {
271267
params.Since = kernel.Opt(in.Since)
272268
}
@@ -327,16 +323,14 @@ func runBrowsersTelemetryEvents(cmd *cobra.Command, args []string) error {
327323
svc := client.Browsers
328324
out, _ := cmd.Flags().GetString("output")
329325
limit, _ := cmd.Flags().GetInt64("limit")
330-
offset, _ := cmd.Flags().GetInt64("offset")
331326
since, _ := cmd.Flags().GetString("since")
332327
until, _ := cmd.Flags().GetString("until")
333-
categories, _ := cmd.Flags().GetStringSlice("category")
328+
categories, _ := cmd.Flags().GetStringSlice("categories")
334329
all, _ := cmd.Flags().GetBool("all")
335330
b := BrowsersCmd{browsers: &svc, telemetry: &svc.Telemetry}
336331
return b.TelemetryEvents(cmd.Context(), BrowsersTelemetryEventsInput{
337332
Identifier: args[0],
338333
Limit: limit,
339-
Offset: offset,
340334
Since: since,
341335
Until: until,
342336
Categories: categories,

cmd/browsers_telemetry_test.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,22 +110,32 @@ func TestTelemetryEvents_SinglePageTextAndParams(t *testing.T) {
110110
var gotQuery kernel.BrowserTelemetryEventsParams
111111
fakeTelemetry := &FakeBrowserTelemetryService{EventsFunc: func(id string, query kernel.BrowserTelemetryEventsParams) (*pagination.OffsetPagination[kernel.BrowserTelemetryEventsResponse], error) {
112112
gotID, gotQuery = id, query
113-
return telemetryEventsPage(t, `{"event":{"type":"network_response","category":"network","ts":1000000},"seq":7}`), nil
113+
return telemetryEventsPage(t,
114+
`{"event":{"type":"network_response","category":"network","ts":1000000},"seq":7}`,
115+
`{"event":{"type":"network_request","category":"network","ts":2000000},"seq":8}`,
116+
), nil
114117
}}
115118
b := BrowsersCmd{browsers: fakeBrowsers, telemetry: fakeTelemetry}
116119

117120
err := b.TelemetryEvents(context.Background(), BrowsersTelemetryEventsInput{
118121
Identifier: "session123",
119122
Limit: 5,
123+
Since: "5m",
124+
Until: "2020-01-01T00:00:00Z",
120125
Categories: []string{"network"},
121126
})
122127

123128
assert.NoError(t, err)
124129
assert.Equal(t, "session123", gotID)
125130
assert.Equal(t, int64(5), gotQuery.Limit.Value)
131+
assert.Equal(t, "5m", gotQuery.Since.Value)
132+
assert.Equal(t, "2020-01-01T00:00:00Z", gotQuery.Until.Value)
126133
assert.Equal(t, []kernel.BrowserTelemetryEventsParamsCategory{"network"}, gotQuery.Category)
127-
assert.Contains(t, outBuf.String(), "network_response")
128-
assert.Contains(t, outBuf.String(), "7")
134+
out := outBuf.String()
135+
assert.Contains(t, out, "network_response")
136+
assert.Contains(t, out, "network_request")
137+
assert.Contains(t, out, "7")
138+
assert.Contains(t, out, "8")
129139
}
130140

131141
func TestTelemetryEvents_SinglePageJSON(t *testing.T) {

0 commit comments

Comments
 (0)