The one-time SQLite→PostgreSQL migration runs inside createTaskStoreForBackend before any HTTP server listens, so browsers saw "connection refused" and open tabs failed silently for minutes. Now: - CLI: a temporary holding server binds the dashboard port for the boot window, serving an auto-reloading "Database migration in progress" page and an /api/health payload with status "migrating" + structured progress; the port is handed off (awaited) to the real app.listen(). - Dashboard SPA: already-open tabs render the new MigrationInProgressBanner from the 15s health poll when status is "migrating". - Desktop: LocalRuntimeManager publishes migration progress on DesktopRuntimeStatus via the new core onMigrationProgress option; DesktopLaunchGate shows the live label and extends its 30s startup timeout while progress advances (2min stall cap), in both boot and first-run flows. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
33 lines
991 B
CSS
33 lines
991 B
CSS
/*
|
|
FNXC:MigrationHoldingPage 2026-07-17-12:40:
|
|
Mirrors the TestModeBanner shape (left accent bar + tinted background) but uses
|
|
the info color: a running migration is an informational transient state, not a
|
|
warning. The monospace progress line carries the migrator's structured label.
|
|
*/
|
|
.migration-in-progress-banner {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-sm);
|
|
margin-bottom: var(--space-md);
|
|
padding: var(--space-sm) var(--space-md);
|
|
border-radius: var(--radius-md);
|
|
border-inline-start: var(--space-xs) solid var(--color-info);
|
|
background: color-mix(in srgb, var(--color-info) 18%, transparent);
|
|
color: var(--text);
|
|
}
|
|
|
|
.migration-in-progress-banner-progress {
|
|
display: block;
|
|
font-family: var(--font-mono);
|
|
font-size: var(--font-size-sm);
|
|
color: var(--text-secondary);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
@media (max-width: 768px), (max-height: 480px) {
|
|
.migration-in-progress-banner {
|
|
padding: var(--space-sm);
|
|
align-items: flex-start;
|
|
}
|
|
}
|