Expand spec to 102 operations, regenerate all 5 SDKs

Merged
JE
8mo ago
+20855-3495

Summary

  • 32 new operations added to the Smithy spec (102 total, was 70): access tokens, account settings, board entropy/involvement, join codes, notification settings, push subscriptions, search, steps index, user role management
  • 4 summary types removed (pre-1.0 breaking): UserSummary→User, BoardSummary→Board, ColumnSummary→Column, Pin→Card
  • Go typed returns: generator resolves ResponseContent schemas to *generated.Type or []generated.Type
  • Idempotent POST retry: WithIdempotent(ctx) in Go, retryable: true kwarg in Ruby — driven from behavior-model.json
  • All 5 SDKs regenerated: Go, TypeScript, Ruby, Swift, Kotlin
  • Conformance: 111 tests across 9 fixtures, 4 runners (Go, TS, Ruby, Kotlin), all passing
  • RAILS-API-COMMUNIQUE.md: documents 28 JSON endpoints needed from Rails (implemented in https://github.com/basecamp/fizzy/pull/2675)

Breaking changes

Pre-1.0 SDK — no public consumers. These would be semver-major post-1.0:

ChangeImpact
UserSummary deletedUse User instead
BoardSummary deletedUse Board instead
ColumnSummary deletedUse Column instead
Pin / PinList deletedListPins returns Card / CardList
Tag.name → Tag.titleField rename
NotificationCard.board → NotificationCard.board_nameField rename
New required fields on Account, Tag, NotificationCardBreaking for type constructors

Merge order

  1. https://github.com/basecamp/fizzy/pull/2675 lands first (adds the 28 JSON endpoints the SDK expects)
  2. This PR merges after Rails deploys
  3. Integration test against staging to validate response shapes

Test plan

  • make check passes (Smithy, OpenAPI, behavior model, url-routes, provenance, rubric audit, all 5 SDK checks, all 4 conformance runners)
  • CI green on this branch
  • Rails api-breadth deployed to staging
  • SDK conformance run against live staging