Skip to content

(5/9) Show persisted sync health and stale-data warnings - #89

Draft
AntonNiklasson wants to merge 1 commit into
an/feedback-loops/4/browser-checksfrom
an/feedback-loops/5/sync-health
Draft

AntonNiklasson wants to merge 1 commit into
an/feedback-loops/4/browser-checksfrom
an/feedback-loops/5/sync-health

Conversation

@AntonNiklasson

@AntonNiklasson AntonNiklasson commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

Persist per-kind sync outcomes, last attempt, failure and retry details in the engine, and expose them through a thin API adapter. A compact expandable row distinguishes current, waiting, stale, failed and paused data. Migrate v3 cache files additively, preserving snapshots. Late outcomes from replaced identities cannot overwrite their health or rate budget.

Validation

Local stack head 1d1d925 passed:

  • pnpm typecheck, pnpm test (171 unit/integration tests)
  • pnpm lint (including four boundary checks), pnpm fmt:check
  • pnpm test:e2e (five Chromium scenarios)
  • pnpm test:desktop (packaged macOS arm64 launch, restart, SQLite and shutdown)

These are local results; GitHub checks are reported separately.

How to review

Start with sync/engine.ts and cache/store.ts, then web/components/SyncHealth.tsx. Tests cover migration preservation, identity guards, outage/recovery and stale age when unchanged health responses are polled.

Visuals

Healthy, upstream-outage and recovered screenshots are available in the browser report from layer 8.

Related

Part of #84. Prerequisite: #83.

This PR is part of a stack; review and merge from the bottom upward. Each PR targets the preceding branch.

  1. #85: Use the sync package for all desktop GitHub access
  2. #86: Add a deterministic GitHub simulator
  3. #87: Run an isolated interactive status board
  4. #88: Verify renderer polling through the real sync engine
  5. #89: Show persisted sync health and stale-data warnings ← This PR
  6. #90: Exercise conflict, review, rate-limit and partial-outage states
  7. #91: Guard clients against bypassing the public sync API
  8. #92: Attach named visual states to browser reports
  9. #93: Launch and restart the packaged Electron app in isolation

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