Skip to content

Bump @37signals/basecamp SDK to v0.7.2#87

Merged
jeremy merged 3 commits into
mainfrom
sdk-bump
Mar 28, 2026
Merged

Bump @37signals/basecamp SDK to v0.7.2#87
jeremy merged 3 commits into
mainfrom
sdk-bump

Conversation

@jeremy

@jeremy jeremy commented Mar 28, 2026

Copy link
Copy Markdown
Member

Summary

  • Bump @37signals/basecamp from v0.6.0 (pinned git hash) to v0.7.2 (npm registry)
  • Remove 17 as any casts across six files now that the SDK's types cover the accessed properties
  • Use SDK's Person type in the resolver adapter instead of the plugin-local BasecampPerson

v0.7.x brings API spec sync, Person.Id type fix, and CardStep.assigneesassignee_ids rename (no impact — plugin uses Card, not CardStep).

What's NOT adopted

  • WebhookReceiver / verifyWebhookSignature — different security model (plugin uses Stripe-style with replay protection)
  • WebhookEventKind constants — plugin covers more event kinds than the SDK
  • parseEventKind / isErrorCode — plugin's versions do semantic mapping the SDK doesn't

Test plan

  • tsc --noEmit passes clean
  • biome check passes (no new warnings introduced)
  • All 1155 tests pass across 65 test files

jeremy added 2 commits March 27, 2026 22:08
Switch from pinned git commit hash to npm registry. Spans three
breaking releases: API spec sync, Person.Id type fix, and card step
assignees→assignee_ids rename (no impact — plugin uses Card, not
CardStep).
v0.7.x types cover Person.name, CampfireLine.id, Comment.id, Todo.id,
Todo.title, Message.id, Message.subject, Boost.id, QuestionAnswer.id,
and ListResult<T> extends Array<T>. Remove 17 as-any casts across
six files and use SDK's Person type in the resolver adapter.
Copilot AI review requested due to automatic review settings March 28, 2026 05:09

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 updates the plugin to use the npm-published @37signals/basecamp SDK v0.7.2 and leverages improved upstream typings to remove unsafe casts and align adapters with SDK entity types.

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.

Changes:

  • Bump @37signals/basecamp from a pinned Git hash to npm version 0.7.2.
  • Remove multiple as any casts by relying on updated SDK response types.
  • Switch resolver adapter matching to the SDK’s Person type.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/outbound/send.ts Uses typed SDK result IDs for outbound message/comment posting.
src/basecamp-client.ts Uses typed profile.name from people.me() when resolving the current person.
src/adapters/resolver.ts Moves person resolution to SDK Person typing and removes list casts.
src/adapters/directory.ts Removes prior ad-hoc shapes/casts and relies on SDK list return types.
src/adapters/agent-tools.ts Removes as any from tool results and returns typed fields.
src/adapters/actions.ts Removes as any for boost creation result handling.
package.json Switches Basecamp SDK dependency to 0.7.2 from npm registry.
package-lock.json Updates lockfile to reflect registry-resolved SDK and its peer dependency metadata.

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

Comment thread src/adapters/directory.ts Outdated
Comment thread src/adapters/directory.ts Outdated
Comment thread src/adapters/directory.ts Outdated
Bare `let` declarations were implicitly `any`, losing the type-safety
gained from removing the `as any` casts. Import and annotate with SDK
types so the compiler checks property access end-to-end.
@jeremy jeremy merged commit 5c40177 into main Mar 28, 2026
17 checks passed
@jeremy jeremy deleted the sdk-bump branch March 28, 2026 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants