diff --git a/internal/cli/incident.go b/internal/cli/incident.go index 52d9908..90e4b3a 100644 --- a/internal/cli/incident.go +++ b/internal/cli/incident.go @@ -124,7 +124,9 @@ func newIncidentListCmd() *cobra.Command { cmd.Flags().StringVar(&severity, "severity", "", "Filter: Critical,Warning,Info") registerEnumFlag(cmd, "progress", "Triggered", "Processing", "Closed") registerEnumFlag(cmd, "severity", severityEnum...) - cmd.Flags().Int64Var(&channelID, "channel", 0, "Filter by channel ID") + // --channel-id matches the sibling channel commands (channel info + // --channel-id, channel escalate-rule-list --channel-id). + cmd.Flags().Int64Var(&channelID, "channel-id", 0, "Filter by channel ID") cmd.Flags().StringVar(&query, "query", "", "Free-text search across title/labels/content (also resolves a 24-char incident ID or 6-char incident num to a direct lookup)") cmd.Flags().StringVar(&nums, "nums", "", "Comma-separated short incident ids (num, the 6-char id shown in the UI) to filter by") cmd.Flags().StringVar(&since, "since", "24h", "Start time (duration, date, datetime, or unix timestamp; --since→--until window must be < 31 days)") diff --git a/internal/cli/incident_test.go b/internal/cli/incident_test.go index 6345754..61156a7 100644 --- a/internal/cli/incident_test.go +++ b/internal/cli/incident_test.go @@ -1,6 +1,7 @@ package cli import ( + "fmt" "testing" ) @@ -26,3 +27,23 @@ func TestCommandIncidentSimilarLimitReachesWire(t *testing.T) { t.Errorf("incident_id = %#v, want inc-1", stub.lastBody["incident_id"]) } } + +// TestCommandIncidentListChannelIDFlag verifies that `incident list` accepts +// the canonical --channel-id flag (consistent with the sibling channel +// commands, e.g. `channel info --channel-id`) and forwards it to /incident/list +// as channel_ids. An agent that transferred --channel-id from those commands +// previously hit "unknown flag: --channel-id" and wasted a turn. +func TestCommandIncidentListChannelIDFlag(t *testing.T) { + saveAndResetGlobals(t) + stub := newGFStub(t) + + if _, err := execCommand("incident", "list", "--channel-id", "123"); err != nil { + t.Fatalf("execCommand --channel-id: %v", err) + } + if stub.lastPath != "/incident/list" { + t.Fatalf("path = %q, want /incident/list", stub.lastPath) + } + if got, want := fmt.Sprint(stub.lastBody["channel_ids"]), "[123]"; got != want { + t.Fatalf("channel_ids = %q, want %q", got, want) + } +}