Move Granola data types, API client, binding store, and webhook registration from Scout - #3
Merged
TheGreatAxios merged 1 commit intoAug 2, 2026
Conversation
…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
deleted the
cl-5092-batch-granola-types-client-bindingstore-webhookreg
branch
August 2, 2026 21:32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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/sharedsrc/tools/client.ts: realcreateGranolaClient(getNote/listNotes/listFolders), replacing the skeletonsrc/ingress/binding-store.ts: the durable bucket-binding store — generic over persistence (GranolaBindingsPort, already declared in this package) and validation, zero host/product dependencysrc/ingress/webhook-registration.ts: boot-time Granola webhook-endpoint reconciliationMoved verbatim except import paths and generalizing a couple of log tags/doc comments that named "hub"/"Scout" specifically.
Test plan
bun run check-deps— cleanbun run typecheck— cleanbun run test— 50 pass, 0 failbun run build— cleanCL-5092, CL-5094, CL-5091, CL-5095