@buildbase/sdk 0.0.75 → 0.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.76] - 2026-10-02
11
+
12
+ ### Fixed
13
+
14
+ - **The same read is no longer sent once per mounted hook.** `useSubscription`,
15
+ `useAllQuotaUsage` and `useCreditBalance` each keep their own state, which is
16
+ what lets a header badge and a settings screen show the same number without
17
+ one owning the other. They also each sent their own request: an app with the
18
+ context provider plus two direct callers made three identical GETs on mount,
19
+ and three more on every `invalidate*()` - which the membership writes call on
20
+ every add, remove and invitation. A request already in flight for the same
21
+ server, org and workspace is now shared by everyone who asks for it.
22
+
23
+ It is not a cache: the entry lives exactly as long as the request, so a later
24
+ mount still reads fresh and an invalidation is still a real refetch. Only the
25
+ duplicate already on the wire is removed.
26
+
27
+ - **An inline `auth` prop no longer re-dispatches the whole config on every
28
+ render.** `ContextConfigProvider` depended on `auth.callbacks` by identity,
29
+ and `auth={{ clientId, redirectUrl, callbacks: { ... } }}` - what the docs
30
+ show and what most apps write - is a new object each render. So the OS config
31
+ was re-dispatched, the reducer returned new state, and every `useSaaSOs()`
32
+ consumer re-rendered: the workspace actions, the auth hooks, and each data
33
+ hook that builds an api from the config. The callbacks now sit behind a
34
+ forwarder whose identity is stable and which always calls the current
35
+ implementation. Callbacks the app did not pass stay absent, because several
36
+ call sites ask whether one was supplied at all.
37
+
10
38
  ## [0.0.75] - 2026-10-02
11
39
 
12
40
  ### Fixed