Skip to content

Feat/settings page#4

Merged
Fyfar merged 3 commits into
mainfrom
feat/settings-page
Jun 28, 2026
Merged

Feat/settings page#4
Fyfar merged 3 commits into
mainfrom
feat/settings-page

Conversation

@Fyfar

@Fyfar Fyfar commented Jun 28, 2026

Copy link
Copy Markdown
Owner

No description provided.

Fyfar added 3 commits June 28, 2026 12:16
…nshot

- next.config.ts: pin a content-derived generateBuildId. Next's default buildId
  is random per build and is baked into index.html + the _next/static/<id>/ path,
  both precached — so the service worker's content-version changed on every build
  (even docs-only commits or CI re-runs), prompting every client to "Reload" with
  nothing actually to update. Hashing the build inputs makes the SW version stable
  across rebuilds of identical source while still changing on real app changes;
  unlike a constant id it keeps online users safe (new content → new asset folder).
- DataLog: render measurements newest-first (latest on top, oldest at the bottom);
  display-only — the underlying dataset, chart, stats, and CSV stay chronological.
- README: add interface screenshot near the top + expand the PWA install/offline
  section (no native .exe/.dmg needed).
- bump version 1.0.4 → 1.0.5 (single bump for the session); realign stale
  package-lock version.
Add a third sidebar view, Settings, persisted to localStorage
(lib/settings.ts, version-tagged, per-field validation, SSR-safe).
Each setting has a keyboard-accessible help tooltip; defaults reproduce
prior behavior so the change is non-breaking.

Settings:
- Stable readings to confirm (>=2): stability is now N consecutive equal
  readings (stableRunRef) instead of a fixed single-prev compare.
- Trigger hysteresis (%): replaces the hardcoded RELEASE_RATIO=0.9;
  release = threshold * (1 - pct/100).
- Keep log on mode change: splits flushSession into a full reset vs.
  resetSessionDerived (keeps recorded rows, resets the single-unit
  chart/stats) for the preserve path.

No-data warning:
- Detect connected-but-silent (status connected, no reading for ~3s) via
  a status-keyed poll over lastDataAtRef.
- Whole-page dismissible NoDataWarning overlay (default on); re-arms per
  outage. overlayVisible gates both the overlay and the audio.
- Optional audio alert (default off) via a Web Audio beeper (lib/beep.ts,
  no asset); sounds only while the overlay is visible.

Extract the shared Toggle from Controls into components/Toggle.tsx.
Bump version 1.0.5 -> 1.1.0.
@Fyfar Fyfar merged commit 51e6c00 into main Jun 28, 2026
2 checks passed
@Fyfar Fyfar deleted the feat/settings-page branch June 28, 2026 11:38
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