Skip to content

Surface the SDK's Everything aggregate family in the CLI #585

Description

@jeremy

SDK v0.10.0 (adopted in #584) adds EverythingService, reachable via AccountClient.Everything() (basecamp/basecamp-sdk#435, #438). It has 17 methods and no CLI surface today.

The account-wide aggregates it exposes:

  • Recording streams: Messages, Comments, Checkins, Forwards
  • Boosts
  • Files (takes an options struct)
  • Todo rollups: OpenTodos, CompletedTodos, UnassignedTodos, NoDueDateTodos, OverdueTodos
  • Card rollups: OpenCards, CompletedCards, UnassignedCards, NoDueDateCards, NotNowCards, OverdueCards

Most are paginated by an int32 page and return grouped pages (RecordingsPage, BucketTodosGroupsPage, BucketCardsGroupsPage); the two overdue methods return flat slices instead.

API-COVERAGE.md currently records the family as present-but-unsurfaced and keeps it out of the parity totals, so the matrix isn't claiming coverage it doesn't have. That note should be replaced with real rows once commands exist.

Worth designing rather than translating

A mechanical 1:1 mapping to 17 subcommands would be the wrong shape. These aggregates overlap conceptually with three existing groups:

  • recordings already browses by type and status across projects
  • assignments already answers "what's on my plate"
  • search already does cross-project lookup

So the open question is whether this becomes a new everything group, or whether the aggregates become flags/filters on the groups that already own those nouns — for example an account-wide scope on recordings, or overdue/unassigned filters on todos and cards. Note that STYLE.md forbids a new top-level verb that shadows an existing group noun, which constrains some of the options.

Pagination also needs a decision: the CLI's existing list commands mostly hide paging behind bounded defaults, and these methods expose raw page numbers.

Not blocking release N — the bump ships without it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions