gsxdsm
a1b7556c7b
FN-5924: throttle OAuth expiry alerts across restarts
Persist OAuth expiry alert state so repeated provider expiry warnings are suppressed for 12 hours across engine restarts.
- add a persisted OAuth alert state store under ~/.fusion/agent and share it between the expiry monitor and startup validity logger
- throttle repeated oauth-token-expired notifications and startup expiry warnings per provider for 12 hours, while clearing stale state when providers disappear or change
- cover persisted throttling, restart behavior, failure handling, and wiring updates in engine notification tests
- document the persisted 12-hour OAuth alert throttle and add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5924-oauth-alert-throttle.md | 5 +
docs/settings-reference.md | 4 +-
packages/engine/src/__tests__/project-engine-soft-delete-merge-abort.test.ts | 3 +
packages/engine/src/__tests__/project-engine.test.ts | 17 ++-
packages/engine/src/__tests__/reliability-interactions/soft-delete-in-flight-abort.test.ts | 3 +
packages/engine/src/auth-storage.ts | 6 +-
packages/engine/src/notification/__tests__/oauth-alert-state.test.ts | 72 ++++++++++
packages/engine/src/notification/__tests__/oauth-expiry-monitor.test.ts | 148 ++++++++++++++++---
packages/engine/src/notification/__tests__/oauth-validity-logger.test.ts | 159 ++++++++++++++++++---
packages/engine/src/notification/index.ts | 3 +
packages/engine/src/notification/oauth-alert-state.ts | 144 +++++++++++++++++++
packages/engine/src/notification/oauth-expiry-monitor.ts | 12 +-
packages/engine/src/notification/oauth-validity-logger.ts | 16 ++-
packages/engine/src/project-engine.ts | 13 +-
14 files changed, 554 insertions(+), 51 deletions(-)
Fusion-Task-Id: FN-5924
Fusion-Task-Lineage: 83255a25-40c7-44d4-8302-b068ae51250e
2026-06-02 23:13:16 -07:00
..
2026-04-25 09:09:31 -07:00
2026-06-02 18:58:48 -07:00
2026-05-31 20:50:09 -07:00
2026-05-31 21:08:41 -07:00
2026-05-31 23:24:53 -07:00
2026-06-01 01:42:19 -07:00
2026-06-01 13:20:55 -07:00
2026-06-01 13:03:20 -07:00
2026-06-01 13:33:56 -07:00
2026-06-01 14:07:46 -07:00
2026-06-01 16:55:56 -07:00
2026-06-01 17:15:11 -07:00
2026-06-01 17:52:12 -07:00
2026-06-01 01:30:34 -07:00
2026-06-01 01:37:25 -07:00
2026-06-01 04:47:19 -07:00
2026-06-01 05:15:14 -07:00
2026-06-01 03:23:10 -07:00
2026-06-01 05:39:01 -07:00
2026-06-01 07:53:56 -07:00
2026-06-01 09:05:18 -07:00
2026-06-01 08:13:36 -07:00
2026-06-01 19:40:28 -07:00
2026-06-01 16:24:21 -07:00
2026-06-01 20:19:37 -07:00
2026-06-01 18:52:28 -07:00
2026-06-01 23:39:20 -07:00
2026-06-01 23:01:26 -07:00
2026-06-01 23:37:03 -07:00
2026-06-02 00:07:07 -07:00
2026-06-01 23:55:20 -07:00
2026-06-02 07:46:38 -07:00
2026-06-02 09:02:48 -07:00
2026-06-02 10:07:08 -07:00
2026-06-02 10:29:34 -07:00
2026-06-02 12:42:04 -07:00
2026-06-02 14:41:41 -07:00
2026-06-02 17:58:41 -07:00
2026-06-02 18:15:14 -07:00
2026-06-02 15:33:31 -07:00
2026-06-02 18:11:26 -07:00
2026-06-02 18:43:29 -07:00
2026-06-02 21:54:14 -07:00
2026-06-02 18:56:36 -07:00
2026-06-02 23:13:16 -07:00
2026-06-01 08:23:02 -07:00
2026-06-02 14:47:51 -07:00
2026-06-01 21:55:10 -07:00
2026-06-02 18:29:53 -07:00
2026-06-02 09:20:31 -07:00