Skip to content

Move Granola data types, API client, binding store, and webhook registration from Scout - #3

Merged
TheGreatAxios merged 1 commit into
mainfrom
cl-5092-batch-granola-types-client-bindingstore-webhookreg
Aug 2, 2026
Merged

Move Granola data types, API client, binding store, and webhook registration from Scout#3
TheGreatAxios merged 1 commit into
mainfrom
cl-5092-batch-granola-types-client-bindingstore-webhookreg

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Summary

Batches CL-5092/CL-5094/CL-5091/CL-5095 (data types, API client, binding store, webhook registration) into one PR to land faster — all four are dependency-clean and internally ordered (types -> client, types+port -> binding store, binding store -> webhook registration) so moving them together is strictly simpler than four sequential round-trips.

  • src/tools/types.ts: GranolaBucket/GranolaBucketType/GranolaNote/GranolaTranscriptSpeaker — pure data shapes, previously living in @scout/shared
  • src/tools/client.ts: real createGranolaClient (getNote/listNotes/listFolders), replacing the skeleton
  • src/ingress/binding-store.ts: the durable bucket-binding store — generic over persistence (GranolaBindingsPort, already declared in this package) and validation, zero host/product dependency
  • src/ingress/webhook-registration.ts: boot-time Granola webhook-endpoint reconciliation

Moved verbatim except import paths and generalizing a couple of log tags/doc comments that named "hub"/"Scout" specifically.

Test plan

  • bun run check-deps — clean
  • bun run typecheck — clean
  • bun run test — 50 pass, 0 fail
  • bun run build — clean

CL-5092, CL-5094, CL-5091, CL-5095

…tration from Scout

Batches four dependency-clean slices to land together:

- src/tools/types.ts: GranolaBucket/GranolaBucketType/GranolaNote/
  GranolaTranscriptSpeaker data shapes (previously @scout/shared)
- src/tools/client.ts: real createGranolaClient implementation,
  replacing the skeleton (getNote/listNotes/listFolders)
- src/ingress/binding-store.ts: the durable bucket-binding store,
  now fully generic over its persistence (GranolaBindingsPort) and
  validation, with zero host or product dependency
- src/ingress/webhook-registration.ts: boot-time webhook-endpoint
  reconciliation against the Granola API

Each moved verbatim except for import paths and, for the binding store
and webhook registration, generalizing log tags and doc comments that
referenced hub/Scout specifically. Behavior unchanged.
@TheGreatAxios
TheGreatAxios merged commit 65ca854 into main Aug 2, 2026
5 checks passed
@TheGreatAxios
TheGreatAxios deleted the cl-5092-batch-granola-types-client-bindingstore-webhookreg branch August 2, 2026 21:32
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.

1 participant