Skip to content

refactor: replace the custom client with @gathertown/webhook-object-sdk - #15

Merged
gesposito merged 1 commit into
mainfrom
gco-2137-remove-custom-client
Jul 20, 2026
Merged

refactor: replace the custom client with @gathertown/webhook-object-sdk#15
gesposito merged 1 commit into
mainfrom
gco-2137-remove-custom-client

Conversation

@gesposito

@gesposito gesposito commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Removes the hand-rolled packages/client now that the official SDK is on npm, and migrates all four demos to @gathertown/webhook-object-sdk.

  • new Client({ url, secret })createWebhookObjectClient(...); client.send({ type, timestamp, data })client.send(type, data), the SDK stamps timestamps itself, and empty-payload events (counter.reset, activity.clear, …) take no argument.
  • Follow-on cleanup: dropped the client-only @vitest/browser*/playwright root devDeps and the CI Playwright install step; removed the undici external from the claude-status bundle (the SDK uses the global fetch); updated the demo READMEs.
  • Allow-listed the two first-party packages in minimumReleaseAgeExclude, the 7-day age gate would otherwise block them until a week after each release.

Test plan

  • pnpm lint, pnpm -r build, pnpm -r test all green (12 tests)

Note

Medium Risk
Behavior now depends on an external SDK’s signing, timestamps, and retry semantics instead of the removed in-repo client; webhook delivery changes are possible across all demos.

Overview
Removes the entire packages/client workspace package (client implementation, object types, and its Vitest browser/Playwright test setup) in favor of the published @gathertown/webhook-object-sdk (^0.1.1) and @gathertown/webhook-object-types where types are needed.

All four demos (claude-status, gh-prs-inbox, low-battery-switch, now-playing-inbox) now use createWebhookObjectClient and the SDK’s client.send(eventType, data) API instead of building full { type, timestamp, data } payloads; empty-payload events call send with no second argument. claude-status passes AbortSignal.timeout(3s) on the client so the whole send (including retries) is capped. Status typing comes from @gathertown/webhook-object-types. now-playing-inbox no longer sends counter.increment after each new track.

Tooling: root Playwright / @vitest/browser* devDependencies and the CI Playwright Chromium install step are removed. pnpm-workspace.yaml allow-lists the two Gather SDK packages under minimumReleaseAgeExclude. Demo READMEs point at the npm SDK.

Reviewed by Cursor Bugbot for commit a5f6f1f. Bugbot is set up for automated code reviews on this repo. Configure here.

@linear

linear Bot commented Jul 20, 2026

Copy link
Copy Markdown

Copy link
Copy Markdown
Collaborator Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@gesposito
gesposito force-pushed the gco-2137-remove-custom-client branch from 1a29213 to 207e3d9 Compare July 20, 2026 13:52
@gesposito gesposito changed the title chore: add MIT and Apache 2.0 license texts refactor: replace the custom client with @gathertown/webhook-object-sdk Jul 20, 2026
@gesposito
gesposito force-pushed the gco-2137-remove-custom-client branch 2 times, most recently from 25d515e to 21d8ab6 Compare July 20, 2026 14:08
@gesposito
gesposito force-pushed the gco-2137-remove-custom-client branch from e8ae3c5 to a5f6f1f Compare July 20, 2026 14:42
@gesposito
gesposito requested a review from yaustar July 20, 2026 14:44
@gesposito
gesposito marked this pull request as ready for review July 20, 2026 14:44
@gesposito
gesposito merged commit 74c3ba8 into main Jul 20, 2026
4 checks passed
@gesposito
gesposito deleted the gco-2137-remove-custom-client branch July 20, 2026 14:45

@cursor cursor Bot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a5f6f1f. Configure here.

Comment thread packages/now-playing-inbox/src/index.ts
gesposito added a commit that referenced this pull request Jul 20, 2026
The workspace @webhook-objects/client is being removed in favor of the
npm-published SDK (see #15): createWebhookObjectClient replaces new
Client, send takes (type, data) and stamps the timestamp itself, and
ping() replaces requestMetadata(). The @gathertown packages join the
minimumReleaseAge exclusions since they are first-party.

Co-authored-by: Cursor <cursoragent@cursor.com>
gesposito added a commit that referenced this pull request Jul 20, 2026
The workspace @webhook-objects/client is being removed in favor of the
npm-published SDK (see #15): createWebhookObjectClient replaces new
Client, send takes (type, data) and stamps the timestamp itself, ping()
replaces requestMetadata(), and the client type is WebhookObjectClient.
The @gathertown packages join the minimumReleaseAge exclusions since
they are first-party.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants