Skip to content

Bump @ecency/sdk to 2.3.75 - #3412

Merged
feruzm merged 2 commits into
developmentfrom
chore/bump-ecency-sdk
Aug 4, 2026
Merged

Bump @ecency/sdk to 2.3.75#3412
feruzm merged 2 commits into
developmentfrom
chore/bump-ecency-sdk

Conversation

@feruzm

@feruzm feruzm commented Aug 4, 2026

Copy link
Copy Markdown
Member

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 bare Search failed: <status>, so:

  • the container could not tell a rejected query from an empty result set, the same failure/empty conflation Tell a failed search apart from an empty one #3411 fixed on the UI side - the SDK half was still missing
  • a 400 that can never succeed was retried three times first, costing four requests over several seconds before the user saw anything

What lands with 2.3.75

  • searchQueryOptions and 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.
  • A 2xx that is not a SearchResponse now 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 its catch.
  • The response body is read once, so a non-JSON gateway error keeps its text as a diagnostic instead of being silently dropped.

Scope

Range and lockfile move together rather than leaving a caret to drift on some later unrelated install. yarn.lock shows one changed resolution - no other dependency moved.

Test plan

yarn lint clean on src/screens/searchResult (one pre-existing warning), yarn test:ci green: 48 suites, 730 tests.

Because this repo has no tsc step 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, including hideLow: string.

I also exercised the published dist directly rather than relying on the source tests in vision-next, since dist is compiled separately:

PASS  200 valid SearchResponse   -> resolve
PASS  200 null                   -> reject
PASS  200 bare string            -> reject
PASS  200 error object           -> reject
PASS  200 array                  -> reject
PASS  200 html (unparseable)     -> reject
PASS  400 with body              -> reject (status=400, data preserved)

And confirmed the retry budget resolves correctly for React Native. isServer is typeof window === "undefined", and RN defines window, 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

  • Chores
    • Updated the Ecency SDK dependency to a newer version for improved compatibility and maintenance.

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-apps

greptile-apps Bot commented Aug 4, 2026

Copy link
Copy Markdown

Greptile Summary

The PR upgrades @ecency/sdk from 2.3.71 to 2.3.75 and updates the corresponding locked package artifact.

  • Updates the dependency range in package.json.
  • Moves the sole yarn.lock resolution, tarball URL, and integrity hash to SDK 2.3.75.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

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

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The pull request updates the @ecency/sdk dependency in package.json from ^2.3.71 to ^2.3.75.

Changes

SDK dependency update

Layer / File(s) Summary
Update SDK version constraint
package.json
The @ecency/sdk dependency constraint changes from ^2.3.71 to ^2.3.75.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Possibly related PRs

Poem

A rabbit bumps the SDK,
From seventy-one to seventy-five today.
The package manifest points ahead,
With one small line of change instead.
Hop, hop—the update is ready!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating @ecency/sdk to version 2.3.75.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-ecency-sdk

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.
@feruzm feruzm changed the title Bump @ecency/sdk to 2.3.74 Bump @ecency/sdk to 2.3.75 Aug 4, 2026
@feruzm
feruzm merged commit 2d4e404 into development Aug 4, 2026
13 checks passed
@feruzm
feruzm deleted the chore/bump-ecency-sdk branch August 4, 2026 12:13
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