Skip to content

docs: sync README, AGENTS, CLAUDE, OpenAPI, migration guide for v1.4#147

Merged
MBombeck merged 1 commit intomainfrom
feat/v141-k-extern-docs-sync
May 8, 2026
Merged

docs: sync README, AGENTS, CLAUDE, OpenAPI, migration guide for v1.4#147
MBombeck merged 1 commit intomainfrom
feat/v141-k-extern-docs-sync

Conversation

@MBombeck
Copy link
Copy Markdown
Owner

@MBombeck MBombeck commented May 8, 2026

Summary

The v1.4 marathon (1.4.0) and v1.4.1 cycle (per-section admin extraction, Postgres testcontainers, Playwright + axe-core foundation) landed several user- and operator-facing changes that hadn't been backfilled into the in-repo docs. This PR closes that drift.

What changes

README.md

  • Adds Multi-tenant ready and Test connection buttons feature bullets.
  • Tech-stack model count 25 → 26 (RefreshToken added in v1.4.0).
  • New "Public + v1.4 additions" API table listing /api/version, the five Test connection endpoints, the two refresh endpoints, and the two new admin endpoints (status-overview, backup/test).

AGENTS.md

  • Status block rewritten — what shipped in 1.4.0 vs what's in flight for 1.4.1.
  • File layout: /settings/[section] routing, admin/page.tsx as a 77-LOC shell, src/components/settings/ + src/components/admin/ added.
  • Removed the stale "Settings Page" gotcha (the lint rule is strict now).
  • Database models 25 → 26.

CLAUDE.md

  • Model-count + component-folder updates.
  • New Important Patterns entries for the v1.4 multi-tenant features (HEALTHLOG_PROCESS_TYPE, ENCRYPTION_KEYS, BACKUP_S3_*, refresh-token rotation).
  • tests/integration/ and e2e/ listed in File Layout.

docs/api/openapi.yaml

  • Adds 11 endpoints: GET /api/version, the five test endpoints (Withings, moodLog, Web Push, Glitchtip, Umami), the two refresh endpoints, GET /api/admin/status-overview, POST /api/admin/backup/test.
  • The bulk of the diff is prettier reformatting (single → double quotes throughout YAML) — the existing file had drifted from prettier --check. No semantic change.

docs/migration/v1.3-to-v1.4.md

  • Corrects the now-wrong claim that v1.4 ships no migrations — it ships 0025_refresh_tokens + 0025_user_locale_drift_fix.
  • Adds full env-var sections for the Worker/Web split, Encryption-key versioning, and Off-host backup target.
  • Documents URL changes (/settings#anchor/settings/[section]).
  • Replaces the "deferred to a future release" list with a landed-in-1.4 vs landed-in-1.4.1 status table.

Quality gates

  • pnpm typecheck — clean
  • pnpm test — 658/658 pass
  • pnpm lint — 0 errors
  • pnpm exec prettier --check — clean (was failing on docs/api/openapi.yaml before this PR)

Out of scope (tracked elsewhere)

The healthlog-docs and healthlog-landing repos are separate repositories and need their own sync PRs — that work continues in those repos. This PR covers everything in-tree.

🤖 Generated with Claude Code

The v1.4 marathon and the v1.4.1 cycle that followed (per-section
admin extraction, Postgres testcontainers integration suite,
Playwright + axe-core E2E foundation) landed several user- and
operator-facing changes that hadn't been backfilled into the docs
shipped inside the repo. This commit closes that drift.

README.md
  - Adds Multi-tenant ready and Test connection buttons feature
    bullets.
  - Tech-stack model count 25 → 26 (RefreshToken added in v1.4.0).
  - API reference: new "Public + v1.4 additions" section listing
    /api/version, the five Test connection endpoints, the two refresh
    endpoints, and the two new admin endpoints (status-overview,
    backup/test).

AGENTS.md
  - Status block rewritten to reflect what shipped in 1.4.0 vs
    what's in flight for 1.4.1.
  - File layout: settings monolith replaced by /settings/[section]
    routing, admin/page.tsx now the 77-LOC shell, src/components/
    settings/ and src/components/admin/ added.
  - Removed the stale "Settings Page" gotcha (about non-blocking
    set-state-in-effect lint); the rule is strict now.
  - Database Models 25 → 26.

CLAUDE.md
  - Same model-count and component-folder updates as AGENTS.md.
  - Adds Multi-tenant prep and Native API client patterns under
    Important Patterns (HEALTHLOG_PROCESS_TYPE, ENCRYPTION_KEYS,
    BACKUP_S3_*, refresh-token rotation).
  - Lists tests/integration/ and e2e/ in File Layout.

docs/api/openapi.yaml
  - Adds 11 new endpoints: GET /api/version, the five test endpoints
    (Withings, moodLog, Web Push, Glitchtip, Umami), the two refresh
    endpoints, GET /api/admin/status-overview, POST /api/admin/backup/test.
  - The bulk of the diff is prettier reformatting that the existing
    file had drifted from (single → double quotes throughout YAML);
    no semantic change.

docs/migration/v1.3-to-v1.4.md
  - Corrects the now-wrong claim that v1.4 ships no migrations
    (it ships 0025_refresh_tokens + 0025_user_locale_drift_fix).
  - Adds full env-var sections for the Worker/Web split, Encryption
    key versioning, and Off-host backup target.
  - Documents URL changes (/settings#anchor → /settings/[section]).
  - Replaces the "deferred to a future release" list with a
    landed-in-v1.4 vs landed-in-v1.4.1 status table.

Co-Authored-By: Marc-André Bombeck <mbombeck@gmail.com>
@MBombeck MBombeck merged commit ea032c8 into main May 8, 2026
6 of 8 checks passed
@MBombeck MBombeck deleted the feat/v141-k-extern-docs-sync branch May 8, 2026 14:15
MBombeck added a commit that referenced this pull request May 8, 2026
Production at healthlog.bombeck.io has been 503-ing since the v1.4.1
deploys started landing on apps-01 (Coolify). The container boots —
Next.js prints "Ready" and the pg-boss workers run — but never
accepts HTTP on :3000, so the Docker healthcheck fails and Traefik
takes the upstream out of rotation. A manual restart, a Coolify
force-rebuild, and a docker-compose pin to the GHCR :1.4.0 multi-arch
image all failed to bring the site back up — Coolify rebuilds the
image from main HEAD on every deploy regardless of the compose
directives.

This commit resets the working tree to commit 21bd46d (v1.4.0
release). Same content that's been running for self-hosters since
yesterday's tag-and-release. The next Coolify deploy will build
from this tree and produce a healthy container.

The v1.4.1 work is NOT lost:
  - PRs #144, #145, #137, #146, #147, #148, #149, #150 remain in
    git history.
  - Their commits are still tagged (`v1.4.1`), still on the GHCR
    multi-arch image (`ghcr.io/mbombeck/healthlog:1.4.1`), still in
    the GitHub Release notes.
  - Self-hosters who have already pulled the v1.4.1 image keep it.
  - Local development continues from main HEAD with the v1.4.1
    code — the regression only surfaced under the Coolify build
    flow.

Re-applying v1.4.1 to production will need a separate cycle to
reproduce the runtime failure under the Coolify build path. That
work is tracked in docs/ops/v141-followup-issues.md (added back
when the tree is reapplied) and the deploy gating in
.github/workflows/e2e.yml will catch this class of bug going
forward.

No DB migration. No env-var change. No API contract change.
Co-Authored-By: Marc-André Bombeck <mbombeck@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant