gsxdsm
4f0d89e106
FN-8419: safeguard project partition reconciliation
Safely reconcile fallback and registered project partitions during dashboard startup.
- Merge duplicate partition rows with fallback data taking precedence.
- Validate unique indexes and foreign-key dependencies before rekeying.
- Bind safely after failed promotion and stop non-retryable dashboard failures.
- Add PostgreSQL reconciliation and supervisor coverage.
Files changed:
.changeset/fn-8419-rekey-partition-merge.md | 7 +
packages/cli/src/bin.ts | 5 +-
.../commands/__tests__/dashboard-supervise.test.ts | 16 +-
packages/cli/src/commands/dashboard.ts | 41 ++-
.../src/__tests__/postgres/schema-applier.test.ts | 178 +++++++++++-
packages/core/src/async-secrets-store.ts | 9 +-
packages/core/src/index.ts | 8 +-
packages/core/src/postgres-errors.ts | 9 +
packages/core/src/postgres/index.ts | 5 +
packages/core/src/postgres/migration-stamping.ts | 318 ++++++++++++++++-----
packages/core/src/postgres/startup-factory.ts | 49 +++-
packages/core/src/process-supervisor.ts | 3 +
packages/core/src/task-store/async-persistence.ts | 7 +-
13 files changed, 546 insertions(+), 109 deletions(-)
Fusion-Task-Id: FN-8419
Fusion-Task-Lineage: bfc54e40-a31e-4b61-b6ae-01eb147efde1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 01:54:42 -07:00
..
2026-07-20 01:54:42 -07:00
2026-07-12 14:42:09 -07:00
2026-07-14 23:18:55 -07:00
2026-07-14 23:18:55 -07:00
2026-07-19 13:47:38 -07:00
2026-05-04 23:47:26 -07:00
2026-07-16 16:34:09 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 23:18:55 -07:00
2026-04-28 18:23:21 -07:00
2026-04-23 15:53:47 -07:00
2026-04-23 23:02:36 -07:00
2026-07-07 22:04:51 -07:00
2026-07-19 16:52:02 -07:00
2026-05-26 21:57:31 -07:00
2026-07-20 01:54:42 -07:00
2026-07-15 00:27:59 -07:00
2026-07-19 16:52:02 -07:00
2026-05-01 12:21:52 -07:00
2026-07-14 23:18:55 -07:00
2026-07-14 23:18:55 -07:00
2026-07-09 19:58:06 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 23:18:55 -07:00
2026-05-04 23:59:52 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 23:18:55 -07:00
2026-07-17 20:09:56 -07:00
2026-07-14 23:18:55 -07:00
2026-04-28 23:23:34 -07:00
2026-07-14 23:18:55 -07:00
2026-07-17 09:47:40 -07:00
2026-07-18 11:49:11 -07:00
2026-07-18 11:49:11 -07:00
2026-06-01 19:40:28 -07:00
2026-07-12 21:27:38 -07:00
2026-06-14 15:29:35 -07:00
2026-07-17 11:22:21 -07:00
2026-04-10 12:47:46 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 23:18:55 -07:00
2026-07-07 22:04:51 -07:00
2026-06-11 09:51:49 -07:00
2026-07-14 23:18:55 -07:00
2026-04-26 00:00:49 -07:00
2026-07-19 16:52:02 -07:00
2026-07-14 23:18:55 -07:00
2026-07-14 23:18:55 -07:00
2026-06-04 23:41:30 -07:00
2026-04-24 08:55:02 -07:00
2026-04-27 23:27:27 -07:00
2026-07-16 18:13:37 -07:00
2026-07-17 17:28:09 -07:00
2026-07-18 17:53:20 -07:00
2026-07-19 13:34:25 -07:00
2026-07-14 23:18:55 -07:00