Skip to content

Bump SDK to cc8e977 and thread bucket ID into card column commands#522

Merged
robzolkos merged 4 commits into
mainfrom
bump-sdk-cardcolumns-bucketid
Jul 3, 2026
Merged

Bump SDK to cc8e977 and thread bucket ID into card column commands#522
robzolkos merged 4 commits into
mainfrom
bump-sdk-cardcolumns-bucketid

Conversation

@robzolkos

@robzolkos robzolkos commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Bumps the Basecamp SDK from v0.7.4-0.20260423230153-f54589f0924a (main @ 2026-04-23) to v0.7.4-0.20260629111348-cc8e9772e729 (main @ 2026-06-29).

The only breaking change in that range affecting the CLI is on CardColumnsService: SetColor, EnableOnHold, and DisableOnHold now take a leading bucketID int64. The three affected commands (cards column color, cards column on-hold, cards column no-on-hold) previously only accepted a column ID/URL and never resolved a project. They now resolve the project the same way sibling card commands (cards column move) do — URL > --in/--project flag > config > interactive — via a shared resolveColumnBucketID helper, and pass the numeric bucket ID through to the SDK.

Friendly guard for non-standard columns

While validating this against a live account, we found that color and on-hold sections are only supported on standard Kanban::Column columns. The BC3 API (kanban/columns/on_holds and colors controllers both scope to recordings.kanban_columns) rejects these actions on Triage, Not now, and Done columns with a bare 404 Not Found.

Rather than surface that confusing 404, the commands now fetch the column first and return a clear usage error, e.g.:

Enabling on-hold is only available on standard columns
  "Triage" is not a standard column — color and on-hold sections apply
  only to regular columns, not Triage, Not now, or Done

Why

This unblocks the check-ins --by feature request (#443 / draft PR #444), which depends on ListAnswersByPerson landing in the same SDK range but not in any tagged release. Doing the SDK bump + the unrelated CardColumns migration here keeps #444 a small, on-topic diff (just the rename to ListAnswersByPerson once this merges).

Changes

  • go.mod / go.sum / internal/version/sdk-provenance.jsonmake bump-sdk
  • internal/commands/cards.goresolveColumnBucketID + requireStandardColumn helpers; thread project into the three column commands, pass bucketID to the SDK, guard against non-standard columns
  • internal/commands/cards_test.go — tests for the success paths, the guard rejection across all three non-standard column types (on-hold/no-on-hold/color), the column-not-found case, and URL-based bucket resolution

Validation

Smoke tested end-to-end against a live account: color and on-hold/no-on-hold verified on standard columns (via both --in and URL resolution), and the friendly guard confirmed on Triage/Not now/Done. bin/ci passes.

Notes

  • Scope is deliberately minimal (bump + fix breakage + the guard the breakage surfaced). A fuller SDK sync — auditing new SDK service methods across the range for missing CLI commands per the completeness bar in AGENTS.md — is a separate follow-up and does not gate this.

The SDK's CardColumnsService now requires a bucket (project) ID on
SetColor, EnableOnHold, and DisableOnHold. Resolve the project the same
way sibling card commands do (URL > --in/--project flag > config >
interactive) and pass it through to the SDK.

Unblocks the checkins `--by` feature (#443), which depends on
ListAnswersByPerson landing in the same SDK range.
Copilot AI review requested due to automatic review settings July 3, 2026 04:36
@github-actions github-actions Bot added commands CLI command implementations sdk SDK wrapper and provenance tests Tests (unit and e2e) deps enhancement New feature or request labels Jul 3, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 5 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread internal/commands/cards.go Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the Basecamp Go SDK to a newer main-branch revision and updates the CLI’s card column commands to accommodate a breaking SDK signature change by resolving and passing the bucket (project) ID into CardColumnsService operations.

Changes:

  • Bump github.com/basecamp/basecamp-sdk/go to cc8e9772e729 and update provenance metadata.
  • Thread project into cards column on-hold, no-on-hold, and color, resolving a numeric bucket ID and passing it to the SDK.
  • Update the cards command tests for the updated newCardsColumnColorCmd signature.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
internal/version/sdk-provenance.json Records the updated SDK revision/version and timestamp.
internal/commands/cards.go Updates column subcommands for new SDK method signatures; adds resolveColumnBucketID helper.
internal/commands/cards_test.go Adjusts the color command constructor call to match the new signature.
go.mod Bumps the Basecamp SDK module requirement (and an indirect runtime bump).
go.sum Updates checksums for the bumped SDK and transitive dependency changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread internal/commands/cards.go
Comment thread internal/commands/cards.go
Color and on-hold sections are only supported on standard Kanban::Column
columns — the API rejects them on Triage, Not now, and Done columns with
a bare 404. Fetch the column first and return a clear usage error naming
the constraint instead of surfacing the raw 404.

Covers cards column color, on-hold, and no-on-hold, with tests for the
success paths, the guard rejection across all three non-standard column
types, the not-found case, and URL-based project resolution.
@github-actions github-actions Bot added the breaking Breaking change label Jul 3, 2026
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

⚠️ Potential breaking changes detected:

  • The signatures of three existing commands were changed to accept a new 'project' parameter: on-hold, no-on-hold, and color. This breaks backward compatibility for any scripts or users invoking these commands without the parameter.
  • The change from independent newCardsColumnOnHoldCmd, newCardsColumnNoOnHoldCmd, and newCardsColumnColorCmd constructors to versions that now require a project parameter means these commands cannot be instantiated without passing the argument, which could break custom extensions or dynamic CLI usage setups.

Review carefully before merging. Consider a major version bump.

resolveColumnBucketID seeded from the --in/--project flag before the
URL's bucket, contradicting its own doc comment (URL > flag > config)
and, when a URL and a differing --in were both given, targeting the
wrong bucket (a guaranteed 404 — the URL identifies the column's real
bucket). Seed from the URL first. Adds a test locking in URL-over-flag.
Copilot AI review requested due to automatic review settings July 3, 2026 05:09
@github-actions github-actions Bot removed the breaking Breaking change label Jul 3, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.

Comment thread internal/commands/cards.go Outdated
The comment claimed parity with other card commands, but those seed from
the flag first (flag > URL); this helper intentionally does URL > flag.
Document the divergence and why URL wins instead of claiming a match.
Copilot AI review requested due to automatic review settings July 3, 2026 05:19
@github-actions github-actions Bot added bug Something isn't working and removed enhancement New feature or request labels Jul 3, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.

@robzolkos robzolkos merged commit 69907a4 into main Jul 3, 2026
27 checks passed
@robzolkos robzolkos deleted the bump-sdk-cardcolumns-bucketid branch July 3, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working commands CLI command implementations deps sdk SDK wrapper and provenance tests Tests (unit and e2e)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants