chore(release): v1.4.27

v1.4.27 — Mobile capability and maintainer-finding cleanup.

ResponsiveSheet primitive (bottom-sheet on narrow viewports, centred dialog on desktop)
applied to BD, Weight, Glucose, Mood, Activity forms. Maintainer-finding cleanups across
Coach, Insights, Reports, Privacy. GeoLite2 offline geocoding with resilience layer
(graceful fallback when EULA not yet propagated). E2E gap-fill coverage. 450-line
release notes attached to the GitHub Release.
This commit is contained in:
Marc-André Bombeck authored and GitHub committed 2026-05-15 22:59:10 +02:00
1 parent d98e85cd03
commit 4f09c3f862
314 files changed
+26801 -4419

No files matched your search

+28
View File
@@ -98,6 +98,34 @@ jobs:
org.opencontainers.image.licenses=AGPL-3.0-only
org.opencontainers.image.source=https://github.com/${{ github.repository }}
# v1.4.27 B3 — GeoLite2-City + GeoLite2-ASN databases are too large
# (~80 MB combined) to vendor in git. `scripts/fetch-geolite2.sh`
# downloads both editions into `assets/geolite2/` so the Dockerfile
# COPY at line 78 picks them up.
#
# The build is intentionally resilient to a missing
# `MAXMIND_LICENSE_KEY` secret: when the key is unset we emit a
# `::warning::` line, drop a `.empty` marker into the assets
# directory so the Dockerfile COPY still has a non-empty source,
# and continue cleanly. The runtime resolver in `src/lib/geo.ts`
# detects the marker on first lookup and emits a one-shot
# admin notification — the maintainer hears about the gap from
# the running app rather than from a red CI badge that blocks
# every release. To enable the offline feature, set the secret
# under repo Settings → Secrets and variables → Actions and
# redeploy.
- name: Fetch GeoLite2 databases
env:
MAXMIND_LICENSE_KEY: ${{ secrets.MAXMIND_LICENSE_KEY }}
run: |
if [ -z "$MAXMIND_LICENSE_KEY" ]; then
echo "::warning::MAXMIND_LICENSE_KEY secret is unset. The image will ship without the offline GeoLite2 databases; the runtime resolver continues to fall back to the online ipwho.is provider and will send a one-shot admin notification on first use. To enable the offline tier, set MAXMIND_LICENSE_KEY under repo Settings → Secrets and variables → Actions."
mkdir -p assets/geolite2
touch assets/geolite2/.empty
exit 0
fi
./scripts/fetch-geolite2.sh
# Per-ref + per-platform gha cache scope. Tag builds warm-start
# off main's last good layer set for the same platform; tag and
# main builds at the same SHA do not contend on writes, and