Collections browsable from CLI; tables adapt to terminal width
Minor Changes
-
913fdd2: Collections are now first-class browsable from the CLI.
releases collection listandreleases collection get <slug>are public — no API key needed. The same commands also stay underadminfor back-compat.- New
releases collection releases <slug>shows the cross-org release feed with cursor pagination (--limit,--cursor,--include-prereleases). releases get <orgslug>now lists the collections an org belongs to. Failures degrade silently with a logger warning so an unrelated bug in the collections endpoint never breaks the canonical org card.
The wire shape for
CollectionReleaseItemisn't published in@buildinternet/releases-api-typesyet, so the CLI declares it inline. When api-types ships its next minor, the inline type can drop. -
d2053e3: Tabular reader commands (
get,org list,product list,list sources,collection list,stats,check,fetch-log,admin overview list,admin overview plan) now fit themselves to the terminal width instead of relying on bordered tables that broke when the window was narrow.- TTY: borderless, two-space delimited columns; uppercase cyan headers; per-column truncation with
…; per-column right-alignment for counts. Width is read fromprocess.stdout.columns(override withCOLUMNS=<n>). - Non-TTY (piped): bare TSV — no headers, no color, no truncation — so
releases org list | cut -f2works without parsing ANSI. For complete parseable output, prefer--json.
Replaces
cli-table3with a small in-tree renderer insrc/cli/render/table.tsthat usesstring-widthfor accurate width measurement on ANSI-colored and wide-character cells. Per-columnnoTruncate: truelocks a column to its natural width (e.g. release IDs, dates). - TTY: borderless, two-space delimited columns; uppercase cyan headers; per-column truncation with