gsxdsm
e4a032d9d9
FN-8399: expose incomplete migration status on dashboard
Expose durable SQLite-to-PostgreSQL migration state through dashboard health and banners.
- Read per-project running and failed migration markers from PostgreSQL
- Surface degraded migration state in health endpoints and dashboard banners
- Preserve migration context across CLI and runtime startup paths
- Document the recovery workflow and add a patch changeset
Files changed:
.changeset/FN-8399-migration-status-dashboard.md | 7 +++
docs/storage.md | 5 ++
packages/cli/src/commands/daemon.ts | 19 +++++++
packages/cli/src/commands/desktop.ts | 6 +++
packages/cli/src/commands/serve.ts | 20 +++++++-
packages/core/src/index.ts | 2 +
packages/core/src/postgres/index.ts | 2 +
packages/core/src/postgres/sqlite-migrator.ts | 43 ++++++++++++++++
packages/dashboard/app/api/health.ts | 7 ++-
.../app/components/dashboard/DashboardBanners.tsx | 18 ++++++-
.../dashboard/__tests__/DashboardBanners.test.tsx | 12 ++++-
.../__tests__/dashboard-postgres-health.test.ts | 45 +++++++++++++++++
.../dashboard/src/dashboard-postgres-health.ts | 58 ++++++++++++++++++++++
packages/dashboard/src/server.ts | 27 ++++++++--
packages/engine/src/project-engine-manager.ts | 4 ++
packages/engine/src/project-runtime.ts | 9 +++-
packages/engine/src/runtimes/in-process-runtime.ts | 1 +
17 files changed, 275 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8399
Fusion-Task-Lineage: e196d6c4-ea9a-48ba-bedc-9e6fa44c33d3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 16:52:02 -07:00
..
2026-07-19 00:10:02 -07:00
2026-07-19 15:20:39 -07:00
2026-07-17 12:00:26 -07:00
2026-07-19 16:52:02 -07:00
2026-07-19 15:05:31 -07:00
2026-07-19 11:50:52 -07:00
2026-07-15 10:36:10 -07:00
2026-07-14 08:16:42 -07:00
2026-05-06 21:36:31 -07:00
2026-06-07 18:51:46 -07:00
2026-05-06 21:36:31 -07:00
2026-07-15 16:17:37 -07:00
2026-07-04 10:42:21 -07:00
2026-05-14 13:59:10 -07:00
2026-07-09 19:58:05 -07:00
2026-07-16 19:35:37 -07:00
2026-05-10 15:34:58 -07:00
2026-07-19 13:47:38 -07:00
2026-07-17 11:22:21 -07:00
2026-07-13 19:07:58 -07:00
2026-06-02 18:46:33 -07:00
2026-07-16 03:23:25 -07:00
2026-07-01 16:19:03 -07:00
2026-07-19 13:34:25 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-16 17:05:29 -07:00
2026-07-14 08:23:11 -07:00
2026-07-16 16:01:29 -07:00
2026-07-16 00:30:59 -07:00
2026-07-14 08:16:42 -07:00
2026-07-14 22:13:30 -07:00
2026-07-14 08:16:42 -07:00
2026-07-14 22:13:30 -07:00
2026-07-16 05:33:55 -07:00
2026-07-16 02:35:29 -07:00
2026-07-18 11:34:42 -07:00
2026-07-16 00:30:59 -07:00
2026-07-16 16:01:29 -07:00
2026-07-13 19:07:58 -07:00
2026-07-18 13:18:08 -07:00
2026-07-18 13:18:08 -07:00
2026-07-16 00:30:59 -07:00
2026-07-14 22:13:30 -07:00
2026-07-18 03:48:38 -07:00
2026-07-18 16:18:15 -07:00
2026-07-18 16:18:15 -07:00
2026-07-13 19:07:58 -07:00
2026-07-16 16:01:29 -07:00
2026-07-14 12:41:10 -07:00
2026-07-13 19:07:58 -07:00
2026-07-17 01:23:32 -07:00
2026-07-14 13:36:08 -07:00
2026-07-18 11:34:42 -07:00
2026-07-12 19:43:41 -07:00
2026-06-21 13:32:19 -07:00
2026-07-16 16:34:09 -07:00
2026-07-16 16:34:09 -07:00
2026-05-14 15:49:55 -07:00
2026-06-07 20:43:44 -07:00
2026-06-03 13:51:13 -07:00
2026-06-03 09:23:44 -07:00
2026-07-05 11:31:48 -07:00
2026-06-29 14:00:32 -07:00
2026-06-29 18:41:43 -07:00
2026-07-04 00:12:39 -07:00
2026-07-05 16:58:42 -07:00
2026-07-01 16:43:08 -07:00
2026-06-29 11:07:11 -07:00
2026-06-29 12:23:20 -07:00
2026-06-30 13:12:27 -07:00
2026-06-29 12:23:20 -07:00
2026-07-05 16:58:42 -07:00
2026-07-05 16:58:42 -07:00
2026-06-30 12:25:43 -07:00
2026-06-08 23:38:32 -07:00
2026-06-26 00:26:03 -07:00
2026-06-29 11:24:41 -07:00
2026-07-16 08:33:57 -07:00
2026-07-19 11:50:52 -07:00
2026-05-13 06:29:35 -07:00
2026-07-18 00:08:56 -07:00
2026-07-14 22:13:30 -07:00
2026-07-16 02:35:29 -07:00
2026-07-16 02:35:29 -07:00
2026-07-16 00:30:59 -07:00
2026-06-04 22:52:20 -07:00
2026-06-05 00:57:49 -07:00
2026-06-05 13:59:50 -07:00
2026-07-14 08:16:42 -07:00
2026-07-16 21:42:44 -07:00
2026-07-18 11:34:42 -07:00
2026-05-27 21:31:12 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-12 10:04:29 -07:00
2026-05-19 03:21:16 -07:00
2026-07-18 12:32:07 -07:00
2026-06-26 14:55:01 -07:00
2026-05-12 18:33:13 -07:00
2026-06-04 08:00:33 -07:00
2026-07-18 15:35:26 -07:00
2026-07-18 21:21:55 -07:00
2026-05-18 08:02:21 -07:00
2026-06-27 12:20:42 -07:00
2026-07-14 08:16:42 -07:00
2026-05-06 11:09:05 -07:00
2026-05-08 12:05:46 -07:00
2026-05-14 05:35:12 -07:00
2026-07-14 08:16:42 -07:00
2026-07-14 08:16:42 -07:00
2026-07-13 19:07:58 -07:00
2026-05-14 00:12:03 -07:00
2026-06-26 08:40:59 -07:00
2026-05-20 14:28:45 -07:00
2026-06-25 05:08:04 -07:00
2026-05-23 04:18:55 -07:00
2026-07-16 16:01:29 -07:00
2026-06-12 09:24:02 -07:00
2026-07-14 22:13:30 -07:00
2026-05-28 22:59:18 -07:00
2026-07-17 23:56:34 -07:00
2026-07-18 00:33:14 -07:00
2026-07-17 23:56:34 -07:00
2026-07-13 19:07:58 -07:00
2026-05-10 08:28:07 -07:00
2026-07-02 19:01:09 -07:00
2026-07-13 19:07:58 -07:00
2026-07-02 11:38:34 -07:00
2026-07-16 16:34:09 -07:00
2026-07-18 11:34:42 -07:00
2026-05-30 22:53:24 -07:00
2026-05-28 10:32:16 -07:00
2026-05-28 10:32:16 -07:00
2026-07-09 21:36:14 -07:00
2026-07-18 13:18:08 -07:00
2026-06-28 16:51:49 -07:00
2026-07-16 14:31:59 -07:00
2026-07-15 10:36:10 -07:00
2026-07-19 16:44:40 -07:00
2026-07-19 16:52:02 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-05-04 23:47:26 -07:00
2026-07-19 11:50:52 -07:00
2026-07-15 10:36:10 -07:00
2026-07-16 20:37:05 -07:00
2026-05-17 22:45:29 -07:00
2026-06-25 21:01:15 -07:00
2026-06-26 11:56:12 -07:00
2026-07-11 17:16:49 -07:00
2026-05-09 14:41:58 -07:00
2026-06-26 16:14:44 -07:00
2026-05-05 06:32:33 -07:00
2026-05-11 17:46:42 -07:00
2026-05-10 19:13:05 -07:00
2026-07-13 19:07:58 -07:00
2026-07-18 03:48:38 -07:00
2026-05-23 04:18:55 -07:00
2026-07-14 22:13:30 -07:00
2026-07-18 08:01:44 -07:00
2026-07-18 16:18:15 -07:00
2026-07-18 19:18:57 -07:00
2026-05-23 03:09:00 -07:00
2026-07-16 19:48:11 -07:00
2026-07-16 21:07:06 -07:00
2026-06-15 19:57:20 -07:00
2026-06-11 20:53:01 -07:00
2026-06-14 15:29:35 -07:00
2026-06-25 03:44:22 -07:00
2026-07-16 19:36:02 -07:00
2026-06-13 02:54:57 -07:00
2026-07-17 09:54:44 -07:00
2026-07-07 22:06:20 -07:00
2026-06-13 23:20:06 -07:00
2026-07-09 23:12:02 -07:00
2026-07-18 11:49:11 -07:00
2026-07-15 02:19:19 -07:00
2026-07-04 19:29:47 +00:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 22:13:30 -07:00
2026-07-15 21:33:11 -07:00
2026-07-04 13:51:09 -07:00
2026-07-14 22:13:30 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-11 22:16:48 -07:00
2026-07-13 19:07:58 -07:00
2026-06-04 01:43:26 -07:00
2026-07-14 22:13:30 -07:00
2026-07-10 07:46:52 -07:00
2026-05-07 02:15:14 -07:00
2026-07-12 11:52:24 -07:00
2026-07-15 02:16:58 -07:00
2026-07-15 00:27:59 -07:00
2026-06-15 19:44:17 -07:00
2026-07-12 14:42:09 -07:00
2026-07-13 19:07:58 -07:00
2026-07-16 16:01:29 -07:00
2026-05-14 13:59:10 -07:00
2026-07-14 22:13:30 -07:00
2026-07-15 18:07:37 -07:00
2026-06-05 03:56:29 -07:00
2026-07-18 16:18:15 -07:00
2026-05-12 17:04:32 -07:00
2026-07-13 19:07:58 -07:00
2026-07-18 16:18:15 -07:00
2026-07-15 20:53:05 -07:00
2026-05-15 12:51:41 -07:00
2026-07-19 11:50:52 -07:00
2026-07-18 11:34:42 -07:00
2026-05-19 17:19:02 -07:00
2026-05-15 12:02:44 -07:00
2026-05-15 22:56:31 -07:00
2026-05-15 12:02:44 -07:00
2026-05-17 00:21:12 -07:00
2026-05-16 21:00:48 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-05-17 07:26:21 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 22:13:30 -07:00
2026-07-19 14:51:49 -07:00
2026-07-16 15:37:42 -07:00
2026-07-15 13:32:33 -07:00
2026-06-26 00:28:31 -07:00
2026-07-15 10:38:04 -07:00
2026-07-16 20:37:05 -07:00
2026-07-14 22:13:30 -07:00
2026-07-14 22:13:30 -07:00
2026-05-20 14:29:07 -07:00
2026-05-20 14:29:07 -07:00
2026-05-13 06:29:34 -07:00
2026-06-30 07:31:59 -07:00
2026-07-19 15:05:31 -07:00
2026-07-19 15:20:39 -07:00
2026-07-18 19:31:30 -07:00
2026-06-21 13:32:19 -07:00
2026-06-04 08:00:33 -07:00
2026-05-15 21:08:04 -07:00
2026-06-04 13:19:55 -07:00
2026-06-28 01:43:08 -07:00
2026-05-19 05:16:37 -07:00
2026-06-19 06:51:57 -07:00
2026-06-18 03:24:57 -07:00
2026-07-19 11:50:52 -07:00
2026-07-18 14:54:54 -07:00
2026-06-24 10:45:21 -07:00
2026-07-15 10:36:10 -07:00
2026-05-18 15:01:20 -07:00
2026-07-13 19:07:58 -07:00
2026-07-16 00:30:59 -07:00
2026-07-14 08:16:42 -07:00
2026-06-04 02:13:48 -07:00
2026-06-04 00:19:57 -07:00
2026-06-04 00:19:58 -07:00
2026-06-04 00:19:58 -07:00
2026-07-19 16:44:40 -07:00
2026-07-17 10:53:19 -07:00
2026-06-03 13:48:02 -07:00
2026-07-13 19:07:58 -07:00
2026-07-19 11:50:52 -07:00
2026-06-23 08:21:10 -07:00
2026-07-14 13:36:08 -07:00
2026-06-07 21:19:10 -07:00
2026-06-07 20:43:44 -07:00
2026-07-19 11:50:52 -07:00
2026-07-16 01:32:23 -07:00
2026-07-19 11:50:52 -07:00
2026-07-19 11:50:52 -07:00
2026-07-01 16:43:08 -07:00
2026-06-29 12:47:21 -07:00
2026-06-04 02:13:48 -07:00
2026-06-21 21:23:41 -07:00
2026-06-04 12:03:29 -07:00
2026-07-16 01:32:23 -07:00
2026-07-16 01:32:23 -07:00
2026-07-19 11:50:52 -07:00
2026-07-10 01:49:15 -07:00
2026-07-19 11:50:52 -07:00
2026-06-04 00:41:12 -07:00
2026-07-16 15:27:03 -07:00
2026-05-16 07:16:05 -07:00
2026-06-13 21:17:20 -07:00