Notechondria

Version: 0.1.19 Build Date: 2026-04-14T22:00

What's Changed

Splash screen — version display

  • Bottom-left of the splash screen now shows the running app version as v<X.Y.Z> in dim small text (matches the right-side title/loading block). Implemented in splash_screen.dart for all three apps via a new _kAppVersion constant in each app's core/helpers.dart.
    • Build pipeline reads ./VERSION and passes --dart-define=APP_VERSION=<value> to each flutter build web step in .github/workflows/frontend-pages.yml, so Pages builds report the same version as the Docker image tag.
    • Local flutter run falls back to the constant baked into helpers.dart, which tracks ./VERSION at the time of writing. Bumping ./VERSION and the constant together is the contract.

Settings — App preferences API base URL validation

  • Tracking previously-shipped 0.1.18 work for completeness: the Settings save flow now calls HttpNotechondriaClient.verifyHandshake against the candidate URL before persisting an API base URL change, in all three apps. The save aborts with an ActionFeedback describing the mismatch when the handshake fails — a typo or a foreign host can no longer silently strand the user offline.

Docs — deployment overview

  • New top-level docs/deployment/overview.md organizes the six deploy paths in the order requested:
    1. Docker-compose [Full stack]
    2. GitHub Pages [Frontend]
    3. Cloudflare R2 [CDN]
    4. Render free-tier [Backend]
    5. Northflank free-tier [Backend]
    6. Railway [Backend] (untested — paper recipe only)
  • Each section links into the per-target detailed runbook and lists the env vars / commands needed.
  • docs/SUMMARY.md re-indexes the Deployment section with the new overview at the top.

Files Changed

Splash + version display

  • VERSION — bumped 0.1.18 → 0.1.19.
  • frontend/editor_app/lib/core/helpers.dart — added _kAppVersion constant.
  • frontend/editor_app/lib/components/splash_screen.dart — added bottom-left Positioned text widget showing v$_kAppVersion.
  • frontend/planner_app/lib/core/helpers.dart — same constant.
  • frontend/planner_app/lib/components/splash_screen.dart — same splash widget.
  • frontend/portal_app/lib/core/helpers.dart — same constant.
  • frontend/portal_app/lib/components/splash_screen.dart — same splash widget.
  • .github/workflows/frontend-pages.yml — added a step that reads ./VERSION into steps.appversion.outputs.value, then passes --dart-define=APP_VERSION=... to each flutter build web.

Docs

  • docs/deployment/overview.md — new file (top-level deploy index).
  • docs/SUMMARY.md — re-indexed Deployment section.
  • docs/versions/0.1.19.md — this file.

Notes

  • _kAppVersion is intentionally not read by the API client or anything load-bearing — it's display-only. Don't gate handshake or capability negotiation on it; use the backend version field returned by /api/v1/handshake/ instead.
  • The Railway recipe in overview.md is paper-only; the maintainer is out of free-tier credits. PRs welcome with verified notes.