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