Back to Freedom.Tech Back
All Divine releasesAll versions
Release Sat, Aug 22, 2026 6 min read

Divine 1.0.22

Original release notes

What's Changed

  • fix(badges): let recipients get rid of unwanted badges by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7640
  • test(a11y): add guideline checks for critical UI surfaces by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7655
  • fix(l10n): localize the database bootstrap failure screen by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7711
  • fix(clips): recover and prevent recordings hidden under the wrong owner by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7737
  • fix(video-editor): resolve the audio in-point to one frame per pixel by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7735
  • fix(nostr_sdk): handle temp relay auth fire-and-forget publishes by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7718
  • fix(c2pa): stop failed signing from leaving debris or destroying the recording by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7740
  • fix(c2pa): remove stale signing debris by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7764
  • feat(api): send platform and app version in Funnelcake User-Agent by @dcadenas in https://github.com/divinevideo/divine-mobile/pull/7746
  • ci(shorebird): move code push to the Divine org and wire it into Codemagic by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7202
  • docs(profile): trim _SessionExpiredPromptTrigger class documentation by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7779
  • ci(shorebird): reject patches that do not match their store release by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7783
  • fix(a11y): label the auth-flow icon buttons and localize the password toggle by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7759
  • refactor(profile): fold banner dismissal into a store by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7753
  • fix(text): close the remaining unsanitized UTF-16 surfaces by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7745
  • fix(notifications): keep an invalid-pubkey follow-back out of Crashlytics by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7792
  • ci(ios): let every Shorebird build reach internal testers without entering review by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7801
  • fix(ui): stop dialog and sheet buttons from closing the wrong screen or filing fake crashes by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7795
  • fix(l10n): give 22 countable ARB keys ICU plural forms by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7763
  • fix(library): drop the grid-size button from the editor clip picker by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7790
  • docs(android): record the measured field cost of the Impeller switch by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7794
  • feat(video-player): log why playback stops by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7863
  • test(profile): pin the single isOwnProfile flag behind the followers stat by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7873
  • fix(close_guard): add emitIfOpen/addIfOpen guards to priority files by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7797
  • fix(dm): keep removed conversations from returning by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7811
  • ci(shorebird): keep emergency patches isolated from ongoing development by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7844
  • fix(notifications): stop notifications about another creator's video from opening nothing by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7817
  • fix(dm): avoid retrying terminal NIP-04 duplicates by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7891
  • feat(settings): link Divine Family and Divine Kids from Support Center by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7846
  • fix(observability): report which source resolved a video route id by @rabble in https://github.com/divinevideo/divine-mobile/pull/7856
  • fix(feed): keep progressing video downloads alive by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7893
  • fix(observability): stop reporting aborted media downloads as fatal by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7870
  • fix(auth): keep email verification usable with the keyboard up by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7865
  • fix(profile): open verified accounts on their public profiles by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7890
  • fix(dm): drop a conversation's queued reactions when it is removed by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7878
  • docs(shorebird): name the internal TestFlight group and verify delivery by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7918
  • fix(age-gate): stop verified viewers being prompted again at startup by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7818
  • fix(account): explain and recover from rejected deletion requests by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7815
  • docs(shorebird): record the two patch-line gotchas the drill hit by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7917
  • refactor(inbox,dm): optimize ProfileRepository re-binding and document exception by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7928
  • ci(shorebird): pass both signing keys to the patch commands by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7936
  • fix(inbox): keep the filter-chips header from blanking the Messages pane by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7855
  • fix(brand): write the product name as Divine in user-facing copy by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7915
  • fix(account): send the bearer token first when deleting the Keycast account by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7867
  • fix(l10n): localize the app bar back button and remaining hardcoded strings by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7708
  • fix(feed): revalidate the home feed on start instead of trusting the cache by @rabble in https://github.com/divinevideo/divine-mobile/pull/7722
  • fix(camera): stop the iOS editor from playing clips with the recorder's audio settings by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7877
  • docs(l10n): define per-locale tone, dialect, and translation review rules by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7902
  • fix(divine_ui): drop the text listener when DivineAuthTextField disposes by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7948
  • fix(video-editor): insert a duplicated clip next to its source by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7955
  • docs(bookmark-toggle): clarify publishDidNotComplete failure doc by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7720
  • refactor(dm-restriction): pin Keycast fail directions (#7584) by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7583
  • fix(subtitles): use playback fallback sources in editor by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7566
  • chore(agents): commit build-artifact purge hook, fix hook timeout units by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7274
  • test(auth): clean up services after each test by @rabble in https://github.com/divinevideo/divine-mobile/pull/7944
  • feat(ui): paint the green heart emoji in Divine green by @rabble in https://github.com/divinevideo/divine-mobile/pull/7731
  • fix(feed): keep the New feed chronological by @rabble in https://github.com/divinevideo/divine-mobile/pull/7859
  • fix(l10n): correct the inbox strings from the PR #6286 translation pass by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7953
  • fix(ios): socket errors and passive auth retry logging by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7543
  • fix(relay): stop sign-out from leaving a relay connection open forever by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7957
  • fix(camera): let iOS record music without the speech cleanup by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7967
  • refactor(router): make extra-bearing routes resolvable from their URL by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7972
  • fix(feed): stop hashtag pagination dropping every video by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7966
  • refactor(startup): own app-wide side-effect activation in one place by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7969
  • fix(editor): stop imported Vines from ending early with the music still playing by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7959
  • feat(dm): honest remove/decline copy and a block action for requests by @mbradley in https://github.com/divinevideo/divine-mobile/pull/7916
  • chore(l10n): delete 261 orphaned ARB keys and ratchet the rest by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7963
  • fix(account): stop telling users nothing was deleted after a server failure by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7964
  • chore(release): open the 1.0.22 version train by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7981
  • fix(auth): route Secure account key conflict to recovery, not a dead end by @mbradley in https://github.com/divinevideo/divine-mobile/pull/7840
  • ci(shorebird): precache Android engine artifacts before Shorebird builds by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7988
  • test(profile): re-enable profile router URL sync tests by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7650
  • fix(ios): release App Attest assertion state after timeout by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7710
  • feat(badges): let an issuer revoke a badge from one recipient by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7876
  • feat(library): stop archiving a clip from emptying it out of its category by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7958
  • fix(nip46): stop sign-out from leaving the signer connected forever by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7973
  • fix(nostr): log full Nostr identifiers and freeze truncation at zero by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7965
  • fix(ci): always descend past a variable declaration, and drop safeSubstring by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/7997
  • fix(explore): say sponsored by on featured collections by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7994
  • feat(shorebird): bind release provenance to the patch signing key by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7996
  • feat(safety): filter on hosting and provenance, and explain a filtered video by @rabble in https://github.com/divinevideo/divine-mobile/pull/7945
  • fix(build): stop staging installs from replacing the production app by @rabble in https://github.com/divinevideo/divine-mobile/pull/8003
  • feat(analytics): send private product events from mobile by @rabble in https://github.com/divinevideo/divine-mobile/pull/7938
  • feat(divine_video_player): export audio overlay failures in bug reports by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7935
  • feat(share): let people send Divine to friends from Settings by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/8004
  • fix(drafts): keep draft audio playable after an iOS app update by @hm21 in https://github.com/divinevideo/divine-mobile/pull/7970
  • fix(analytics): separate first login identity by @rabble in https://github.com/divinevideo/divine-mobile/pull/8008
  • fix(account): make username release recoverable by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/7845
  • fix(nostr): release subscription slots after bounded reads by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/8007
  • feat(profile): add OG Beta Tester badge by @rabble in https://github.com/divinevideo/divine-mobile/pull/7950
  • fix(dm): bound a NIP-04 DM's created_at so it cannot freeze the unread badge by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/8005
  • chore(camera): record why a clip's audio starts where it does by @hm21 in https://github.com/divinevideo/divine-mobile/pull/8015
  • feat(video-editor): duplicate stop-motion frames and fix their block drag by @hm21 in https://github.com/divinevideo/divine-mobile/pull/8009
  • docs(rules): require deliberate text-field input traits by @hm21 in https://github.com/divinevideo/divine-mobile/pull/8017
  • fix(sounds): keep saved My Sounds audio playable after an iOS app update by @hm21 in https://github.com/divinevideo/divine-mobile/pull/8011
  • fix(account): confirm a successful account deletion instead of crashing by @hm21 in https://github.com/divinevideo/divine-mobile/pull/8020
  • fix(maintainability): make oversized-file warnings reflect each pull request by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/8028
  • fix(account): keep account deletion recoverable while the server finishes by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/8027
  • fix(download): stop saved videos playing as slow motion in the camera roll by @hm21 in https://github.com/divinevideo/divine-mobile/pull/8030