Bump @ecency/sdk to 2.3.75 - #3412
Conversation
Picks up the search fixes the app had been missing. The post search calls searchQueryOptions, which until 2.3.74 still threw a bare `Search failed: <status>`: the container could not tell a rejected query from an empty result set, and a 400 that can never succeed was retried three times first. 2.3.74 brings: - searchQueryOptions and the controversial/rising query keep the backend's explanation of a rejected query on the error, and share the retry rule that skips a deterministic 4xx while still backing off on 408 and 429. - A successful response whose body is not JSON now rejects instead of being cached as a SearchResponse. A proxy answering 200 with an HTML page would otherwise have surfaced here as a phantom "no results" through the container's catch. - The response body is read once, so a non-JSON gateway error keeps its text as a diagnostic rather than being silently dropped. The range moves with the lockfile rather than leaving a caret to drift on some later unrelated install. No other dependency resolution changed.
Greptile SummaryThe PR upgrades
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| package.json | Updates the direct @ecency/sdk dependency range from 2.3.71 to 2.3.75. |
| yarn.lock | Locks @ecency/sdk to 2.3.75 with matching resolution and integrity metadata. |
Reviews (2): Last reviewed commit: "Target @ecency/sdk 2.3.75 rather than 2...." | Re-trigger Greptile
📝 WalkthroughWalkthroughThe pull request updates the ChangesSDK dependency update
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
2.3.74 shipped with a hole this app would have hit: a 2xx carrying valid JSON
that is not a SearchResponse (null, a bare string, {"error":"..."}) was returned
as one and cached as valid data. Here that surfaces as a phantom "no results"
through the container's catch. 2.3.75 rejects those.
Taking both releases in one bump rather than shipping the defect and then
bumping again.
Picks up the search fixes this app had been missing. Follows ecency/vision-web#1345, #1348 and #1351.
Originally targeted 2.3.74; retargeted to 2.3.75 because 2.3.74 shipped with a hole this app would have hit (see below). Taking both releases in one bump rather than shipping the defect and bumping again.
Why it matters here
The post search calls
searchQueryOptions. Until 2.3.74 that path still threw a bareSearch failed: <status>, so:What lands with 2.3.75
searchQueryOptionsand the controversial/rising query keep the backend's explanation of a rejected query on the error (Maximum 5 tags!,Query is empty! ...) and share the retry rule: no retry for a 4xx that rejects the query itself, normal backoff for 408 and 429.SearchResponsenow rejects instead of being cached as one. That covers both an unparseable body (an HTML page from a proxy) and valid JSON of the wrong shape (null,"maintenance",{"error":"..."}). On mobile either would have reached the container as a non-response and surfaced as a phantom "no results" through itscatch.Scope
Range and lockfile move together rather than leaving a caret to drift on some later unrelated install.
yarn.lockshows one changed resolution - no other dependency moved.Test plan
yarn lintclean onsrc/screens/searchResult(one pre-existing warning),yarn test:cigreen: 48 suites, 730 tests.Because this repo has no
tscstep in CI, I checked the installed declarations against every SDK call the search screens make -search,searchQueryOptions,lookupAccountsQueryOptions,getCommunitiesQueryOptions,getSearchTopicsQueryOptions- all unchanged and matching what the containers pass, includinghideLow: string.I also exercised the published dist directly rather than relying on the source tests in vision-next, since dist is compiled separately:
And confirmed the retry budget resolves correctly for React Native.
isServeristypeof window === "undefined", and RN defineswindow, so mobile gets the browser budget rather than the SSR one: 400/404 no retry, 408/429/503/network retry, capped at 3.Worth a device pass on the four search tabs, since the SDK is on the path for all of them.
Summary by CodeRabbit