# Changelog All notable changes to GlucoPilot are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project aims to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - **Install as an app** — GlucoPilot has a web app manifest, icons and a service worker, so "Install app" on Android (and Add to Home Screen on iOS) opens it in its own window, starting on the dashboard, with the blood-drop icon. With no network the installed app shows a "No connection" page. The service worker caches nothing; pages and health data always come from the server. - **Pump settings from Glooko** — carb ratios, correction factor (ISF), targets, correction threshold, active insulin time, max bolus/basal and basal programs, synced once a day from Glooko's settings snapshots. Shown read-only on the Insulin and Connections pages and in the Visit Report, each with the snapshot's as-of date and age; the Companion can answer from the latest one. ### Changed - **One report** — the Clinician Brief is merged into the Visit Report. A "For" selector (or `/report?for=`) gives the Brief's specialty views: each shows its own data domains, with labs and documents filtered by its keywords and insurance left out. Lab results, imaging studies and other clinical documents link to the uploaded document they came from, and the report lists the clinical documents on file. `/brief` now opens the Visit Report; Share Export still builds briefs. - **Editable discussion points** — the owner edits the Visit Report's "Points to discuss" before printing; the edit is saved per view and prints in place of the suggested points until cleared. Suggested points no longer raise correlations between wearable signals and glucose. - **Visit Report printing** — no forced page break after the summary, so a long summary no longer leaves a mostly blank page; section headings stay with the content after them. ### Fixed - **Visit Report weight** — the headline is change from the 12-month high to the latest weight. Change since the first entry is shown as secondary context. - **Visit Report narrative** — the prompt is capped at 8,000 tokens (less when the model's window is smaller), shedding evidence, contradictions and lab detail in steps until it fits. - **Lab flags** — when a result has a numeric value and reference range, the range decides high/low/normal; a stored flag the range contradicts is noted and not used. - **Lab results read the same everywhere** — the Visit Report, Clinician Brief and Companion share one table of test-name synonyms, and the Companion now takes a lab's flag from its value and reference range when the source's flag contradicts it, as the Report and Brief already did. - **Clinician Brief** — concerns are ranked (weight loss, hypoglycemia, reported symptoms, then one grouped abnormal-labs entry); each lab test is listed once; reassuring, opposing and limitation entries show their label, value and reason. ## [0.1.2] — 2026-07-21 ### Added - **Companion web grounding** — optional, off by default. The Companion searches trusted medical sources (NIH's MedlinePlus + PubMed, plus an optional allowlisted web-search provider) and cites them inline instead of recalling specifics from memory — cutting hallucination. Only the general medical topic of your question is sent out, never your records. (#85) ### Changed - **One Overview page** — the former Insights and Patterns tabs are folded into Overview (Insights was redundant with its cross-domain connections, and already fed them). Overview now shows metrics, connections, on-track / worth-watching, and a "Patterns in your glucose" section; Refresh regenerates the summary and re-scans patterns together. - **Glooko** — polling reduced from every 30 minutes to every 6 hours (the pump uploads to Glooko roughly once a night). ### Fixed - **Visit Report and Overview no longer hang** — both moved off the GPU-starved quality (27B) model to the fast model, generating in seconds instead of timing out. ## [0.1.1] — 2026-07-21 ### Added - **Health History** — a standing background narrative plus a typed medical timeline (diagnoses, exposures, injuries, prescriptions, ER/hospital visits, appointments, doctor advice). Feeds the Companion and the Visit Report. (#67) - **Records: topic search** — search a topic (e.g. "mold", "thyroid") to surface every related lab, matching analyte name, family, and category. (#71) - **Records: unit conversion** — a curated conversion table normalizes the same analyte across units into one trend, with a Conventional / SI display toggle. (#76) ### Fixed - **Dashboard** — collapsed duplicate heart-rate charts and the Oura/Fitbit metric overlap into one clear view (Fitbit for live physiology, Oura for its scores). (#72) - **Bug reporter** — now files reports in-app instead of bouncing the reporter to GitHub's sign-in; nothing is lost regardless of GitHub configuration. (#77) - **Records: cleaner lab trends** — the same test written different ways (e.g. serum "Cortisol" vs "Cortisol, A.M.") now merges into one continuous trend, while genuinely different tests — specimens, metabolites, and timed-panel points — stay separate. ### Changed - **CI** — bumped the `docker/*` actions to their Node 24 majors, clearing the Node 20 deprecation warning. (#75) ## [0.1.0] — 2026-07-19 First public release. A self-hosted, single-user personal health platform centered on Type 1 diabetes, with a health **Companion** that reasons across all of your data. ### AI & assistants - **Companion** — streaming chat grounded in your real records, with a persistent memory of your lived experience, multiple conversation threads, markdown answers, and a Fast/Deep local-model switch. Surfaces patterns and questions for your care team; never diagnoses or advises dosing. - **Overview** — a cross-domain AI health summary spotting connections across your whole picture, not just glucose. - **Visit Report** — a printable 90-day clinical summary (AGP, TIR, per-phase metrics, labs, conditions, medications, symptoms) with an AI "quarter in review". - **Records** — upload lab reports and imaging (PDF/photo); a local vision model extracts values into per-analyte trend charts. - **Pluggable LLM layer** — Anthropic API or any local OpenAI-compatible server (vLLM / Ollama), including a graceful on-demand quality model. With a local model, no health data leaves the machine. ### Data sources - Glucose — Dexcom Share (real-time), Dexcom API v3, Nightscout. - Insulin pump — Tandem Source (via `tconnectsync`), Glooko fallback. - Wearables — Oura Ring (sleep / readiness / HRV / temperature) and Fitbit / Google Health (steps / heart rate / sleep / SpO₂ / breathing rate), including near-real-time heart rate. - Cycle — menstrual phases inferred automatically from Oura nightly temperature. - CSV / Base44 export bulk import. ### Tracking & analysis - **Dashboard** — real-time glucose, TIR/GMI/CV, AGP, treatment timeline, live heart rate, and wearable overlays. - **Explorer** — a zoomable/pannable glucose canvas with insulin, basal bands, IOB. - **Patterns** — statistical + AI detection of recurring highs/lows, spikes, etc. - **Insights** — cross-domain correlations (glucose × sleep × activity × cycle). - **Insulin** — total daily dose, estimated insulin resistance, and correction-response / absorption statistics. - **Wearables** — sleep, activity, HR/HRV, and SpO₂ deep-dives with glucose overlays. - **Compare** — period-over-period comparison. - **Symptom journal** — a nightly check-in (severity, duration, notes) woven into the Companion, analytics, and the report. - **Clinical picture** — conditions, medications & allergies, profile, and insurance, entered once and fed to the AI and the Visit Report. - **Fingerstick** logging with CGM matching. ### Platform - One container (FastAPI + SQLite + a React/Vite/Tailwind SPA); state in a single Docker volume. - **One-command local installer** (`install.sh`) plus `docker-compose.local.yml`. - Server deploy behind Traefik / nginx / Caddy (`docs/DEPLOY.md`). - Demo mode with synthetic seed data. - Read-only provider login (role-gated) for sharing with a clinician. - Argon2 password hashing and session auth. - No telemetry and no phone-home. - CI/CD via GitHub Actions; prebuilt images published to GHCR. [Unreleased]: https://github.com/Paco5687/GlucoPilot/compare/v0.1.2...HEAD [0.1.2]: https://github.com/Paco5687/GlucoPilot/compare/v0.1.1...v0.1.2 [0.1.1]: https://github.com/Paco5687/GlucoPilot/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/Paco5687/GlucoPilot/releases/tag/v0.1.0