What's Changed
- Remove SPK Network support by @feruzm in #3319
- fix(waves): recover when ecency.app posting authority is missing by @feruzm in #3320
- Surface Translate CTA when reader and post languages differ by @feruzm in #3321
- Streak Freeze: buy on quests card by @feruzm in #3322
- Fix hidden web link action in editor format bar by @feruzm in #3323
- Add templates tab to drafts and hide template drafts by @feruzm in #3324
- Add compose-side translation to editor by @feruzm in #3325
- Surface daily quest and streak in the editor by @feruzm in #3326
- Add scheduled post published notification support by @feruzm in #3327
- Template creation on mobile and translate table-detection parity by @feruzm in #3328
- Add Ecency Pro badge next to author names by @feruzm in #3329
- Fix payout double-count flash after voting by @feruzm in #3330
- Support Ecency: beneficiary quick add and support settings by @feruzm in #3331
- fix(pin): fall back to last known profile when fetched merge base is empty by @feruzm in #3332
- Fix translate chip overlapping vote count; open waves links natively by @feruzm in #3334
- feat(waves): onboarding checklist card for new users by @feruzm in #3333
- chore(deps): bump @ecency/sdk to 2.3.48 by @feruzm in #3335
- fix: remove discontinued post-boost feature by @feruzm in #3336
- fix(editor): open saved drafts at the top instead of scrolling to the bottom by @feruzm in #3337
- Make "Show Images" work: suppress content images, tap-to-load, and notification thumbnails by @feruzm in #3338
- Show thumbnails on bookmark and favorite notifications by @feruzm in #3339
- Show a thumbnail on payout notifications by @feruzm in #3341
- Remove the unreachable header search modal by @feruzm in #3340
- Record daily check-in on app open and foreground return by @feruzm in #3342
- Show drafts pull-to-refresh spinner only on explicit pull by @feruzm in #3344
- chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 by @dependabot[bot] in #3343
- chore(deps): bump @ecency/sdk to 2.3.51 by @feruzm in #3345
- refactor(notifications): use SDK mark-read and set-last-read mutations by @feruzm in #3346
- feat(editor): AI-usage disclosure via interoperable ai_tools metadata by @feruzm in #3347
- chore(deps): bump @ecency/sdk to 2.3.54 and @ecency/render-helper to 2.5.19 by @feruzm in #3348
- chore(deps): bump @ecency/sdk to 2.3.57 and @ecency/render-helper to 2.5.22 by @feruzm in #3349
- chore(deps): bump axios from 1.16.0 to 1.18.0 by @dependabot[bot] in #3350
- Rename AI Summarize label to Recap by @feruzm in #3352
- Show Ecency Pro checkmark on remaining username surfaces; mute the source badge by @feruzm in #3351
- Record check-in on content open instead of app startup by @feruzm in #3353
- chore(deps): bump protobufjs from 7.6.4 to 7.6.5 by @dependabot[bot] in #3354
- chore(deps): bump linkify-it from 5.0.1 to 5.0.2 by @dependabot[bot] in #3355
- chore(deps): bump shell-quote from 1.8.4 to 1.10.0 by @dependabot[bot] in #3356
- chore(deps): bump tar from 7.5.16 to 7.5.21 by @dependabot[bot] in #3357
- fix(upload): stop sending "undefined" as the image upload signature by @feruzm in #3358
- chore(android): target Android 16 (API 36) by @feruzm in #3359
- feat(android): move purchases to expo-iap for Play Billing 9 by @feruzm in #3360
- fix(android): align Kotlin with expo-iap and stop cross-PR build cancels by @feruzm in #3362
- feat(ios): move purchases to expo-iap, drop react-native-iap by @feruzm in #3361
- fix(ci): key the iOS build concurrency group by ref by @feruzm in #3364
- feat(notifications): sync filter tabs and push toggles across all types by @feruzm in #3363
- feat(wallet): add dedicated HP withdraw routes action by @feruzm in #3365
- chore(deps): bump @ecency/sdk to 2.3.66 by @feruzm in #3366
- chore(deps): bump json from 2.19.2 to 2.19.9 by @dependabot[bot] in #3367
- Fix video thumbnail generation and post editor passthrough by @feruzm in #3368
- Take the 3Speak beneficiary rule from @ecency/sdk by @feruzm in #3369
- Bump @ecency/render-helper to 2.5.23 by @feruzm in #3371
- fix: state the actual reason content is muted, not always a violation by @feruzm in #3370
- chore(deps): bump crypto-js from 3.3.0 to 4.2.0 by @dependabot[bot] in #3372
- chore(deps): bump image-size from 1.2.0 to 1.2.1 by @dependabot[bot] in #3373
- chore(i18n): sync translations from Crowdin by @github-actions[bot] in #3374
- chore: bump @ecency/sdk to 2.3.68 by @feruzm in #3375
- fix(chat): treat last_viewed_at 0 as never viewed, exempt DMs by @feruzm in #3377
- fix(points): label burned points, correct the microphone usage string by @feruzm in #3378
- chore: bump @ecency/sdk to 2.3.70 by @feruzm in #3379
- fix(chat): community moderator check reads team tuples as objects by @feruzm in #3384
- feat(ui): reusable moderation notes bottom sheet by @feruzm in #3385
- fix(community): gate community pin on authoritative team roles by @feruzm in #3387
- feat(community): mute and unmute posts as a community moderator by @feruzm in #3388
- feat(editor): dictate posts from the mobile editor toolbar by @feruzm in #3386
- fix(community): correct argument order in setRole and updateCommunity wrappers by @feruzm in #3395
- feat(community): moderator entry point and members list by @feruzm in #3396
- feat(community): edit member roles by @feruzm in #3397
- feat(community): community settings screen by @feruzm in #3398
- fix(dictation): stop polling a native audio object, and show what was recorded by @feruzm in #3401
- feat(community): assign a role by username, and let mods open settings by @feruzm in #3402
- feat(community): community activity log by @feruzm in #3403
- chore: bump @ecency/sdk to 2.3.71 and drop the local community workarounds by @feruzm in #3404
- feat(comments): replace the legacy options menu with the post options sheet by @feruzm in #3405
- fix(post): deleting a comment from the options sheet no longer pops the screen by @feruzm in #3408
- fix(feed): deleting a post from a list no longer pops the feed by @feruzm in #3410
- Tell a failed search apart from an empty one by @feruzm in #3411
- Bump @ecency/sdk to 2.3.75 by @feruzm in #3412
- Drive post search from the SDK infinite query by @feruzm in #3414
- Add advanced search filters to the posts tab by @feruzm in #3415
- chore(deps): bump undici from 6.27.0 to 6.28.0 by @dependabot[bot] in #3413
- Fix tsconfig parse abort and gate CI on a typecheck error baseline by @feruzm in #3417
- Use literal keys in the Sheets augmentation so sheet types resolve by @feruzm in #3421
- Fix search filter button crash by @feruzm in #3423
- Add type declarations for untyped dependencies by @feruzm in #3424
- Fix JSX namespace and missing-global type errors by @feruzm in #3425
- Use reanimated exiting animations for inputSupportModal close by @feruzm in #3427
- Type src/utils: 324 baseline errors to zero by @feruzm in #3431
- chore: rename repository to vision-mobile by @feruzm in #3432
- Type the data layer and rename realm to storage by @feruzm in #3433
- Type src/containers to zero by @feruzm in #3434
- Type the shared UI primitive components by @feruzm in #3444
- Type the editor components by @feruzm in #3446
- Type the post and comment components by @feruzm in #3447
- Pass the editor's live isEditing to the toolbar by @feruzm in #3449
- Type everything remaining: baseline to zero by @feruzm in #3450
- Typed navigation, real primitive interfaces, inert plumbing removed by @feruzm in #3451
- Fix collapsible card clamped to zero height on first layout by @feruzm in #3459
- Typecheck follow-ups: param contracts, honest surfaces, dead code out by @feruzm in #3461
- Localize alert error fallbacks instead of error.toString() by @feruzm in #3464
- Reveal profile summary on upward scroll anywhere in the feed by @feruzm in #3465
- fix(dictation): stop calling into the recorder after expo-audio released it by @feruzm in #3467
- chore(deps): bump nanoid from 3.3.8 to 3.3.18 by @dependabot[bot] in #3469
- fix(dictation): stop asking native whether we are recording by @feruzm in #3474
- Report the silenced dictation failures to Sentry by @feruzm in #3475
- Chat: tell a banned user what happened and when it lifts by @feruzm in #3479
- hivesigner: carry the broadcast result back from the signing WebView by @feruzm in #3481
- quests: refresh on resume and after a recorded activity by @feruzm in #3478
- fix(wallet): never use RPC nodes that serve accounts without metadata by @feruzm in #3482
- editor: warn that a reply too short to earn points will not count by @feruzm in #3483
- Chat: render inline markdown in messages by @feruzm in #3484
- fix(wallet): load HIVE/HBD transaction history again by @feruzm in #3480
- waves: warn that a wave too short to earn points will not count by @feruzm in #3486
- chore(deps): bump @ecency/sdk to 2.3.81 by @feruzm in #3487
- chore(deps): bump @ecency/sdk to 2.3.82 by @feruzm in #3490
- Pre-release hardening: parseAsset, sheet model, navigation contract, delete default by @feruzm in #3491
- chore: bump @ecency/sdk to 2.3.83 and drop the wallet history initialData guard by @feruzm in #3493
- fix(rc): detect out-of-RC failures again, and offer both ways out by @feruzm in #3495
- feat(rc): warn before publishing a post the account cannot afford by @feruzm in #3497
- fix(editor): stop earning post points for editing a post by @feruzm in #3499
- Dim muted post cards instead of blanking them, matching web by @feruzm in #3501
- Take the content moderation rules from the SDK by @feruzm in #3503
- Guard the feed item before reading its author by @feruzm in #3504
- Render wallet activity newest first by @feruzm in #3508
- Show the transaction id on an expanded wallet activity by @feruzm in #3509
- Trim the wallet activity pipeline and stop re-rendering every row by @feruzm in #3511
- Let the user choose which operations the wallet history shows by @feruzm in #3512
- Unclip the search filter icon and unify filter controls on tune by @feruzm in #3514
Full Changelog: 3.5.7...3.5.8
SHA256
ee4c87302ab8faf7873a0cf05a3120bd7dcd9bb0710e235d6f315493f3577acc Ecency-iOS.zip
b5852b2a36d4c12ce03c1cb47a177bd5a262de4de83dcdea6244fab552b87b00 Ecency-APK.zip