mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 04:32:42 +00:00
Consolidated hotfix landing the findings from a six-axis audit
covering mobile security, UX + accessibility, code quality + docs,
README + discoverability, web performance, and mobile-deep responsive
behaviour. None of the changes break the public API or the existing
data shape; every fix is additive and SAFE under the v1.4.34.x web
freeze. Full audit reports live in `.planning/round-audit-*.md`.
Security
- Password rotation now wipes API tokens + refresh tokens in the
same `$transaction` as session revocation. A stolen iOS Bearer no
longer survives a user-initiated password change or an admin reset.
- `/.well-known/` proxy bypass tightened to an explicit-allowlist
`Set`. Stale `/api/auth/codex/callback` PUBLIC_PATHS entry dropped.
- HSTS gains `preload`. Withings host removed from the global CSP
and gated to the integration's own routes.
- `getClientIp` warns once per process on `TRUST_PROXY_HOPS`/XFF
mismatch + exposes a tagged helper for tighter universal buckets.
- Service worker rejects off-origin notification-click URLs. Offline
fallback body switched to a locale-neutral icon. Manifest gains
`scope`, `id`, `display_override`.
UX + accessibility
- i18n leaks closed on Dialog/Sheet close-X, ChartSkeleton's loading
announcement, and the notifications-section breadcrumb.
- Focus rings on bottom-nav, the More overflow button, and the
mobile top-bar user menu.
- Tap-target floor: Input / NativeSelect / Select / DateTimeInput
switch to `h-11 sm:h-10`.
- Admin chip-strip auto-scroll-into-view (matches v1.4.33 settings).
- List-page subtitles visible on mobile.
- Insights empty-state CTA vocabulary normalised so the link opens
the right measurement form (was silently failing for
BODY_TEMPERATURE / BLOOD_GLUCOSE / PULSE).
Mobile-deep
- `viewport.themeColor` reacts to light/dark mode.
- TopBar + Coach FAB reserve safe-area-inset-top / -bottom for
notched iPhones.
- Sonner toaster switches to `theme="system"`.
Code quality
- `SESSION_SECRET` dropped — the env var was documented as required
but never read by code. Three secrets, not four. Self-hosters
upgrading can delete the existing line.
- `toJson<T>()` helper consolidates seven Prisma JSON-cast sites.
- `db-compat.ts` gains a header docstring naming it the
schema-bootstrap path.
- Passkey response types adopted from `@simplewebauthn/server`;
`any` + eslint-disable pragmas drop out.
- Zero-TODO CI gate added at `.github/workflows/no-todo-markers.yml`.
Documentation + discoverability
- README rework: How-it-compares matrix, Apple Health + AI Coach
promoted to standalone Key-Features bullets, status block, latest
release + GHCR badges, OpenAPI pointer, three-secret Quick Start.
- openGraph + twitter cards now carry `images` and a
`summary_large_image` Twitter card.
- GitHub repo metadata: description tightened from 290 to 156
chars + keyword-front, `homepageUrl` flipped from a personal
tenant to the demo site, six generic / PII-adjacent topics
swapped for six high-intent ones.
- Five new user-facing docs: `docs/self-hosting/getting-started.md`,
`docs/self-hosting/reverse-proxy.md`,
`docs/integrations/apple-health.md`,
`docs/integrations/withings.md`,
`docs/integrations/ai-providers.md`.
- `docs/README.md` clarifies the docs tree as internal playbooks
vs the user-facing `docs.healthlog.dev` site.
34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
# `docs/` — internal reference + operator playbooks
|
|
|
|
The user-facing documentation lives at **<https://docs.healthlog.dev>** —
|
|
that's the canonical surface for self-hosting guides, integration
|
|
walkthroughs, AI-provider setup, and the doctor-report workflow.
|
|
|
|
The files in this directory are the internal operator playbooks, audit
|
|
notes, and machine-readable specs that ship alongside the source:
|
|
|
|
- [`api/`](./api/) — the OpenAPI 3.1 spec for the native-client subset
|
|
(iOS DTO codegen target). See [`api/README.md`](./api/README.md) for
|
|
the preview commands.
|
|
- [`ops/`](./ops/) — backup / restore + encryption-key-rotation
|
|
playbooks. These are the runbooks an operator reaches for during an
|
|
incident.
|
|
- [`self-hosting/`](./self-hosting/) — horizontal-scaling notes
|
|
(`HEALTHLOG_PROCESS_TYPE=web|worker|all`) and the deploy-pipeline
|
|
recipe. Routine install steps stay on `docs.healthlog.dev`.
|
|
- [`migration/`](./migration/) — release-by-release migration notes.
|
|
Read the entry for the version you're upgrading from.
|
|
- [`audit/`](./audit/) — per-release audit summaries archived for
|
|
forensic traceability.
|
|
- [`apple-store-connect-checklist.md`](./apple-store-connect-checklist.md)
|
|
— the iOS submission gate.
|
|
- [`doctor-report.md`](./doctor-report.md) — PDF generator design
|
|
notes.
|
|
- [`codex-protocol-spec.md`](./codex-protocol-spec.md) — Codex / ChatGPT
|
|
OAuth protocol reverse-engineering notes.
|
|
- [`ui-guidelines.md`](./ui-guidelines.md) — UI / a11y house style.
|
|
|
|
If you're a self-hoster looking to spin up an instance, start at
|
|
<https://docs.healthlog.dev> or jump to the [Quick Start in the project
|
|
README](../README.md#quick-start).
|