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

Divine 1.0.17

Original release notes

Stop motion is the big one in this build. Open the camera, choose Stop Motion, and make a loop one frame at a time. You can reorder or delete frames, change how long they stay on screen, add audio and layers, save a session to Clips, and come back to it later.

There's plenty more:

  • Clip splitting is now instant, audio waveforms appear on the timeline, and trimmed moments can be saved back to Clips.
  • Drafts can be duplicated, so you can take the same project in two different directions.
  • Long-press a shared video in DMs to save it.
  • Interrupted publishes can pick up where they left off, with sturdier background publishing on iOS.
  • Tap Home while already on Home to jump back to the top and refresh. For You should also repeat fewer videos you've just watched.
  • Existing sessions can open offline and recover when the connection returns.
  • Saved videos now use the refreshed Divine wordmark.

We also fixed sticky camera zoom on iOS, ProofMode retry failures, age-gated media loading, Bluesky username claims, broken navigation, playback crashes, and a pile of smaller rough edges.

Please hammer on Stop Motion: shoot a few frames, undo one, reorder them, change the timing, add sound, leave and come back, then publish. Tell us if anything disappears, drifts out of sync, or gets stuck.

---

What's Changed

  • fix(video): bump pro_video_editor to 2.6.0 to fix clip split freeze by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6048
  • fix(nostr): add signature verification policy setting by @rabble in https://github.com/divinevideo/divine-mobile/pull/5934
  • docs(l10n): translate Nostr signature verification settings by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/6052
  • test(vgv): gate per-package merged-isolate channel leaks (#5838) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6061
  • chore: remove dead support-key placeholder constant by @mbradley in https://github.com/divinevideo/divine-mobile/pull/5963
  • fix(profile): offline-tolerant username save (#3161) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6063
  • fix(video-editor): preserve allow_audio_reuse when editing cached videos by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6051
  • chore(minor-safety): scrub the dead support-pubkey from bug-report docs by @mbradley in https://github.com/divinevideo/divine-mobile/pull/6073
  • fix(audio-attribution): credit the original creator for reused audio by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6066
  • test(packages): stop leaked platform singletons across merged isolates by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6060
  • fix(minor-safety): point minor-review endpoints at the relay-manager host by @mbradley in https://github.com/divinevideo/divine-mobile/pull/6072
  • test(vgv): gate Tier-3/Tier-4 process-globals in the merged isolate by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6059
  • fix(dm): make DM message delivery durable (OK-confirm + queue-aware retry + 10050 routing) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6046
  • chore: remove dead code found during #4803 icon-migration audit by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6078
  • fix(dm): classify Keycast verified_minor policy-denial (403) as terminal, not retryable by @mbradley in https://github.com/divinevideo/divine-mobile/pull/6069
  • style(design-system): migrate error-state and people/group icons to DivineIcon (#4803) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6077
  • fix(dm): address post-merge review of #6046 (Keycast timeout, group-send cancel/dedup, retry heartbeat, relay repair) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6075
  • fix(divine_video_player): prevent SIGABRT from invalid AVVideoComposition by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6079
  • chore(minor-safety): replace personal-key test fixture 78a5c21b with a synthetic pubkey by @mbradley in https://github.com/divinevideo/divine-mobile/pull/6096
  • refactor(divine-ui): unify DiVineAppBarIconButton and DivineIconButton by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6076
  • fix(follow): drop invalid pubkeys from the contact list by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6104
  • fix(likes): floor the addressable like count against the relay resolve (#6022) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6102
  • fix(dm): use a bottom sheet instead of a snackbar for failed-send recovery by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6082
  • fix(trust-safety): log moderation-pubkey pin divergence + ignore NIP-05 redirects (#4948) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6106
  • fix(db): recover automatically from runtime SQLite corruption by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6107
  • fix(categories): fall back to emoji when a category has no bundled SVG by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6131
  • fix(ios): bump connectivity_plus to 7.3.0 to stop background engine crash by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6130
  • fix(camera): scope iOS Now Playing session to foreground by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6110
  • fix(likes): own "liked" heart un-fills on your own video after an edit by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6123
  • feat(video): emit an inspired-by p-tag so the referenced creator is notifiable by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6132
  • fix(nostr): guard queryEvents against a disposed client's closed pool by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6089
  • feat(deep-links): open playlist links in-app via /list/:pubkey/:listId by @mbradley in https://github.com/divinevideo/divine-mobile/pull/6094
  • chore: Prevent relay reconnects during Nostr startup by @dcadenas in https://github.com/divinevideo/divine-mobile/pull/6101
  • fix(video_editor): instant trim-based clip split + guard teardown races by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6134
  • fix(auth): handle NIP-46 auth_url challenge as non-terminal in nostrconnect pairing by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6151
  • fix(dm): create app-shell badge cubits eagerly to stop re-entrant lazy create (#6115) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6146
  • feat(video_editor): draw each clip's waveform over its thumbnails by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6149
  • feat(video-editor): save a trimmed clip to the clip library (#5322) by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6155
  • feat(account): opt-in @divine.video username burn on account deletion (#6126) by @mbradley in https://github.com/divinevideo/divine-mobile/pull/6138
  • test(integration): exception-safe ErrorWidget.builder/onError restores (#5839) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6156
  • chore(release): bump app version to 1.0.17 by @rabble in https://github.com/divinevideo/divine-mobile/pull/6160
  • refactor(config): remove legacy backend host references by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6159
  • fix(camera): stop zoom sticking at random positions on iOS by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6064
  • fix(proofmode): let users recover when C2PA signing or rendering fails by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6068
  • feat: add tap to refresh on home tab by @missaustraliana in https://github.com/divinevideo/divine-mobile/pull/4834
  • test(event-router): restore coverage and document unsupported routing kinds by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6164
  • chore(deps): remove misplaced/unused root dependencies (#3631, #3632) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6165
  • chore(deps): migrate media_kit_video to pub and harden the c2pa_flutter git pin by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6167
  • chore(fonts): register OFL licenses for bundled fonts and de-duplicate font assets by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6168
  • feat(account): delete-account identity + username confirmation (#6137) by @mbradley in https://github.com/divinevideo/divine-mobile/pull/6158
  • fix(feed): guard ref-after-await in ClassicVinesTab._refreshClassics by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6162
  • fix(upload): re-drive stuck uploads on app resume and startup by @rabble in https://github.com/divinevideo/divine-mobile/pull/6084
  • docs: fix stale Linux desktop dependency documentation by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6172
  • fix(feed): ignore double-tap-to-like on your own video by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6169
  • fix(nostr): guard against spurious startup NostrClient rebuild and run the #2144 repair after auth restore by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6173
  • chore(cache-sync): add MigrationStrategy + wipe legacy key residue by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6175
  • test(upload): de-flake in-flight marker assertion when file is missing by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6193
  • refactor(badges): move BadgeRepository to a repository-consistent home by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6190
  • ci(testing): guard test/unit re-accretion + mirror-structure cleanup (#4337 WS-7) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6192
  • fix(crash): treat MediaCacheImageProvider load failures as non-fatal by @rabble in https://github.com/divinevideo/divine-mobile/pull/6180
  • test(perf): cover VideoEventService trace completion idempotency by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6191
  • fix(crash): guard GoRouter extra casts against restored maps by @rabble in https://github.com/divinevideo/divine-mobile/pull/6182
  • fix(profile): stop stale kind-0 events blanking the cached profile by @rabble in https://github.com/divinevideo/divine-mobile/pull/6179
  • fix(blurhash): own spec-correct codec, drop unmaintained blurhash_dart by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6189
  • feat(profile): read NIP-39 claims from kind 10011 and persist verification cache (#3936) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6176
  • fix(bluesky): route users without a claimed handle to the claim flow (#3275) by @rabble in https://github.com/divinevideo/divine-mobile/pull/6139
  • fix(ios): finish background publishes and recover routes by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/6199
  • feat(upload): resume interrupted publishes from the server's last offset by @rabble in https://github.com/divinevideo/divine-mobile/pull/6086
  • fix(router): keep New video taps in pooled feed by @rabble in https://github.com/divinevideo/divine-mobile/pull/6204
  • fix(nostr): snapshot query results before persistence by @rabble in https://github.com/divinevideo/divine-mobile/pull/6202
  • docs(architecture): add a discoverable app-layering reference by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6206
  • fix(video-player): stop EventChannel sends while app is backgrounded by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6220
  • feat(perf): trace video generation and camera startup time by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6218
  • fix(media-cache): cancel in-flight downloads when app is backgrounded by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6222
  • fix(crash): downgrade all NetworkImage HTTP failures to non-fatal by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6228
  • fix(video-recorder): crash-proof clip-delete Undo and finalize it on recorder exit by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6232
  • fix(analytics): align creator video count with profile by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/6207
  • fix(comment-video): preserve video metadata from REST comments by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/6208
  • fix(support): ignore unknown moderation labels by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/6211
  • feat(drafts): add duplicate project option by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6231
  • fix(video): migrate off video_player (FVP) to divine_video_player by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6225
  • chore(ui): add design-system drift ratchets (#6145) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6230
  • fix(feed): deprioritize recently seen For You videos by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/6212
  • fix(authentication): allow offline access for existing sessions by @NotThatKindOfDrLiz in https://github.com/divinevideo/divine-mobile/pull/6245
  • fix(auth): read keycast login error code and nudge toward sign-in options by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6247
  • feat(dm): save shared videos from messages by @rabble in https://github.com/divinevideo/divine-mobile/pull/6213
  • chore(feature-flags): remove unused feature flags by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6256
  • fix(video-recorder): meet 48dp min touch target on mode selector by @hm21 in https://github.com/divinevideo/divine-mobile/pull/6258
  • fix(router): make every route-error screen escapable (safePop + home button) by @realmeylisdev in https://github.com/divinevideo/divine-mobile/pull/6264