Releases Index
← What's New

Collections browsable from CLI; tables adapt to terminal width

Minor Changes

  • 913fdd2: Collections are now first-class browsable from the CLI.

    • releases collection list and releases collection get <slug> are public — no API key needed. The same commands also stay under admin for 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 CollectionReleaseItem isn't published in @buildinternet/releases-api-types yet, 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 from process.stdout.columns (override with COLUMNS=<n>).
    • Non-TTY (piped): bare TSV — no headers, no color, no truncation — so releases org list | cut -f2 works without parsing ANSI. For complete parseable output, prefer --json.

    Replaces cli-table3 with a small in-tree renderer in src/cli/render/table.ts that uses string-width for accurate width measurement on ANSI-colored and wide-character cells. Per-column noTruncate: true locks a column to its natural width (e.g. release IDs, dates).