Skip to content

Absorb everything-aggregates flat family (BC3 #11627, PR-5 of 2) #434

Description

@jeremy

Summary

BC5's account-wide recording listings (everything/*_controller.rb, documented by BC3 #11627 in doc/api/sections/everything.md) had no SDK surface. The contract is two families across 17 routes; this issue's PR (PR-5) absorbs the flat family (8 ops). PR-5b will absorb the bucket-grouped family; the registry entry stays partial-coverage until both land.

Absorbed (flat family, 8 ops)

New EverythingService, mirroring the flat-aggregate pattern of GetMyAssignments:

  • 6 Link-paginated roots: GetEverythingMessages/Comments/Checkins/Forwards (element = the generic Recording projection the wire returns, embedding bucket), GetEverythingBoosts (element = Boost), GetEverythingFiles.
  • 2 unpaginated oldest-first arrays: GetEverythingOverdueTodos (Todo), GetEverythingOverdueCards (Card) — bare arrays via the smithy-bare-arrays transform, no Link-following.
  • /files.json heterogeneous (Upload + Document + attachment-envelope) → optional-field superset EverythingFile, with kind + repeatable people_ids[] filters. Runtime decode proof in every SDK (Go/TS/Ruby/Python/Kotlin/Swift): a non-empty test decoding all three variants in one array. (Kotlin needed EverythingFile in the generator TYPE_ALIASES to emit a typed model rather than JsonElement.)

Go wrappers: multi-page Link-following (roots) + plain full-array decode (overdue); tests cover multi-page pagination, unpaginated-with-Link-ignored, per-variant files decode, and the filters. Client wiring added where hand-written.

Deferred to PR-5b

The 9 bucket-grouped todo/card filter sub-routes ({bucket, todos|cards} with steps, Link-paginated). Plus conformance paths.json + per-runner dispatch and per-group canary entries.

Exclusions honored: never model /<resource>/recent.json (internal) or bare /todos.json//cards.json (HTML shells).

Coordination record for the registry scheme; code ships in the linked PR.

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