Files
sim/apps
Waleed 040f40cd61 fix(connectors): stop rendering running and crashed syncs as successes (#6910)
* fix(connectors): stop rendering running and crashed syncs as successes

The sync-history row derived its state from status literals the engine never
writes — 'running', 'syncing', 'error' are connector statuses, not sync-log
statuses. The in-progress branch was therefore false for every row that will
ever exist, so a live sync rendered as a green success tick for its whole
duration and a killed run left a permanent fake success reading "No changes".

- Derive the row state from the three statuses the engine actually writes
- Narrow the sync-log status contract from z.string() to an enum, and make the
  render switch exhaustive, so producer drift fails response validation and
  consumer drift fails the build
- Add an interrupted state for a started row older than the stale-lock TTL: it
  is a crashed run, not a live one, and rendering it as a permanent spinner
  would trade one false signal for another

* docs(connectors): record why the stale TTL is a hard ceiling for the interrupted state
2026-08-20 17:34:03 -07:00
..