Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1002 commits
Select commit Hold shift + click to select a range
422b08a
fix(ble): require a token boundary in the Seac Tablet name filter
ericgriffin Sep 3, 2026
6603333
fix(media): type a video by extension when metadata is unreadable
ericgriffin Sep 3, 2026
5c6a341
fix(ble): treat only whitespace as padding in the Seac name filter
ericgriffin Sep 3, 2026
b3f6678
fix(tank-presets): only relabel seeded presets from the built-in name…
ericgriffin Sep 3, 2026
feb933c
Merge pull request #1478 from submersion-app/worktree-fix-libdc-event…
ericgriffin Sep 3, 2026
79d582d
test(dive-detail): drop the exception suppression from the placement …
ericgriffin Sep 3, 2026
1502ee6
docs: reattach the bottom-nav tap helper's doc comment
ericgriffin Sep 3, 2026
61cbb37
Merge pull request #1469 from submersion-app/fix/ccr-display-curves-579
ericgriffin Sep 3, 2026
437990d
Merge pull request #1466 from submersion-app/worktree-issue-1452-merg…
ericgriffin Sep 3, 2026
25b6351
Merge pull request #1464 from submersion-app/worktree-issue-1403-regi…
ericgriffin Sep 3, 2026
a15497a
refactor(dashboard): replace the urgent banner with hardened gauge chips
ericgriffin Sep 3, 2026
b44b0b7
Merge branch 'main' into worktree-issue-1423-ios-ble-saved-address
ericgriffin Sep 3, 2026
50e44d1
test(weight-planner): pin the locale in weight prediction card tests
ericgriffin Sep 3, 2026
1648cb5
refactor(dive-log): group merge provenance rows by segment once
ericgriffin Sep 3, 2026
fb00687
Merge origin/main into worktree-issue-543-consolidated-profile
ericgriffin Sep 3, 2026
9c31f24
fix(import): keep MacDive's null photo position distinct from positio…
ericgriffin Sep 3, 2026
510507e
fix(maps): address the review findings on per-region tile stores
ericgriffin Sep 3, 2026
c067417
fix(dc): only adopt a same-model device from a scan that actually ran
ericgriffin Sep 3, 2026
bad585d
fix(dive-log): number merge slots per strand, not per row
ericgriffin Sep 3, 2026
c4351a1
fix(dive-log): skip clock-shifted consolidations in the v184 backfill
ericgriffin Sep 3, 2026
1530d87
docs(dive-log): say why hiding the source bar keeps split reachable
ericgriffin Sep 3, 2026
6721035
fix(linux): narrow openInBrowser's catch to Exception, make the drain…
ericgriffin Sep 3, 2026
f4c4bce
fix(import): drop a superseded payload instead of carrying it forward
ericgriffin Sep 3, 2026
5555e3c
Merge pull request #1459 from submersion-app/fix-uddf-import-239
ericgriffin Sep 3, 2026
57cd6f8
Merge pull request #1460 from submersion-app/fix/issue-1409-photo-thu…
ericgriffin Sep 3, 2026
68c1a11
fix(dive-log): name strands, not computers, in the count failure log
ericgriffin Sep 3, 2026
24a5515
fix(import): place, bound and account for MacDive ZSAMPLES profiles
ericgriffin Sep 3, 2026
3486384
docs: Linux packaging design and phase 1 plan
ericgriffin Sep 3, 2026
fe19b89
fix(media): ask the Files collection what an Android asset actually is
ericgriffin Sep 3, 2026
6f65dbe
ci: build Linux inside an ubuntu:22.04 container
ericgriffin Sep 3, 2026
c6ec1a9
feat(linux): add a --version flag to the runner
ericgriffin Sep 3, 2026
aec4eac
feat(linux): generate udev rules from libdivecomputer's device tables
ericgriffin Sep 3, 2026
17bfb6c
Merge pull request #1494 from trustthegoose/fix/macdive-gas-percent-d…
ericgriffin Sep 3, 2026
a949e25
feat(linux): derive package dependencies from DT_NEEDED
ericgriffin Sep 3, 2026
22017ad
feat(linux): stage the canonical package install tree
ericgriffin Sep 3, 2026
e7dde79
ci(linux): emit .deb and .rpm packages
ericgriffin Sep 3, 2026
e14ecde
ci: require the Linux packages in release validation
ericgriffin Sep 3, 2026
67d6ab2
ci(linux): smoke-test packages in clean debian and fedora containers
ericgriffin Sep 3, 2026
3e51fd0
feat(linux): give the tarball an installer with a dependency preflight
ericgriffin Sep 3, 2026
b306309
i18n: add the copy-failed string for the OAuth connect dialogs
ericgriffin Sep 3, 2026
ddd3107
fix(oauth): guard the clipboard, pin the test locale, log the consent…
ericgriffin Sep 3, 2026
52da0ae
docs: document the Linux install paths
ericgriffin Sep 3, 2026
deea114
test(dive-log): pin that a source switch never reuses the old analysis
ericgriffin Sep 3, 2026
b8f666b
Merge branch 'main' into dive_detail_display_options
dotanalon Sep 3, 2026
342247d
fix(import): judge bundled photos by content, and harden the edges
ericgriffin Sep 3, 2026
dc54801
fix(dive-log): give the safety review group a single gap owner
dotanalon Sep 3, 2026
212c090
Merge pull request #1490 from submersion-app/fix/ci-verify-generated-…
ericgriffin Sep 3, 2026
3975012
fix(import): explain the mobile limitation once, and probe folders of…
ericgriffin Sep 3, 2026
d6457c8
Merge pull request #1491 from submersion-app/worktree-issue-1480-more…
ericgriffin Sep 3, 2026
f0a7883
perf(import): stat export collisions asynchronously
ericgriffin Sep 3, 2026
311e5a3
Merge pull request #1492 from submersion-app/worktree-fix-suggestion-…
ericgriffin Sep 3, 2026
f671f97
fix(dashboard): bound the overdue slice by the advertised cap
ericgriffin Sep 3, 2026
a51808f
test(import): cover the ZSAMPLES heart rate and ceiling mappings
ericgriffin Sep 3, 2026
f58b99a
fix(import): time a photo against the dive it actually lands on
ericgriffin Sep 3, 2026
9e439c6
fix(dashboard): state the gear-overdue rule once in _hasSafetyAlert
ericgriffin Sep 3, 2026
0f647e1
test(migrations): stop assuming v183 is the newest schema
dotanalon Sep 3, 2026
f823578
fix(import): bound the ZSAMPLES integer fields
ericgriffin Sep 3, 2026
7f22305
Merge pull request #1456 from submersion-app/worktree-seac-tablet-ble…
ericgriffin Sep 3, 2026
1f0fab3
Merge remote-tracking branch 'upstream/main' into claude/issue-34-202…
github-actions[bot] Sep 3, 2026
ca2cdd0
debug(bathymetry): split render fingerprint into depth/horizontal has…
github-actions[bot] Sep 3, 2026
0b22fb3
chore: revert workflow file to pre-merge state (App permission)
github-actions[bot] Sep 3, 2026
8fd5734
i18n: rename the shared OAuth connect strings to settings_oauth_conne…
ericgriffin Sep 3, 2026
1ce4518
fix(linux): log a ProcessException instead of swallowing every kind o…
ericgriffin Sep 3, 2026
78b114e
fix(dc): a late device-info write cannot capture the next download
ericgriffin Sep 3, 2026
bd25b6c
fix(weight-planner): do not let a late profile height clobber typed i…
ericgriffin Sep 3, 2026
763fd10
fix(dc): trim the descriptive fields the merge adopts
ericgriffin Sep 3, 2026
9ac756b
fix(maps): stop a superseded download writing progress ticks
ericgriffin Sep 3, 2026
c38b95e
fix(dive-log): keep a consolidated dive multi-source across a reload
ericgriffin Sep 3, 2026
94d2a50
fix(media): harden the test seam and correct three inaccurate strings
ericgriffin Sep 3, 2026
3d4ba06
fix(weight-planner): apply the same late-seed guard to body weight
ericgriffin Sep 3, 2026
e11c2dc
ci(linux): cover packaging on every pull request
ericgriffin Sep 3, 2026
9b9a386
Merge pull request #1495 from submersion-app/worktree-issue-1488-dead…
ericgriffin Sep 3, 2026
26bbc8b
Merge pull request #1482 from submersion-app/feat/macdive-photo-impor…
ericgriffin Sep 3, 2026
b7626ac
Merge pull request #1474 from submersion-app/worktree-macdive-zsample…
ericgriffin Sep 3, 2026
6b79033
Merge pull request #1473 from submersion-app/worktree-issue-1451-comb…
ericgriffin Sep 3, 2026
1210465
test(import): cover the messages this PR added
ericgriffin Sep 3, 2026
efc862b
Merge remote-tracking branch 'upstream/main' into claude/issue-34-202…
github-actions[bot] Sep 3, 2026
bee4978
Merge pull request #1498 from submersion-app/worktree-dashboard-urgen…
ericgriffin Sep 3, 2026
efe9ad3
Merge origin/main into worktree-issue-543-consolidated-profile
ericgriffin Sep 3, 2026
d60dadd
debug(bathymetry): add per-tile fingerprint to raw-grid diagnostic panel
github-actions[bot] Sep 3, 2026
3826ac3
Merge remote-tracking branch 'origin/main' into worktree-issue-1472-n…
ericgriffin Sep 3, 2026
d639649
Merge remote-tracking branch 'origin/main' into worktree-import-wizar…
ericgriffin Sep 3, 2026
e3694fa
fix(dc): parse Ratio iX3M 2 dives recorded on APOS5 firmware 5.2.11
ericgriffin Sep 3, 2026
f2c8fcd
feat(linux): show the package-manager command on packaged installs
ericgriffin Sep 3, 2026
cc3f870
fix(sync): stop the temp-file sweep deleting another process's in-fli…
ericgriffin Sep 3, 2026
9b840fe
Fix the Service Due equipment filter reading the retired legacy clock
ericgriffin Sep 3, 2026
c5a008e
Separate a combined dive back into its segments (#1504)
ericgriffin Sep 3, 2026
fb526fe
i18n: separate-combined-dives strings in all locales
ericgriffin Sep 3, 2026
fd28cd2
Merge remote-tracking branch 'upstream/main' into claude/issue-34-202…
github-actions[bot] Sep 3, 2026
ef1396c
Catch each best-effort clock-seeding step separately
ericgriffin Sep 3, 2026
94a6cba
fix(bathymetry): dedupe swissBATHY3D tile downloads by resolved asset…
github-actions[bot] Sep 3, 2026
2f2ad3d
Address PR review: row ordering, segment boundaries, FK-on coverage
ericgriffin Sep 3, 2026
11ad84d
fix(bathymetry): slice per-tile subgrid from lake-wide swissBATHY3D a…
github-actions[bot] Sep 3, 2026
d941987
Log a failed separation, and reword the unreadable-series guard
ericgriffin Sep 3, 2026
44c4e15
Merge pull request #1453 from submersion-app/worktree-issue-645-dive-…
ericgriffin Sep 3, 2026
c35b64f
Merge pull request #1461 from submersion-app/worktree-issue-1423-ios-…
ericgriffin Sep 3, 2026
0342f57
Merge pull request #1485 from submersion-app/worktree-linux-oauth-bro…
ericgriffin Sep 3, 2026
c2c511d
test(dc): single-source the parsed-dive cleanup in the iX3M 2 test
ericgriffin Sep 3, 2026
ec2ef6c
fix(l10n): stop the dedupe warning pointing at the wrong thing
ericgriffin Sep 3, 2026
4558cf3
Merge pull request #1471 from submersion-app/feat/weight-planner-bmi-…
ericgriffin Sep 3, 2026
9fd735a
docs(sync): drop duplicated phrase in sweep doc comment
ericgriffin Sep 3, 2026
5338bdd
Merge pull request #1500 from submersion-app/fix/region-store-review-…
ericgriffin Sep 3, 2026
fe17f1c
Plan the separation inside the transaction, not before it
ericgriffin Sep 3, 2026
56445aa
Keep the logbook entry on the surviving dive, as the dialog promises
ericgriffin Sep 3, 2026
88f9014
i18n: say the whole logbook entry stays, not just the examples
ericgriffin Sep 3, 2026
efc552a
Merge branch 'main' into dive_detail_display_options
ericgriffin Sep 3, 2026
f97d9c6
Merge pull request #1483 from submersion-app/worktree-issue-1472-neve…
ericgriffin Sep 3, 2026
2e6b27c
test(bathymetry): fix zurichseePoint to actually match its fixture's …
github-actions[bot] Sep 3, 2026
ffbb7c6
Pin the locale on the widget tests this PR adds
ericgriffin Sep 3, 2026
09cfab1
Merge pull request #1457 from submersion-app/worktree-issue-543-conso…
ericgriffin Sep 3, 2026
0acdf93
fix(linux): use zypper on openSUSE instead of dnf
ericgriffin Sep 3, 2026
56757eb
Merge pull request #1507 from submersion-app/fix/service-due-filter
ericgriffin Sep 3, 2026
ac72b32
docs: build the em-dash search pattern from bytes, not a literal
ericgriffin Sep 3, 2026
728765e
Read spans by projection, not by selecting whole series rows
ericgriffin Sep 3, 2026
14bc8fa
Merge origin/main into claude/issue-34-20260830-1252
github-actions[bot] Sep 3, 2026
0863b05
Merge pull request #1506 from submersion-app/worktree-sync-providers-…
ericgriffin Sep 3, 2026
cacff5e
Fall back the surviving dive's exit time to its own segment
ericgriffin Sep 3, 2026
f19ee06
Merge pull request #1505 from submersion-app/worktree-issue-1481-rati…
ericgriffin Sep 3, 2026
8147495
fix(linux): stop the tarball preflight silently reporting success
ericgriffin Sep 3, 2026
5e4d8a6
Merge pull request #1484 from submersion-app/worktree-import-wizard-c…
ericgriffin Sep 3, 2026
c42e0d4
fix(bathymetry): try every plausible STAC candidate, not just the first
github-actions[bot] Sep 3, 2026
3066330
Merge pull request #1508 from submersion-app/fix/issue-1504-uncombine
ericgriffin Sep 3, 2026
d0e2ff6
fix(linux): map the sonames the real build needs, exclude libjvm
ericgriffin Sep 3, 2026
128dbf6
Merge pull request #1477 from dotanalon/dive_detail_display_options
ericgriffin Sep 3, 2026
5ac8484
Read the segment count through AsyncValue.value
ericgriffin Sep 3, 2026
9502c8f
feat(dive computer): report the Cressi Leonardo deco obligation
ericgriffin Sep 3, 2026
49c28db
ci: verify the deb against the runner's own Ubuntu, not debian:12
ericgriffin Sep 3, 2026
e486556
Say what actually rebuilds the segment-count provider
ericgriffin Sep 3, 2026
0255545
fix(linux): close an ldd false pass, pin the build date, dedupe hints
ericgriffin Sep 3, 2026
d01d656
Merge pull request #1527 from submersion-app/feat/cressi-leonardo-dec…
ericgriffin Sep 3, 2026
5a0b6b9
ci: gate Script Tests behind CI Success and retry the pip install
ericgriffin Sep 3, 2026
4455500
ci: tolerate trailing comments in the gate parser
ericgriffin Sep 3, 2026
1917d58
ci: run the gate guard inside ci-success itself
ericgriffin Sep 3, 2026
ebcc654
Merge pull request #1526 from submersion-app/fix/segment-count-async-…
ericgriffin Sep 3, 2026
9ec0358
ci: only count real run steps as the gate running the guard
ericgriffin Sep 4, 2026
fc39d0f
Merge pull request #1514 from submersion-app/feat/linux-packaging
ericgriffin Sep 4, 2026
d87cc7b
Merge pull request #1525 from submersion-app/fix/ci-success-gates-scr…
ericgriffin Sep 4, 2026
173a822
docs: Linux packaging phase 2 plan (APT and DNF repositories)
ericgriffin Sep 3, 2026
cd261c5
docs: correct four issues in the phase 2 plan
ericgriffin Sep 3, 2026
605b441
docs: fix the offline gpg key generation in the phase 2 plan
ericgriffin Sep 3, 2026
a2191ed
docs: make the enrollment script fail loudly and cover openSUSE
ericgriffin Sep 3, 2026
b0e7cb6
docs: keep the signing key and passphrase out of world-readable places
ericgriffin Sep 3, 2026
d4fd00d
docs: correct the failing-test expectations and the verification snip…
ericgriffin Sep 3, 2026
033d6cc
docs: isolate GNUPGHOME and fix the key cleanup ordering
ericgriffin Sep 4, 2026
3ce8b3d
docs: document why the publish workflow uses non-cone sparse-checkout
ericgriffin Sep 4, 2026
f00a2f5
Merge origin/main into feature/issue-814-equipment-checklist-link
ericgriffin Sep 4, 2026
190e9e3
fix(pre-dive): address review on the equipment-linked checklist item
ericgriffin Sep 4, 2026
e7fda7b
docs: make the key generation abort on failure and guard the key id
ericgriffin Sep 4, 2026
2f47578
Merge pull request #1515 from submersion-app/feat/linux-package-repos
ericgriffin Sep 4, 2026
3e29685
Merge pull request #1408 from alpheios-one/feature/issue-814-equipmen…
ericgriffin Sep 4, 2026
bd06863
Merge upstream/main into claude/issue-34-20260830-1252
github-actions[bot] Sep 4, 2026
15a7feb
debug(bathymetry): show real header + row/col extraction numbers for …
github-actions[bot] Sep 4, 2026
defc486
ci(linux): drop the build container and keep the runner's glibc floor…
ericgriffin Sep 4, 2026
47bc360
fix(sync): stop Google Drive sync using a closed HTTP client (#1532)
ericgriffin Sep 4, 2026
4b33fad
Merge remote-tracking branch 'upstream/main' into claude/issue-34-202…
github-actions[bot] Sep 4, 2026
cc50cbf
debug(bathymetry): show swissBATHY3D cache storage paths + debug clea…
github-actions[bot] Sep 4, 2026
4890e12
fix(export): make the Detailed PDF logbook actually detailed (#1017) …
ericgriffin Sep 4, 2026
1a5d023
Merge remote-tracking branch 'upstream/main' into claude/issue-34-202…
github-actions[bot] Sep 4, 2026
ebd7921
fix(bathymetry): raise swissBATHY3D download timeout, surface legacy …
github-actions[bot] Sep 4, 2026
cbab222
fix(bathymetry): read every .asc/.grd entry in a swissBATHY3D zip, no…
github-actions[bot] Sep 4, 2026
99c25c7
debug(bathymetry): gate swissBATHY3D debug diagnostics behind kDebugMode
github-actions[bot] Sep 4, 2026
2e71049
test(integration): scroll Navigation bar tile into view before tapping
github-actions[bot] Sep 4, 2026
dae0845
fix(dive-detail): drop the double gap below the gas consumption card …
ericgriffin Sep 4, 2026
ed11147
feat(safety): lead the emergency card with the diver's own insurer (#…
ericgriffin Sep 4, 2026
17b528c
fix(media-store): resolve the Google Drive client per request, not at…
ericgriffin Sep 4, 2026
97ea37f
Add localization verification in CI workflow
alpheios-one Sep 4, 2026
f4f4f4e
ci: restore Linux .deb/.rpm packaging in build-all.yml (lost in bot m…
alpheios-one Sep 4, 2026
9b0ccfb
ci: verify Linux .deb/.rpm assets in release validation
alpheios-one Sep 4, 2026
ced3871
fix(sites): repair place names split across languages (#1187) (#1534)
ericgriffin Sep 4, 2026
9cb6bfa
fix(dive-sites): name the sea for coordinates, not just inland water …
ericgriffin Sep 4, 2026
71fcbd1
fix(bathymetry): replace approximate Swiss lake levels with official …
github-actions[bot] Sep 4, 2026
cd6fd6b
fix(sync): follow Drive's nextPageToken so listings are not truncated…
ericgriffin Sep 4, 2026
d60fe83
fix(equipment): show the currency on each total value widget (#1545)
ericgriffin Sep 4, 2026
8be8b5b
ci: add script-tests to ci-success.needs (missed in earlier restoration)
alpheios-one Sep 4, 2026
88d2844
docs(scripts): stop claiming the simplification matches the tolerance…
ericgriffin Sep 4, 2026
f28af76
fix(safety): add the Belgian, Dutch and Luxembourg hyperbaric centres…
ericgriffin Sep 4, 2026
1f189b1
feat(equipment): add undersuit and base layer types (#1537) (#1555)
ericgriffin Sep 4, 2026
5c4fc67
fix(scripts): emit a parseable generated_at in the dive site assets (…
ericgriffin Sep 4, 2026
4cf5c00
fix(sync): stop a fresh install inheriting the old install's device i…
ericgriffin Sep 4, 2026
c718841
fix(date-picker): keep the calendar dialog in the app's language (#15…
ericgriffin Sep 4, 2026
0a3457b
fix(ui): respect the diver's date format everywhere (#1512) (#1539)
ericgriffin Sep 4, 2026
94de7c6
feat(equipment): add utility, three-finger and dry glove liner types …
ericgriffin Sep 4, 2026
a0d005d
feat(equipment): add five equipment types with their own fields (#151…
ericgriffin Sep 4, 2026
6546aaf
feat(geocoding): name the sea in the diver's language (#1558)
ericgriffin Sep 5, 2026
7375d76
feat(equipment): purchase record fields and document attachments (#1544)
ericgriffin Sep 5, 2026
1cf580a
Fix depth axis over-scaling in 3D scenes (SiteSeascapeGeometryService…
alpheios-one Sep 5, 2026
8adc3f4
feat(tank-presets): add AL100 as a built-in cylinder preset (#1557) (…
ericgriffin Sep 5, 2026
2099553
fix(media): let MediaFetchGate release its budget timers on disposal …
ericgriffin Sep 5, 2026
4a86098
docs(linux): point package downloads at where the files actually are …
ericgriffin Sep 5, 2026
96e8cb7
fix(buoyancy): key the tank catalog by preset slug, not identifier (#…
ericgriffin Sep 5, 2026
6f23592
feat(db): compress raw dive computer data at rest (#227) (#1562)
ericgriffin Sep 5, 2026
4262431
Merge branch 'main' into claude/issue-34-20260830-1252
alpheios-one Sep 5, 2026
486fdef
fix(bathymetry): match swissBATHY3D freshness checks by asset href, n…
github-actions[bot] Sep 5, 2026
48ac7d1
Trimix calculator: persist last-entered values, settings gear, cylind…
alpheios-one Sep 5, 2026
2f0d5ed
fix(planner): derive the seeded GF-low anchor after off-gassing (#1565)
ericgriffin Sep 5, 2026
5230e23
Upgrade Java setup action to version 6
alpheios-one Sep 5, 2026
f2f82ce
Upgrade setup-java action to version 6
alpheios-one Sep 5, 2026
fff9828
ci: restore Linux .deb/.rpm packaging steps in ci.yaml build-linux job
alpheios-one Sep 5, 2026
09517d9
ci: restore libdivecomputer submodule-pointer guard job in ci.yaml
alpheios-one Sep 5, 2026
4ad5743
docs: make swiss_stac_client.dart collectionIds docstring self-contained
alpheios-one Sep 5, 2026
8e98f72
Add debug diagnostics for swissBATHY3D
alpheios-one Sep 5, 2026
e50069b
docs: reword debug comments in site_terrain_pane.dart
alpheios-one Sep 5, 2026
7ca33a7
test: stop importing riverpod internals in appearance_page_test.dart
alpheios-one Sep 5, 2026
ef46915
test: use public Override type instead of riverpod internal in appear…
alpheios-one Sep 5, 2026
6848d38
Merge branch 'main' into claude/issue-34-20260830-1252
alpheios-one Sep 5, 2026
9b44e41
test: import Override from public flutter_riverpod package directly
alpheios-one Sep 5, 2026
3b5c3a5
feat(export): raw dive computer data in UDDF exports (#228) (#1564)
ericgriffin Sep 5, 2026
8071288
test: import Override from riverpod base package (flutter_riverpod do…
alpheios-one Sep 5, 2026
f245349
Merge branch 'main' into claude/issue-34-20260830-1252
alpheios-one Sep 5, 2026
04bb86e
docs: broaden the attribution rule beyond PR descriptions
ericgriffin Sep 5, 2026
afd7c22
test: import Override from flutter_riverpod/misc.dart (moved there in…
alpheios-one Sep 5, 2026
edfd2d0
feat(planner): derive segment phases, save tanks, and converge deco w…
dotanalon Sep 5, 2026
03e7dbf
Merge branch 'main' into claude/issue-34-20260830-1252
alpheios-one Sep 5, 2026
5c9b5b0
fix(export): route exports to a save dialog on Linux (#1573) (#1574)
dotanalon Sep 6, 2026
447e83b
feat(dive-profile): full metric comparison for combined dives (#1443)
dotanalon Sep 6, 2026
2834f90
Reorder every nav destination on phone and desktop (#1580)
ericgriffin Sep 6, 2026
4fcecf7
fix(dive-log): tank consolidation pressure check, and one definition …
ericgriffin Sep 6, 2026
888cdbd
Seascape source layer: pick the best bathymetry, add a high-resolutio…
ericgriffin Sep 6, 2026
91b46a6
fix(backup): retain the pre-migration copy an older build can open (#…
ericgriffin Sep 6, 2026
846f9d3
fix(dive-profile): land range-stats handles on the chart's plot rect …
ericgriffin Sep 6, 2026
f3f4c7a
fix(startup): stop sending schema-mismatch users to a build that cann…
ericgriffin Sep 6, 2026
96c3c35
fix(checklists): make the trip checklist reachable on every trip (#15…
ericgriffin Sep 6, 2026
1e5118f
ci: restore check_ci_success_gate.py to script-tests coverage guards
alpheios-one Sep 6, 2026
6857e6b
Delete corrupt rows from swissBathyTileCache
alpheios-one Sep 6, 2026
3da67ce
ci: restore pip-install retry logic and fast-signal CI gate check in …
alpheios-one Sep 6, 2026
9141e69
test(bathymetry): regression tests for corrupt swissBATHY3D cache row…
github-actions[bot] Sep 6, 2026
88b549c
feat(startup): offer the pre-upgrade backup from the schema-mismatch …
ericgriffin Sep 6, 2026
17ddd2b
Merge upstream/main into claude/issue-34-20260830-1252
github-actions[bot] Sep 6, 2026
da2be49
fix(bathymetry): treat grid origin as a cell center in bilinear inter…
github-actions[bot] Sep 6, 2026
e2243c9
test(bathymetry): fix wrong expectation in corner-margin bilinear test
github-actions[bot] Sep 6, 2026
49a7307
fix(bathymetry): swisstopo attribution label, STAC pagination, refres…
github-actions[bot] Sep 6, 2026
c6a1eed
chore: bump version to 1.7.8+125
github-actions[bot] Sep 6, 2026
2d6d9c1
Merge pull request #1617 from submersion-app/chore/bump-1.7.8-125
ericgriffin Sep 6, 2026
d5c6a9f
Fix comment indentation in ci.yaml
alpheios-one Sep 6, 2026
a4cee10
docs: reword stale debug comments in site_terrain_pane.dart
alpheios-one Sep 6, 2026
c69fd6d
Merge branch 'main' into claude/issue-34-20260830-1252
alpheios-one Sep 6, 2026
f50a753
fix: gate debug provider watch, fix stale comment, dedupe bathymetry …
github-actions[bot] Sep 6, 2026
54943f5
fix: clamp bilinear interpolation south/west margin neighbor, gate de…
github-actions[bot] Sep 6, 2026
ad49e39
fix: delete inconsistent gridJson=null cache rows, fix single-tile ov…
github-actions[bot] Sep 6, 2026
503bfda
ci: remove trailing whitespace on blank lines
alpheios-one Sep 6, 2026
201f42d
fix: catch swissBATHY3D refresh exceptions, reset stale debug state o…
github-actions[bot] Sep 6, 2026
8a198e9
fix: dedupe shared-href zip downloads within a refreshAllCachedTiles …
github-actions[bot] Sep 6, 2026
adb7ee5
docs(releases): add v1.7.7.8077 release notes
ericgriffin Sep 7, 2026
ff4094c
Merge branch 'main' into claude/issue-34-20260830-1252
alpheios-one Sep 7, 2026
4a0f0f1
fix: harden STAC pagination/casts, ZIP parse errors, and debug-panel …
github-actions[bot] Sep 7, 2026
22ff662
fix: replace remaining unguarded casts in SwissStacClient with is-checks
github-actions[bot] Sep 7, 2026
0e59e84
ci: drop unrelated ci.yaml comment churn from this branch
ericgriffin Sep 8, 2026
210072c
refactor(bathymetry): drop the swissBATHY3D debug diagnostics module
ericgriffin Sep 8, 2026
d5d4182
fix(bathymetry): distinguish "nothing cached" from "everything up to …
ericgriffin Sep 8, 2026
e06a1f7
docs(bathymetry): record the deferred Swiss cache-key trade-off
ericgriffin Sep 8, 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
  •  
  •  
  •  
113 changes: 106 additions & 7 deletions .github/workflows/build-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -562,14 +562,25 @@ jobs:
id: flutter-ver
run: echo "version=$(cat ${{ env.FLUTTER_VERSION_FILE }})" >> "$GITHUB_OUTPUT"

# The runner image sets the glibc floor of everything shipped here.
# Deliberately left as ubuntu-latest: the released tarball has always
# required GLIBC_2.38, pinned by libsqlcipher.so and the two plugin
# libraries rather than by the app, so building on an older host would
# buy reach the project has never claimed at the cost of a container
# and its toolchain. See docs/guide/installation.md for the distro
# requirement this implies.
#
# binutils supplies readelf for scripts/linux_package_deps.py; the
# hosted image already has it, and it is named here so a future image
# change cannot remove it silently.
- name: Install Linux dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y \
clang cmake ninja-build pkg-config \
libgtk-3-dev liblzma-dev libstdc++-12-dev \
libsqlite3-dev libsecret-1-dev libwebkit2gtk-4.1-dev \
libssl-dev
libssl-dev binutils

- name: Setup Flutter
uses: subosito/flutter-action@v2
Expand Down Expand Up @@ -615,20 +626,109 @@ jobs:
# app (issue #1129).
run: python3 scripts/check_bundled_native_assets.py build/linux/x64/release/bundle

- name: Install packaging tools
run: |
sudo apt-get install -y ruby ruby-dev build-essential rpm python3-pil
sudo gem install --no-document fpm

# Staged before the tarball step, so the installer scripts the tarball
# carries never leak into the package trees.
# Shared with ci.yaml's build-linux job so the two cannot drift.
- name: Build .deb and .rpm
env:
TAG_NAME: ${{ inputs.version-tag }}
run: |
set -euo pipefail
VERSION="${TAG_NAME#v}"
scripts/release/build_linux_packages.sh \
--bundle build/linux/x64/release/bundle \
--version "$VERSION" \
--deb "Submersion-${TAG_NAME}-Linux-amd64.deb" \
--rpm "Submersion-${TAG_NAME}-Linux-x86_64.rpm"

# Runs after the package trees are staged, so these extras reach the
# tarball only. A tarball user has no package manager doing the work,
# so the archive carries its own installer and dependency map.
- name: Create tarball
env:
TAG_NAME: ${{ inputs.version-tag }}
run: |
cd build/linux/x64/release/bundle
set -euo pipefail
BUNDLE=build/linux/x64/release/bundle
cp scripts/release/linux_tarball_extras/install.sh "$BUNDLE/"
cp scripts/release/linux_tarball_extras/uninstall.sh "$BUNDLE/"
chmod +x "$BUNDLE/install.sh" "$BUNDLE/uninstall.sh"
cp scripts/data/linux_soname_map.json "$BUNDLE/deps.json"
python3 scripts/gen_udev_rules.py \
packages/libdivecomputer_plugin/third_party/libdivecomputer/src/descriptor.c \
> "$BUNDLE/60-submersion-divecomputers.rules"
cd "$BUNDLE"
tar czf "$GITHUB_WORKSPACE/Submersion-${TAG_NAME}-Linux.tar.gz" .

- name: Upload Linux artifact
- name: Upload Linux artifacts
uses: actions/upload-artifact@v7
with:
name: linux-tar
path: Submersion-*.tar.gz
name: linux-packages
path: |
Submersion-*.tar.gz
Submersion-*.deb
Submersion-*.rpm
retention-days: 5

# ============================================================================
# Verify Linux Packages
# ============================================================================
verify-linux-packages:
name: Verify Linux Packages
needs: build-linux
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
# Checkout first: actions/checkout cleans the workspace by default, so
# downloading the artifact before it would delete the download.
- name: Check out the verification script
uses: actions/checkout@v7
with:
sparse-checkout: scripts/release/verify_linux_package.sh
sparse-checkout-cone-mode: false

- name: Download Linux packages
uses: actions/download-artifact@v8
with:
name: linux-packages
path: packages

# Installing through the real package manager is the point: it proves
# every declared dependency is resolvable on a stock system, which is
# exactly what the tar.gz could never demonstrate.
# The .deb is verified against the runner's own Ubuntu release, not an
# older distro: build-linux runs on ubuntu-latest, so its binaries
# require that runner's glibc and cannot run anywhere older. The tag is
# derived rather than pinned so it keeps matching when GitHub moves
# ubuntu-latest. Mirrors the same step in ci.yaml.
- name: Install and run in clean containers
run: |
set -euo pipefail
UBUNTU_TAG="ubuntu:$(. /etc/os-release && echo "$VERSION_ID")"
echo "runner is $UBUNTU_TAG"
# Every image runs even when an earlier one fails, so one run says
# whether the .deb, the .rpm, or both are broken. Testing the exit
# status with `if !` keeps the failure from tripping `set -e`.
failed=()
for image in "$UBUNTU_TAG" fedora:latest; do
echo "=== $image ==="
if ! docker run --rm \
-v "$PWD/packages:/p" \
-v "$PWD/scripts/release/verify_linux_package.sh:/verify.sh:ro" \
"$image" bash /verify.sh; then
failed+=("$image")
fi
done
if [ "${#failed[@]}" -gt 0 ]; then
echo "::error::package verification failed on: ${failed[*]}"
exit 1
fi

# ============================================================================
# Android Build
# ============================================================================
Expand All @@ -649,7 +749,7 @@ jobs:
run: echo "version=$(cat ${{ env.FLUTTER_VERSION_FILE }})" >> "$GITHUB_OUTPUT"

- name: Setup Java
uses: actions/setup-java@v5
uses: actions/setup-java@v6
with:
distribution: 'temurin'
java-version: '21'
Expand Down Expand Up @@ -929,4 +1029,3 @@ jobs:
run: |
rm -f ios/fastlane/AuthKey.p8
security delete-keychain $RUNNER_TEMP/app-signing.keychain-db 2>/dev/null || true

Loading