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