Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
98ad74e
Add Deco: Yes/No filter to Dives / Advanced Search
github-actions[bot] Aug 22, 2026
bd29366
Add dive-count sort and favorites to the Add Buddy picker
github-actions[bot] Aug 22, 2026
7f6dc04
Apply dart format to dive_filter_state.dart and deco filter test
github-actions[bot] Aug 23, 2026
c266052
Add weekday filter to Advanced Filter, combinable with date range
github-actions[bot] Aug 23, 2026
6ae7b82
feat(settings): add persisted default for CCR O2 cell visibility
readme42 Aug 24, 2026
9d509bf
fix(settings): derive enabled-metrics total from the toggle list
readme42 Aug 24, 2026
72fd0ef
feat(media): bring Media Library selection onto the shared pattern
ericgriffin Aug 24, 2026
6ef92e0
Merge origin/main into media-library-selection-pattern
ericgriffin Aug 24, 2026
80cda42
chore: bump version to 1.7.6+123
github-actions[bot] Aug 24, 2026
8dca217
fix(release): resubmit after a rejection instead of skipping
ericgriffin Aug 24, 2026
ad1cf34
fix(media): guard the library prune schedule and correct the toolbar …
ericgriffin Aug 24, 2026
21f3509
Merge pull request #1252 from submersion-app/chore/bump-1.7.6-123
ericgriffin Aug 24, 2026
9e4f7ea
Merge pull request #1249 from readme42/fix/1235-o2-cell-default-visib…
ericgriffin Aug 25, 2026
a439e0e
Merge pull request #1251 from submersion-app/media-library-selection-…
ericgriffin Aug 25, 2026
5588386
Merge pull request #1255 from submersion-app/fix/rejected-review-subm…
ericgriffin Aug 25, 2026
a50c905
docs: release nots
ericgriffin Aug 25, 2026
e9d425c
fix(android): give sideloaded APKs an update path (#1258)
ericgriffin Aug 25, 2026
37b0404
fix: localize depth display in the dive site list (#1257)
ericgriffin Aug 25, 2026
d8cfe83
refactor(sites): move Site Features section below depth stats
ericgriffin Aug 25, 2026
b6ae794
chore(android): declare INTERNET in the main manifest
ericgriffin Aug 25, 2026
538339b
Merge remote-tracking branch 'origin/main' into claude/issue-5-202608…
github-actions[bot] Aug 25, 2026
4b1bef5
Apply dart format after merging origin/main
github-actions[bot] Aug 25, 2026
60da6c5
Merge branch 'main' into claude/issue-5-20260822-2125
alpheios-one Aug 25, 2026
8cb3698
Fix format and weekday-filter test regression in Advanced Search
github-actions[bot] Aug 25, 2026
809bde5
Format buddy favorites/sort files per dart format
github-actions[bot] Aug 25, 2026
9d99cf1
Merge remote-tracking branch 'origin/main' into claude/issue-4-202608…
github-actions[bot] Aug 25, 2026
1adbccc
Merge branch 'main' into claude/issue-12-20260823-2019
alpheios-one Aug 25, 2026
91129ec
Merge pull request #1261 from submersion-app/worktree-issue-1258-andr…
ericgriffin Aug 26, 2026
2511b12
Merge pull request #1260 from submersion-app/worktree-site-features-m…
ericgriffin Aug 26, 2026
c5cc716
test: pin the en locale in the dive site depth unit widget tests
ericgriffin Aug 26, 2026
7f19e76
ci: ship standing App Review notes with every store submission
ericgriffin Aug 26, 2026
716d2c5
Merge pull request #1259 from submersion-app/worktree-fix-1257-site-l…
ericgriffin Aug 26, 2026
65fcbad
ci: trim App Review notes to what pre-empts a rejection
ericgriffin Aug 26, 2026
32833ac
ci: describe App Lock as password or biometric unlock in review notes
ericgriffin Aug 26, 2026
1580090
fix(certifications): keep the certification visible when a custom nam…
ericgriffin Aug 26, 2026
b4b9d16
fix(certifications): address review on the title fix
ericgriffin Aug 26, 2026
a11428c
fix(3d): two-finger zoom, unobscured zoom buttons, closable settings …
ericgriffin Aug 26, 2026
9aa8471
Merge pull request #1277 from submersion-app/worktree-app-review-notes
ericgriffin Aug 26, 2026
379a2b2
fix(dc-import): scan for a saved computer's address before connecting…
ericgriffin Aug 26, 2026
d441d77
test(3d): pin that the sheet applies each system inset exactly once
ericgriffin Aug 26, 2026
3eb22b5
feat(logs): name the build in every debug log export
ericgriffin Aug 26, 2026
1fd5b74
fix(libdc): resolve an OSTC Sport to its own descriptor, not OSTC 2
ericgriffin Aug 26, 2026
6ac1823
fix(media_store): resume a stalled transfer queue instead of freezing it
ericgriffin Aug 26, 2026
5954373
test(certifications): cover the remaining surfaces the title fix changed
ericgriffin Aug 26, 2026
368829a
fix(cloud): give the Dropbox and Google Drive transports request dead…
ericgriffin Aug 26, 2026
067194d
fix(dc-import): drop a stale discovery selection before a saved-compu…
ericgriffin Aug 26, 2026
ab846e3
docs: stop claiming a header-only copy is reachable from the UI
ericgriffin Aug 26, 2026
0f11ec3
docs(sites): design spec for location details from coordinates (#1187)
ericgriffin Aug 26, 2026
9ddaa18
fix(certifications): let the picker's label stand in for the tile it …
ericgriffin Aug 26, 2026
78b89bc
fix(version): route every version string through formatAppVersion
ericgriffin Aug 26, 2026
feb4480
Merge pull request #1280 from submersion-app/worktree-issue-1188-3d-z…
ericgriffin Aug 26, 2026
579de3e
feat(media): let the diver pin a media item to a moment in the dive
ericgriffin Aug 26, 2026
ecd6818
style(auto_update): group package imports above local ones
ericgriffin Aug 26, 2026
d0bc365
fix(icloud): upload backups to the backup folder, not the sync folder
ericgriffin Aug 26, 2026
b68b11b
test(dive-log): cover re-picking a present buddy's role in bulk edit
ericgriffin Aug 26, 2026
e52a7db
fix(media): keep the minus on a negative elapsed chip; hu hint reads …
ericgriffin Aug 26, 2026
fdefb05
feat(sync): resolve foreign keys in the conflict dialog (#1031)
ericgriffin Aug 26, 2026
78fc860
fix(sync): match sync entity types in the conflict dialog icon
ericgriffin Aug 26, 2026
f0f39be
fix(statistics): scope personal records to the active filter
ericgriffin Aug 26, 2026
740ba39
docs(sites): implementation plan for location details from coordinate…
ericgriffin Aug 26, 2026
66c817e
Merge pull request #1283 from submersion-app/worktree-issue-1270-desk…
ericgriffin Aug 26, 2026
e786f1e
Merge pull request #1282 from submersion-app/worktree-issue-1246-ostc…
ericgriffin Aug 26, 2026
666ed0d
Merge branch 'main' into worktree-issue-1285-app-version
ericgriffin Aug 26, 2026
d32723a
Merge pull request #1284 from submersion-app/worktree-1279-cloud-http…
ericgriffin Aug 26, 2026
b010236
fix(buddies): sort shared dives by dive date and show the year (#982)
ericgriffin Aug 26, 2026
6203872
fix(statistics): widen the records empty-state gate and pin the test …
ericgriffin Aug 26, 2026
0f523dc
refactor(location): return PlaceLookup and take the geocode language …
ericgriffin Aug 26, 2026
d9cb702
Merge pull request #1281 from submersion-app/worktree-issue-1232-petr…
ericgriffin Aug 26, 2026
f493939
feat(location): read the body of water from the Nominatim natural lay…
ericgriffin Aug 26, 2026
ed1e666
fix(sync): do not claim an existing reference was deleted
ericgriffin Aug 26, 2026
2297b48
feat(location): space Nominatim requests one second apart (#1187)
ericgriffin Aug 26, 2026
270b733
feat(db): v162 diver_settings.place_name_language (#1187)
ericgriffin Aug 26, 2026
90c3e44
refactor(media): seed the Set-time dialog from one clamped helper
ericgriffin Aug 26, 2026
b058c8b
feat(settings): synced place name language preference (#1187)
ericgriffin Aug 26, 2026
8bc2afe
fix(dive_log): stop estimating tank pressure on gauge dives (#731)
ericgriffin Aug 26, 2026
fe43452
feat(settings): place name language row and picker (#1187)
ericgriffin Aug 26, 2026
5d44233
test(sync): pin Intl.defaultLocale in the conflict scalar format test
ericgriffin Aug 26, 2026
a063782
Merge pull request #1278 from submersion-app/worktree-issue-1265-cert…
ericgriffin Aug 26, 2026
6fc164f
feat(location): geocode in the diver's place name language (#1187)
ericgriffin Aug 26, 2026
30f057c
feat(sites): fill-empty merge rule and repository patch for location …
ericgriffin Aug 26, 2026
c34b946
test(buddies): stop leaking FlutterError.onError in the detail page t…
ericgriffin Aug 26, 2026
5688bae
feat(sites): fill town and body of water from every coordinate source…
ericgriffin Aug 26, 2026
c9637c9
fix(import): register dive computers for file-imported dives (#1288)
ericgriffin Aug 26, 2026
95983ea
fix(media): give the Set-time mm:ss field a keyboard with a colon
ericgriffin Aug 26, 2026
10595ae
feat(sites): look up location details from typed coordinates (#1187)
ericgriffin Aug 26, 2026
4a617e5
fix(media): tell the user Live Photos are unsupported instead of rais…
ericgriffin Aug 26, 2026
f1db876
feat(sites): backfill service for missing location details (#1187)
ericgriffin Aug 26, 2026
069e2b2
fix: address review on the gauge estimated-pressure change
ericgriffin Aug 26, 2026
d0b4dcf
Merge branch 'main' into worktree-issue-982-partner-sort
ericgriffin Aug 26, 2026
e7b6e8d
perf(buddies): stabilize shared-dive ordering and index dive_buddies.…
ericgriffin Aug 26, 2026
16fef71
feat(sites): bulk fill of missing location details from the sites lis…
ericgriffin Aug 26, 2026
590fc52
i18n: add the SAC cylinder-volume hint to every locale (#386)
ericgriffin Aug 26, 2026
7e052c8
fix(sac): make L/min SAC reachable on dive-computer downloads (#386)
ericgriffin Aug 26, 2026
2c3e1fd
docs(import): design for Subsurface <picture> media import
ericgriffin Aug 26, 2026
d077c9e
docs(import): implementation plan for Subsurface picture import
ericgriffin Aug 26, 2026
553d4dd
feat(import): add a media entity type to the import payload
ericgriffin Aug 26, 2026
917ccb0
feat(import): parse Subsurface <picture> elements
ericgriffin Aug 26, 2026
24fc01e
fix(media): key the repair harvest by basename on every platform
ericgriffin Aug 26, 2026
2d2b0f4
feat(import): resolve referenced photos against a picked folder
ericgriffin Aug 26, 2026
f8dacde
feat(media): let importLocalFileForDive carry coordinates and a desti…
ericgriffin Aug 26, 2026
4b1bed4
feat(import): hold the picked photo folder and its resolution in wiza…
ericgriffin Aug 26, 2026
105d546
feat(import): add the Photos step for locating referenced photos
ericgriffin Aug 26, 2026
1b1c32d
feat(import): attach Subsurface-referenced photos to their dives
ericgriffin Aug 26, 2026
03cb2f6
test(import): cover parse to resolve on a realistic Subsurface logbook
ericgriffin Aug 26, 2026
86d6139
chore(import): restore CRLF line endings on two touched files
ericgriffin Aug 26, 2026
5b0d19d
fix(sites): stop wiping site fields on altitude and GPS write-backs (…
ericgriffin Aug 26, 2026
e1b1997
fix(import): honour the review selection for photos
ericgriffin Aug 26, 2026
866e37f
fix(buddies): match SQLite null ordering and harden the new tests
ericgriffin Aug 26, 2026
afc6f07
fix(import): break candidate ties on id so devices agree (#1288)
ericgriffin Aug 26, 2026
7c6fba4
fix(sac): treat a zero parsed volume as unreported; drop the any-tank…
ericgriffin Aug 26, 2026
38e020b
fix(sites): keep geocoder outage on LocationResult; never reset a run…
ericgriffin Aug 26, 2026
9134adc
chore(sites): normalize place name language case and whitespace; refr…
ericgriffin Aug 26, 2026
9b5e2f0
chore(sites): clarify normalize doc; restore the Nominatim throttle a…
ericgriffin Aug 26, 2026
0699522
test(sync): cover the conflict display patch fully
ericgriffin Aug 26, 2026
f562f97
test: exclude the v163 Drift column declaration from coverage
ericgriffin Aug 26, 2026
9a99610
docs: stop claiming v162 already landed on main
ericgriffin Aug 26, 2026
9ea5cfa
Merge pull request #1286 from submersion-app/worktree-issue-1285-app-…
ericgriffin Aug 26, 2026
259406d
Merge pull request #1289 from submersion-app/worktree-issue-700-bulk-…
ericgriffin Aug 26, 2026
375a1c6
Merge pull request #1291 from submersion-app/worktree-issue-1028-pers…
ericgriffin Aug 26, 2026
9de6a1e
Merge pull request #1292 from submersion-app/worktree-issue-653-iclou…
ericgriffin Aug 26, 2026
5011d9b
Merge pull request #1294 from submersion-app/worktree-issue-982-partn…
ericgriffin Aug 26, 2026
5a92ac0
Merge pull request #1296 from submersion-app/worktree-issue-731-gauge…
ericgriffin Aug 26, 2026
b503803
Merge pull request #1297 from submersion-app/worktree-issue-1288-impo…
ericgriffin Aug 26, 2026
f1f87ad
Merge pull request #1299 from submersion-app/worktree-issue-1187-site…
ericgriffin Aug 26, 2026
f7fdce6
refactor(sync): build one unit formatter per conflict preview
ericgriffin Aug 26, 2026
4c5a382
Merge branch 'main' into worktree-issue-1031-conflict-display
ericgriffin Aug 26, 2026
8eb742a
Merge origin/main into worktree-issue-1147-subsurface-picture-import
ericgriffin Aug 26, 2026
357e407
Merge origin/main into worktree-issue-1090-media-manual-time
ericgriffin Aug 26, 2026
addb288
Merge origin/main into worktree-issue-1187-site-geocoding
ericgriffin Aug 26, 2026
b1033ae
feat: make the master-detail pane divider user-resizable
readme42 Aug 25, 2026
b694ad9
fix: account for handle width in resize clamp, add divider a11y label
readme42 Aug 26, 2026
335ba03
Merge pull request #1293 from submersion-app/worktree-issue-795-live-…
ericgriffin Aug 26, 2026
2d33b71
fix(sac): convert segments with the cylinder that fed them, never a s…
ericgriffin Aug 26, 2026
77ad8ee
fix(location): a non-200 from Nominatim is an outage, not "nothing fo…
ericgriffin Aug 26, 2026
555b39d
Merge branch 'main' into worktree-issue-1187-site-geocoding
ericgriffin Aug 26, 2026
4a1e42d
Merge branch 'main' into worktree-issue-386-sac-lmin-tank-volume
ericgriffin Aug 26, 2026
98450e5
fix(sync): surface the column a conflict actually differs on
ericgriffin Aug 26, 2026
4dfe21e
fix(sites): say when the geocoder was unreachable after Use my locati…
ericgriffin Aug 26, 2026
f37b19f
fix(location): query-encode the language code; unawaited backfill flo…
ericgriffin Aug 26, 2026
ff436f4
Remove accidentally merged .github/workflows/claude.yml
github-actions[bot] Aug 26, 2026
d061394
Remove accidentally included .github/workflows/claude.yml
github-actions[bot] Aug 26, 2026
ca19db9
fix(l10n): pluralize the backfill time estimate (#1187)
ericgriffin Aug 26, 2026
a0184ae
Merge branch 'main' into claude/issue-5-20260822-2125
alpheios-one Aug 26, 2026
d099743
Merge pull request #1301 from submersion-app/worktree-issue-1147-subs…
ericgriffin Aug 26, 2026
69b5e0f
Merge pull request #1287 from submersion-app/worktree-issue-1090-medi…
ericgriffin Aug 26, 2026
d57f66c
fix(sync): date a pre-1973 column instead of printing its raw epoch
ericgriffin Aug 26, 2026
21128bf
test(sac): forward unexpected errors in the SAC row tests; cover the …
ericgriffin Aug 26, 2026
66ca1c4
Merge pull request #1275 from readme42/feat/1268-resizable-master-pane
ericgriffin Aug 26, 2026
029860a
Merge pull request #1295 from submersion-app/worktree-issue-1031-conf…
ericgriffin Aug 26, 2026
78468ba
merge: resolve schema ladder conflict with main (v164 + v166)
ericgriffin Aug 26, 2026
61265ca
merge: resolve schema ladder conflict with main, renumber v161 -> v168
ericgriffin Aug 26, 2026
09156cc
Merge pull request #1298 from submersion-app/worktree-issue-386-sac-l…
ericgriffin Aug 26, 2026
19dfd05
fix(dive-detail): stop a header's trailing label from starving its title
ericgriffin Aug 26, 2026
d76f54b
feat(dive-detail): pair Surface GPS with Tide, Cylinders with Weights
ericgriffin Aug 26, 2026
ed9302c
fix(sync): keep base publishes off a phantom Temp subdirectory on Win…
ericgriffin Aug 26, 2026
deb9ac5
fix(dive-detail): give a paired row the gap of the slot it occupies
ericgriffin Aug 26, 2026
9a9d599
test: cover the weekday filter's UI wiring in the sheet and Advanced …
ericgriffin Aug 26, 2026
d4f170a
feat(gps-log): map-first desktop layout, summary strip, and empty state
ericgriffin Aug 26, 2026
c17fc2c
i18n: translate the GPS log summary strip labels
ericgriffin Aug 26, 2026
eee4dff
fix(settings): restore the diacritics in the native language names
ericgriffin Aug 26, 2026
4cb6e62
fix(buddies): correct picker sort direction, guard setFavorite, drop …
ericgriffin Aug 26, 2026
80f07e6
Merge pull request #1307 from submersion-app/worktree-issue-1304-wind…
ericgriffin Aug 26, 2026
2455f3c
Merge remote-tracking branch 'origin/main' into pr-1237
ericgriffin Aug 26, 2026
711b50c
fix(gps-log): keep the overview basemap mounted while geometry loads
ericgriffin Aug 26, 2026
892852a
fix(statistics): pair the deco legend labels with their bar segments
ericgriffin Aug 26, 2026
5b708d9
i18n: add a generic Any label for the Advanced Search deco chips
ericgriffin Aug 26, 2026
345a621
fix(dive-log): resolve the decompression filter in SQL for entity-bac…
ericgriffin Aug 26, 2026
ca0e01d
fix(dive-computer): keep every transmitter's pressure on multi-tank d…
ericgriffin Aug 26, 2026
8b734b9
Merge pull request #1309 from submersion-app/worktree-gps-log-page-re…
ericgriffin Aug 26, 2026
91701a8
Merge pull request #1300 from submersion-app/worktree-issue-1187-site…
ericgriffin Aug 27, 2026
81e2e87
Merge pull request #1306 from submersion-app/worktree-dive-detail-mor…
ericgriffin Aug 27, 2026
349c383
Merge pull request #1310 from submersion-app/worktree-deco-legend-lab…
ericgriffin Aug 27, 2026
8a66992
Merge pull request #1238 from alpheios-one/claude/issue-5-20260822-2125
ericgriffin Aug 27, 2026
d0ad646
Merge pull request #1266 from alpheios-one/claude/issue-12-20260823-2019
ericgriffin Aug 27, 2026
bb66aef
Merge pull request #1316 from submersion-app/worktree-issue-1223-tran…
ericgriffin Aug 27, 2026
867d5df
Merge remote-tracking branch 'origin/main' into pr-1237
ericgriffin Aug 27, 2026
e4fda73
Merge remote-tracking branch 'origin/main' into pr-1237
ericgriffin Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,14 @@ jobs:
# creating a new one and left it carrying the wrong build.
run: ruby scripts/release/fastlane_submit_guard_test.rb

- name: Run App Review notes test
# Guards the committed App Review notes deliver uploads with every
# submission: present on both platforms, identical, within Apple's
# length limit, and free of other-platform names (2.3.10). iOS 1.7.4
# and 1.7.5 were rejected under 5.1.1(v) because nothing told the
# reviewer the app has no accounts.
run: ./scripts/release/app_review_notes_test.sh

- name: Run pre-push hook test
# Guards two hook bugs that both rejected pushes for reasons unrelated
# to the change being pushed: running the checks against the main
Expand Down
42 changes: 0 additions & 42 deletions .github/workflows/claude.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .github/workflows/promote.yml
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,8 @@ jobs:
set -euo pipefail
# Apple requires whatsNew on a new App Store version; deliver reads
# it from metadata/en-US/release_notes.txt (the only metadata file
# we provide, so nothing else is touched).
# generated here; the committed review_information/notes.txt beside
# it is uploaded as-is and must not be touched).
#
# The GitHub release body is written for every platform at once, and
# App Review guideline 2.3.10 forbids naming other platforms in App
Expand Down
9 changes: 9 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Cloud sync, media upload, and the GitHub update check (#1258).
Release builds already carry this permission: the manifest merger
unions it in from a library manifest, and apkanalyzer confirms it in
the shipped v1.7.5.6772 APK. Declared here so it stops depending on
which plugins happen to be in the tree, since the only pub package
supplying it is google_sign_in_android, a transitive dependency.
-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Biometric unlock for App Lock (local_auth) -->
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<!-- Photo library access for attaching dive photos -->
Expand Down
11 changes: 10 additions & 1 deletion docs/developer/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,16 @@ and the next merge to `main` starts the next beta train.
Two things still want a human:

- **A rejection.** Auto-release only covers the approved path. A rejected
version sits in App Store Connect until someone addresses it.
version sits in App Store Connect until someone addresses it. If the
rejection is a misunderstanding rather than a defect (1.7.4 and 1.7.5 were
both flagged under 5.1.1(v) because the first-launch "Create Your Profile"
step reads as account creation), reply in the Resolution Center thread and
do **not** re-run promote: the submission is still open, Apple approves
from the reply, and promote would cancel that submission and start over.
The standing explanation Apple reads before every review lives in
`ios/fastlane/metadata/review_information/notes.txt` (macOS has an
identical copy; `scripts/release/app_review_notes_test.sh` enforces
that). Update it whenever a reviewer needs context a reply had to supply.
- **A bad build.** There is no staged rollout to halt and no rollback once a
version is live. Recovering means pulling it and shipping a fix through
another review cycle. If that risk ever outweighs the convenience, set
Expand Down
Loading