feat(job-array-one-based-index): xcecli list and control use the selection parser (task 8.2)

ID lists split only at commas outside brackets and every selection is
validated before any request (control allows identity ranges, listing
refuses them). A raw -J value with brackets is checked before the
wildcard mapping, and the search rule and * stripping apply to the
name part only (-J 'foo*[1]' lists element 1 of arrays whose name
starts with foo); values without brackets map exactly as before.
Control results print each item's own job ID when the server sends it,
so a pre-upgrade element 0 shows as <array-id>[0]. Control and list
help show <array-id>[k] and <array-id>[a-b]; list help now says -J.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-10-01 12:53:50 +00:00
parent bc616e8c4a
commit 58ca7abb36
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
7 changed files with 439 additions and 38 deletions

View file

@ -452,9 +452,10 @@ type JobControlResponseData struct {
}
type JobControlResponseItem struct {
JobID int64 `json:"job_id"`
ArrayIdx int `json:"array_idx,omitempty"`
Msg string `json:"msg"`
JobID int64 `json:"job_id"`
ArrayIdx int `json:"array_idx,omitempty"`
UniqueJobID int64 `json:"unique_job_id,omitempty"` // the result's own job ID (absent from older servers)
Msg string `json:"msg"`
}
// job array statistics data structure