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

Divine 1.0.16

Original release notes

Divine 1.0.16 - Life in Loops

This one's all about creation. We poured this release into the tools that put more in your hands and less in the algorithm's: a deeper video editor, a sharper camera, and a feed that finally listens to you.

Make something wild

  • New editor powers: clip transitions, reverse playback, a voice-over recorder, pinch-to-zoom canvas, crop/rotate/flip, multi-select to merge or delete clips, and timeline beat markers.
  • Lip-sync camera mode - and yes, lip-sync can record past the 6.3s limit.
  • Video stabilization, auto lens switching with a pinch-zoom ruler, and single-photo capture for stop-motion.
  • Edit your own subtitles and republish them.

A feed that's yours

  • Swipe left/right to tune your recommendations directly. No gaming the algorithm.
  • Classics mode brings the archived Vines front and center.
  • Instant cold-start - your home feed loads from disk cache the moment you open the app.

Talk to your people

  • Double-tap a message to like it, react with combined reaction pills, and share reels straight into DMs with a quoted preview.
  • Read state now syncs across your devices.

Own what you make, choose what you see

  • At-rest encryption for your local data.
  • Background uploads that survive the app getting suspended.
  • ProofMode carries its human-made provenance forward when you download a watermarked clip.
  • Website and monetization links on your profile, plus avatar and banner cropping before upload.

A safer playground

  • New protections for under-16 accounts, adult content hidden by default until you opt in, and stronger blocklist and moderation controls.

Plus 284 translated strings across 17 languages, a unified search, and hundreds of fixes.

No slop. All human. Full commit-by-commit list below.

---

What's Changed

  • feat(auth): add under-16 family guidance flow by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/3531
  • fix(images): cancel orphaned thumbnail downloads by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4695
  • feat(l10n): localize Apps/Integrations directory (#3628) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4889
  • feat(l10n): localize share-copy + clipboard confirmations (#3628 Area K subset) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4891
  • fix(feed): filter blocked/muted authors from Funnelcake REST feeds (#4782) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4887
  • feat(l10n): localize remaining hardcoded UI strings - #3628 sweep (Auth, Comments, Inbox, ProofMode, For-You, Sounds, Discovery, Misc) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4890
  • fix(ios): enable Swift Package Manager by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4893
  • ci(codemagic): publish Android builds to production by @rabble in https://github.com/divinevideo/divine-mobile/pull/4898
  • fix(timeline): simplify maxDuration calculation for track by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4915
  • fix: explore search by opening unified search route by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4901
  • feat(timeline): add width parameter to TimelineTrimHandles for improved drag interaction by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4907
  • fix(startup): prevent entire app rebuild twice on startup by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4918
  • fix(router): prevent video feed teardown on background review-status refetch by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4913
  • chore(toolchain): upgrade Flutter 3.41.9 3.44.0 / Dart 3.12.0 by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4917
  • fix(notifications): reclassify misattributed video notifications as actor-anchored by @untreu2 in https://github.com/divinevideo/divine-mobile/pull/4920
  • fix(feed): content filters not reactively applied to feeds by @untreu2 in https://github.com/divinevideo/divine-mobile/pull/4921
  • feat(quick-actions): add home/lock screen camera widget by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4880
  • fix(categories): degrade to emoji when a category SVG asset is missing by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4926
  • fix(bluesky): correct crosspost status endpoint and response key mapping by @rabble in https://github.com/divinevideo/divine-mobile/pull/4922
  • feat(feeds): send viewer language hints by @rabble in https://github.com/divinevideo/divine-mobile/pull/4909
  • feat(video-editor): composite proof mode progress tracking by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4810
  • fix(auth): clarify returning-user sign-in and post-review route by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4911
  • fix(auth): remove local accounts from device cleanly by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4924
  • fix(test): de-flake minor-account-review under-13 support screen test by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4949
  • chore: update video-editor package to support SPM by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4935
  • fix(nip17): NIP-17/44/59 crypto hardening (security review for #570) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4943
  • fix(ci): handle FlutterFramework SPM deployment target by @rabble in https://github.com/divinevideo/divine-mobile/pull/4957
  • refactor(videos_repository): compose author feed via getAuthorFeed (#4788) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4931
  • feat(dm): route NIP-17 DMs to kind-10050 inbox relays + harden moderation report DM (#570) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4944
  • fix(feed): preserve seeded engagement counts by @rabble in https://github.com/divinevideo/divine-mobile/pull/4904
  • refactor(state): migrate profile feed to ProfileFeedCubit (#4788) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4937
  • fix(feed): paginate for you recommendations with cursors by @rabble in https://github.com/divinevideo/divine-mobile/pull/4961
  • chore(ci): track iOS extension signing contract by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4966
  • fix(feed): filter blocked/muted authors on detail surfaces via shouldHideVideo (#4782) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4970
  • fix(ci): remove archive-time Crashlytics upload by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4971
  • fix(reaction): centre DM reaction emoji on Android (#4954) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4984
  • fix(video-editor): ensure speed-up feature works correctly by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4978
  • fix(timeline): rebase markers after clip reorder and trim by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4979
  • fix(dm): recover full conversation list after reinstall (#4953) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4973
  • fix(feed): retry native age-gated playback by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4884
  • feat(db): SQLCipher at-rest encryption full implementation + device-QA plan (#570) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4981
  • fix(inbox): limit notification label text to one line with ellipsis by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4982
  • fix(ci): harden iOS SPM target patch by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4959
  • chore(deps): trim video editor lockfile churn by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4963
  • test(nip44): make vector fixture lookup workspace-safe by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4955
  • fix(drafts): migrate legacy drafts atomically to stop disappearing drafts by @untreu2 in https://github.com/divinevideo/divine-mobile/pull/4988
  • fix(notifications): keep most-recent timestamp when consolidating follows by @untreu2 in https://github.com/divinevideo/divine-mobile/pull/4987
  • ci(architecture): ratchet sanctioned ChangeNotifiers (#4738) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/4789
  • fix(profile): preserve tapped fullscreen video by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4993
  • fix(profile): backfill partial profile video loads by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4994
  • fix(language): remove ChangeNotifier from preference service by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/4995
  • test(profile_feed): cover loadMore recovery and realtime ordering by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5007
  • fix(timeline): rebase markers for speed, delete, duplicate, split by @hm21 in https://github.com/divinevideo/divine-mobile/pull/5005
  • fix(playback): handle HTTP 202 as transient and abort stale source fallbacks by @hm21 in https://github.com/divinevideo/divine-mobile/pull/5000
  • fix(upload): preserve uploaded thumbnail URL on success (#4997) by @hm21 in https://github.com/divinevideo/divine-mobile/pull/5002
  • fix(event-cache): queue signed events until PersonalEventCache initializes by @hm21 in https://github.com/divinevideo/divine-mobile/pull/5001
  • fix(videos_repository): split live engagement counts in author-feed hydration by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5006
  • feat(moderation): engagement-list block filters + search blocklist reactivity (#948) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5014
  • test(l10n): pin the content-policy disclosure invariant (#948) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5013
  • feat(blocklist): read our own kind 10000 mute list (#948) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5012
  • refactor(hashtag): move hashtag REST fetch into VideosRepository (#948) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5024
  • feat(moderation): canTarget affordance gating + profile-search block filters (#948) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5025
  • fix(deep-link): profile links use push/go/skip parity with video links by @untreu2 in https://github.com/divinevideo/divine-mobile/pull/5023
  • feat(funnelcake): log unrecognised list response shapes in _unwrapListResponse by @untreu2 in https://github.com/divinevideo/divine-mobile/pull/5022
  • fix(feed): stop replaying stale For You feed on cold start by @untreu2 in https://github.com/divinevideo/divine-mobile/pull/5021
  • fix(feed): preserve For You recommendation order on load-more by @rabble in https://github.com/divinevideo/divine-mobile/pull/5033
  • fix(video-player): guard millisecond conversions against NaN/infinite AVFoundation times by @rabble in https://github.com/divinevideo/divine-mobile/pull/5034
  • fix(blocklist): reset per-account state on identity change (#4969) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5031
  • feat(audio): implement J-Cut audio anchoring and rebasing logic by @hm21 in https://github.com/divinevideo/divine-mobile/pull/5032
  • feat(video-editor): add reverse playback functionality for clips by @hm21 in https://github.com/divinevideo/divine-mobile/pull/4716
  • fix(feed): warm next video before preload grace by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/5015
  • fix(notifications): refresh inbox on app resume by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/5018
  • fix(timeline): preserve markers in clip history writes by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/5016
  • fix(feed): open collaborator picker from attribution row by @rabble in https://github.com/divinevideo/divine-mobile/pull/5037
  • fix(feed): keep content-warned videos paused until View Anyway is tapped by @rabble in https://github.com/divinevideo/divine-mobile/pull/5039
  • fix(audio): enhance audio extraction with playback speed adjustments by @hm21 in https://github.com/divinevideo/divine-mobile/pull/5048
  • fix(lists): make curated list creation reliable and visible by @rabble in https://github.com/divinevideo/divine-mobile/pull/5040
  • chore(docs): relax rebase rule - only required at publish, handoff, and on conflicts by @hm21 in https://github.com/divinevideo/divine-mobile/pull/5049
  • fix(notifications): consume authoritative FCM target fields in the push path by @dcadenas in https://github.com/divinevideo/divine-mobile/pull/5054
  • fix(comments): load video threads from v2 API by @rabble in https://github.com/divinevideo/divine-mobile/pull/5076
  • fix(notifications): harden resume refresh and remove dead realtime subsystem by @dcadenas in https://github.com/divinevideo/divine-mobile/pull/5051
  • feat(profile): render website field in profile header by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5106
  • fix(firebase): guard default app initialization by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/5070
  • feat(profile): add website field to Edit Profile screen by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/5109
  • fix(feed): preserve home video position by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/5019
  • fix(video): tombstone addressable deletes by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/5030
  • fix(auth): redact BYOK verifier (embeds raw nsec) in verification error log by @rabble in https://github.com/divinevideo/divine-mobile/pull/5055
  • fix(feed): close check-then-act race in subscribeToVideoFeed by @rabble in https://github.com/divinevideo/divine-mobile/pull/5059