Message types (categories) are bucket-scoped in the BC3 API. basecamp-sdk modeled them account-scoped, so all five operations 404 against the real API — reported externally as basecamp-sdk#368 and fixed in basecamp-sdk#393 (milestone v0.10.0).
Why this is not a mechanical bump
internal/commands/messagetypes.go calls all five methods with the old arity:
| line |
call |
| 55 |
MessageTypes().List(cmd.Context(), nil) |
| 97 |
MessageTypes().Get(cmd.Context(), typeID) |
| 161 |
MessageTypes().Create(cmd.Context(), req) |
| 221 |
MessageTypes().Update(cmd.Context(), typeID, req) |
| 264 |
MessageTypes().Delete(cmd.Context(), typeID) |
After #393 each gains a required leading bucketID:
List(ctx, bucketID, opts) Get(ctx, bucketID, typeID)
Create(ctx, bucketID, req) Update(ctx, bucketID, typeID, req) Delete(ctx, bucketID, typeID)
The blocker is that the file contains zero occurrences of project/bucket — the whole bc messagetypes command group is account-scoped, with no --project flag and no project resolution. So there is no value to thread through; project scoping has to be added to five commands (flag, resolution, help text, and whatever --project convention the sibling command groups already use).
Important mitigating context
These commands already 404 in production today — that is exactly what basecamp-sdk#368 reports. So this is not a regression introduced by the SDK bump; the bump surfaces breakage that already exists. Nothing that currently works will stop working.
Current pin
go.mod is at github.com/basecamp/basecamp-sdk/go v0.8.1-0.20260725044648-3d4ec395922c.
Suggested sequencing
Land this before/with the bump to v0.10.0, so bc messagetypes goes from silently-404ing to working in one step.
Message types (categories) are bucket-scoped in the BC3 API.
basecamp-sdkmodeled them account-scoped, so all five operations 404 against the real API — reported externally as basecamp-sdk#368 and fixed in basecamp-sdk#393 (milestonev0.10.0).Why this is not a mechanical bump
internal/commands/messagetypes.gocalls all five methods with the old arity:MessageTypes().List(cmd.Context(), nil)MessageTypes().Get(cmd.Context(), typeID)MessageTypes().Create(cmd.Context(), req)MessageTypes().Update(cmd.Context(), typeID, req)MessageTypes().Delete(cmd.Context(), typeID)After #393 each gains a required leading
bucketID:The blocker is that the file contains zero occurrences of project/bucket — the whole
bc messagetypescommand group is account-scoped, with no--projectflag and no project resolution. So there is no value to thread through; project scoping has to be added to five commands (flag, resolution, help text, and whatever--projectconvention the sibling command groups already use).Important mitigating context
These commands already 404 in production today — that is exactly what basecamp-sdk#368 reports. So this is not a regression introduced by the SDK bump; the bump surfaces breakage that already exists. Nothing that currently works will stop working.
Current pin
go.modis atgithub.com/basecamp/basecamp-sdk/go v0.8.1-0.20260725044648-3d4ec395922c.Suggested sequencing
Land this before/with the bump to
v0.10.0, sobc messagetypesgoes from silently-404ing to working in one step.