hephaestus/docs
Erich Blume 11aa25c9f4
All checks were successful
Build / validate (pull_request) Successful in 6m11s
feat(heph-tui,hephd): surface sync health (last-sync age, conflicts, auth failure)
A spoke could be silently failing to sync (expired token → 401, or hub
unreachable) with the only signal buried in the daemon log. Now:

- hephd tracks SyncHealth (last attempt/success time, last error, auth-failure
  flag) from the background sync loop and sync.now, classifying a 401 as an auth
  failure. sync.status returns it plus the pending merge-conflict count.
- heph-tui shows a live status-line indicator (spoke only): '⟳ <age>' since the
  last good sync, red '⚠ auth' when re-login is needed, '⚠ offline' when the hub
  is unreachable, and '⚠ N conflicts' when conflicts are pending. The event loop
  polls on a 2s tick so the age advances and failures appear while idle.
- docs: recommended Authentik access/refresh token validity to stop frequent
  re-logins (with the iOS PWA localStorage-eviction caveat).

Closes the 'Add hub connection status to heph-tui' and 'Spoke sync health:
surface unhealthy state instead of silent 401 spam' backlog items.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 10:19:11 -07:00
..
changelog.d feat(heph-tui,hephd): surface sync health (last-sync age, conflicts, auth failure) 2026-06-06 10:19:11 -07:00
explanation doc(explanation): hub+spoke data-evolution / migration rules 2026-06-05 17:31:11 -07:00
how-to feat(heph-tui,hephd): surface sync health (last-sync age, conflicts, auth failure) 2026-06-06 10:19:11 -07:00
reference docs: release bumps Cargo.toml/lock on a tag-only commit; --version reports X.Y.Z (sha) 2026-06-04 09:37:14 -07:00
tutorials Set up hephaestus from template and add design + tech spec 2026-05-31 09:37:28 -07:00
index.md Initial commit 2026-05-31 06:13:36 -07:00
quartz.config.ts Set up hephaestus from template and add design + tech spec 2026-05-31 09:37:28 -07:00
quartz.layout.ts Initial commit 2026-05-31 06:13:36 -07:00