Release 2.15.3 - #753
Open
itmindbox wants to merge 28 commits into
Open
Conversation
The API returns promoActions, but the model decoded the singular promoAction key, so decodeIfPresent silently dropped the array ever since the field was added in 2021. Hybrid bridges (React Native) re-encode the decoded model before handing it to JS, so the promo actions never reached the app at all. The explicit encode(to:) keeps the re-encoded JSON on the same wire keys as the decoder; without it the compiler synthesizes encoding from property names, which is exactly what hid this mismatch. The public promoAction property keeps its name to avoid an API break, and productListItems intentionally keeps its historical encode-only key.
Locks down the promoActions decode/re-encode key, the untouched wire keys, and both productList shapes, so the next contract drift fails a test instead of silently dropping a field.
Anonymized shape of the sync-operation response from the client report: fractional seconds longer than the .SSS parse pattern (ICU truncates, doesn't shift), sibling non-Utc date keys, and boolean custom fields that must survive re-encoding.
MOBILE-258: Allow path prefix for operaionsDomain
…moactions-decoding-key MOBILE-303: Decode promo actions from the plural promoActions key
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…iceUUID Security review flagged raw deviceUUIDs in the mobile config: every device could read every other device's UUID. The config now carries monitoring.logs[].target — MD5 of the lowercased deviceUUID — and the SDK hashes its own UUID and compares case-insensitively. Contract and test vectors mirror android-sdk #749 (MOBILE-281). iOS 12 has no CryptoKit, so MD5Hash falls back to CC_MD5 behind a wrapper marked deprecated(13.0): warning-free today, and it starts warning at the call site once the deployment target reaches iOS 13 — a cue to delete it.
Fixtures reuse android-sdk #749 values so all platforms verify the same vectors; adds legacy-format, both-fields and blank-target cases and exercises the CC_MD5 fallback directly — no iOS 12 simulator exists in CI.
A guard inside the loop returned from sendLogs before handled request ids were persisted, so one malformed entry re-sent earlier valid entries on every config apply and blocked later ones. Continue to the next entry instead.
The whole path was silent: skips had no trace and the empty catch even swallowed body-build errors, so support couldn't tell why a device never answered a log request. Every decision now logs its reason, and skip lines land in the same log DB the next successful fetch delivers.
Lowercase and uppercase rows of the same uuid now sit together with the raw-uppercase md5 counterexample in a comment, so the lowercasing contract is visible at a glance.
XCTAssertNotNil on non-optional strings could never fail (pattern predates this PR); non-empty checks actually guard the decoded values.
Verified via otool: LC_LOAD_WEAK_DYLIB, so the import cannot break iOS 12 startup. The note preempts the recurring review question.
Multi-day log dumps read as one solid stream. A heavy banner at process start, a medium one at inapp-session rollover and light foreground/ background lines let support find launch and session boundaries at a glance.
Bumps [json](https://github.com/ruby/json) from 2.20.0 to 2.21.2. - [Release notes](https://github.com/ruby/json/releases) - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md) - [Commits](ruby/json@v2.20.0...v2.21.2) --- updated-dependencies: - dependency-name: json dependency-version: 2.21.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Master to develop
Contributor
|
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.
Updates the release version to 2.15.3. Automated PR: merge release/2.15.3 into master