Show readiness reason first and record live dashboard acceptance
Demo images / Build & push demo images (push) Failing after 45s

This commit is contained in:
archipelago
2026-09-30 13:46:16 -04:00
parent c1e20a71ae
commit 1724ea05d1
3 changed files with 39 additions and 10 deletions
@@ -167,7 +167,7 @@ describe('appsConfig service filtering', () => {
pkg.health = null
expect(isAppReadyForLaunch(pkg)).toBe(false)
expect(canLaunch(pkg)).toBe(false)
expect(launchBlockedReason(pkg.manifest.id, pkg)).toBe('Waiting for GitWorkshop’s web interface…')
expect(launchBlockedReason(pkg.manifest.id, pkg)).toBe('Web UI not ready: GitWorkshop')
pkg.health = 'healthy'
expect(canLaunch(pkg)).toBe(true)
})
@@ -214,7 +214,7 @@ describe('HTTP readiness independent of container health', () => {
pkg.health = 'healthy'
expect(canLaunch(pkg)).toBe(false)
expect(isAppReadyForLaunch(pkg)).toBe(false)
expect(launchBlockedReason(id, pkg)).toBe(`Waiting for ${resolveAppTitle(id, pkg)}’s web interface…`)
expect(launchBlockedReason(id, pkg)).toBe(`Web UI not ready: ${resolveAppTitle(id, pkg)}`)
pkg['ui-ready'] = true
expect(isAppReadyForLaunch(pkg)).toBe(true)
}
+2 -2
View File
@@ -308,7 +308,7 @@ export function launchBlockedReason(id: string, pkg?: PackageDataEntry | null):
if (pkg && isWebsitePackage(appId, pkg)) return ''
if (pkg?.['ui-ready'] === false && !isServicePackage(appId, pkg)) {
if (pkg.state === PackageState.Stopped || pkg.state === PackageState.Exited) return 'App is stopped. Start it to open it.'
return `Waiting for ${title}’s web interface…`
return `Web UI not ready: ${title}`
}
if (
(appId === 'fedimint' || appId === 'fedimintd') &&
@@ -317,7 +317,7 @@ export function launchBlockedReason(id: string, pkg?: PackageDataEntry | null):
return 'Guardian opens a wait page until Bitcoin finishes initial sync.'
}
if (pkg && pkg.state === PackageState.Running && !isAppReadyForLaunch(pkg)) {
return `Waiting for ${title}’s web interface…`
return `Web UI not ready: ${title}`
}
return ''
}