mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-24 16:54:43 +00:00
The boot-failure screenshot showed a progress bar because of two bugs:
1. waitForBootFailure matched on "Let's get you setup" (the onboarding
header that mounts from frame 1 during normal boot), so the screenshot
fired at ~86% progress while the Preparing component's progress bar was
still painted.
2. The Preparing component kept rendering the progress bar even after
boot.error was set — it just turned the bar red and appended the error
text below it.
Fixes:
- Preparing bails out (returns null) when boot.error is set, so
BootFailureOverlay (z-1400) owns the screen exclusively.
- applyDesktopBootProgress no longer clobbers a previously-set boot.error
when a late progress event arrives with error: null — failDesktopBoot is
terminal for the boot cycle.
- waitForBootFailure guards against progress bars being visible and matches
on actual failure signals (error toast, Retry/Repair buttons), not the
onboarding header.
- setupDeadBackend now accepts { fakeError: true } which injects
HERMES_DESKTOP_BOOT_FAKE_ERROR to trigger a real boot failure — the
previous dead-provider fixture never actually caused a boot failure
(hermes serve starts fine; the dead endpoint only matters at chat time).
- boot-failure.spec.ts updated to use { fakeError: true }.
Verified: e2e test passes with 0 progress bars in the DOM at screenshot
time (confirmed via DOM inspection), 16/16 vitest tests pass, typecheck
clean.
|
||
|---|---|---|
| .. | ||
| assistant-ui | ||
| chat | ||
| onboarding | ||
| pane-shell | ||
| particles | ||
| pet | ||
| ui | ||
| Backdrop.tsx | ||
| boot-failure-overlay.test.tsx | ||
| boot-failure-overlay.tsx | ||
| boot-failure-reauth.test.ts | ||
| boot-failure-reauth.ts | ||
| brand-mark.tsx | ||
| desktop-install-overlay.tsx | ||
| error-boundary.tsx | ||
| gateway-connecting-overlay.test.tsx | ||
| gateway-connecting-overlay.tsx | ||
| haptics-provider.tsx | ||
| idle-mount.test.tsx | ||
| idle-mount.tsx | ||
| language-switcher.test.tsx | ||
| language-switcher.tsx | ||
| model-picker.tsx | ||
| model-visibility-dialog.tsx | ||
| notifications.tsx | ||
| page-loader.tsx | ||
| prompt-overlays.test.tsx | ||
| prompt-overlays.tsx | ||
| remote-display-banner.tsx | ||
| session-picker.tsx | ||
| status-dot.tsx | ||