From d51e569c59b4f143a976863281d0f8dbc8c18302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 7 Jun 2026 21:49:27 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20v1.15.15=20=E2=80=94=20one=20?= =?UTF-8?q?warm,=20motivating=20assistant=20voice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 +++ docs/api/openapi.yaml | 2 +- package.json | 2 +- scripts/seed-demo-apps01.sql | 2 +- scripts/seed-demo-meds-apps01.sql | 65 +++++++++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 scripts/seed-demo-meds-apps01.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index 1324d74a8..1b05cbb45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ## [Unreleased] +## [1.15.15] — 2026-06-07 — one warm, motivating assistant voice + +### Changed + +- **The whole assistant speaks in one voice.** The daily briefing, key findings, the insight write-ups, and the Coach now share the same warm, motivating, advisory tone the metric and wellness assessments adopted last release — encouraging and grounded in your data, honest about what needs attention, never generic. (Already-generated briefing text refreshes within about a day; the Coach speaks the new way immediately.) + ## [1.15.14] — 2026-06-07 — manage every detail page, calmer mood charts ### Added diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 2cfa3060d..62d9927e7 100644 --- a/docs/api/openapi.yaml +++ b/docs/api/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: HealthLog API - version: 1.15.14 + version: 1.15.15 description: >- Self-hosted personal-health-tracking PWA — public API surface for the iOS native client and external ingest. diff --git a/package.json b/package.json index 46f294faa..dd8e1de2c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.15.14", + "version": "1.15.15", "description": "Self-hosted personal-health-tracking PWA with Withings integration, AI insights, and doctor-report PDF export.", "license": "AGPL-3.0-only", "homepage": "https://healthlog.dev", diff --git a/scripts/seed-demo-apps01.sql b/scripts/seed-demo-apps01.sql index b5b3ce4de..5fac887ea 100644 --- a/scripts/seed-demo-apps01.sql +++ b/scripts/seed-demo-apps01.sql @@ -14,7 +14,7 @@ BEGIN; -- ── User (FEMALE, USER role) ────────────────────────────────────── INSERT INTO users (id, username, email, password_hash, role, height_cm, date_of_birth, gender, timezone, locale, onboarding_completed_at, created_at, updated_at) -SELECT 'usr_demo_' || replace(gen_random_uuid()::text, '-', ''), +SELECT 'usr_demo_cf31025295714ece8d91f5af13afd76d', 'demo', 'demo@healthlog.app', '$argon2id$v=19$m=19456,t=2,p=1$3KvrEIuI5UnwG53GPbS71w$mL8ZQotIXn9iLFIw3yHXbh6SitX1w7TXKI5ahWcKkF8', 'USER', 168, TIMESTAMP '1992-03-15', 'FEMALE', 'Europe/Berlin', 'en', NOW(), NOW(), NOW() diff --git a/scripts/seed-demo-meds-apps01.sql b/scripts/seed-demo-meds-apps01.sql new file mode 100644 index 000000000..b2fb1fedf --- /dev/null +++ b/scripts/seed-demo-meds-apps01.sql @@ -0,0 +1,65 @@ +-- HealthLog demo medications for apps01 — canonical ids the 1-year extender +-- (scripts/seed-demo-extend-1y.sql) references for its intake history. +-- Idempotent. Creates the two demo meds + schedules so the extender's +-- medication_intake_events FK resolves and the medication cards/compliance +-- surfaces populate. Demo user id is the canonical seeded id. +-- +-- Run: ssh apps-01 'docker exec -i psql -U healthlog -d healthlog' < scripts/seed-demo-meds-apps01.sql + +BEGIN; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM users WHERE id = 'usr_demo_cf31025295714ece8d91f5af13afd76d') THEN + RAISE EXCEPTION 'seed-demo-meds: demo user not found'; + END IF; +END $$; + +-- ── Med A — Mounjaro (GLP-1, weekly on Sundays @ 08:00) ──────────── +INSERT INTO medications + (id, user_id, name, dose, treatment_class, doses_per_unit, active, notifications_enabled, starts_on, created_at, updated_at) +VALUES + ('cmq2lzjqh005x01nrys2crzg9', 'usr_demo_cf31025295714ece8d91f5af13afd76d', + 'Mounjaro', '5 mg', 'GLP1', 4, true, true, + (NOW() - INTERVAL '380 days')::date, NOW() - INTERVAL '380 days', NOW()) +ON CONFLICT (id) DO UPDATE SET + name = EXCLUDED.name, dose = EXCLUDED.dose, treatment_class = EXCLUDED.treatment_class, + doses_per_unit = EXCLUDED.doses_per_unit, active = true, starts_on = EXCLUDED.starts_on, + updated_at = NOW(); + +INSERT INTO medication_schedules + (id, medication_id, window_start, window_end, label, times_of_day, days_of_week, rrule) +VALUES + ('sched_demo_medA_mounjaro', 'cmq2lzjqh005x01nrys2crzg9', + '08:00', '10:00', 'Wöchentlich', ARRAY['08:00'], '7', 'FREQ=WEEKLY;BYDAY=SU') +ON CONFLICT (id) DO UPDATE SET + window_start = EXCLUDED.window_start, window_end = EXCLUDED.window_end, + label = EXCLUDED.label, times_of_day = EXCLUDED.times_of_day, + days_of_week = EXCLUDED.days_of_week, rrule = EXCLUDED.rrule; + +-- ── Med B — Ramipril (twice daily @ 08:00 + 18:00) ───────────────── +INSERT INTO medications + (id, user_id, name, dose, treatment_class, active, notifications_enabled, starts_on, created_at, updated_at) +VALUES + ('cmq2m0mzk006101nrdpijbij0', 'usr_demo_cf31025295714ece8d91f5af13afd76d', + 'Ramipril', '5 mg', 'GENERIC', true, true, + (NOW() - INTERVAL '380 days')::date, NOW() - INTERVAL '380 days', NOW()) +ON CONFLICT (id) DO UPDATE SET + name = EXCLUDED.name, dose = EXCLUDED.dose, treatment_class = EXCLUDED.treatment_class, + active = true, starts_on = EXCLUDED.starts_on, updated_at = NOW(); + +INSERT INTO medication_schedules + (id, medication_id, window_start, window_end, label, times_of_day, days_of_week, rrule) +VALUES + ('sched_demo_medB_ramipril', 'cmq2m0mzk006101nrdpijbij0', + '08:00', '18:00', 'Morgens & Abends', ARRAY['08:00','18:00'], NULL, 'FREQ=DAILY') +ON CONFLICT (id) DO UPDATE SET + window_start = EXCLUDED.window_start, window_end = EXCLUDED.window_end, + label = EXCLUDED.label, times_of_day = EXCLUDED.times_of_day, + days_of_week = EXCLUDED.days_of_week, rrule = EXCLUDED.rrule; + +COMMIT; + +\echo === demo meds === +SELECT id, name, dose, treatment_class, active FROM medications +WHERE user_id = 'usr_demo_cf31025295714ece8d91f5af13afd76d' ORDER BY name;