Skip to content

fix(wizard): bump hermes-webui to bundle 3 onboarding fixes from #122 - #123

Merged
roadhero merged 1 commit into
mainfrom
fix/wizard-bundle-122
May 6, 2026
Merged

roadhero merged 1 commit into
mainfrom
fix/wizard-bundle-122

Conversation

@roadhero

@roadhero roadhero commented May 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps forks/hermes-webui to d2a7b94 to consume three onboarding fixes that landed on the fork's master in response to #122:

Fork PR Fix
hermes-webui#6 Exempt /api/ollama/ and /api/local-fallback/ from the onboarding redirect middleware so the wizard's local-model fast-path probes return JSON instead of HTML
hermes-webui#7 Close the race where useLocalOllama's 800ms-delayed redirect let users click Next mid-redirect and land in chat from a stale Step 2 input click
hermes-webui#8 Always-3-step wizard: picking a local model on Step 1 now advances to Step 2 (optional, with "Continue with local only" CTA) and Step 3, rather than auto-completing

Onboarding completion is now exclusive to Step 3's "Open Fox" button regardless of which path the user takes through the wizard.

#122 status after this PR

# Failure Status
1 Wizard never appears ✅ Fixed by hermes-webui#6 (was a probe-redirect symptom that degraded Step 1 to a no-features state, plus the race that yanked users out mid-step)
2 Tailscale HTTPS unreachable ⏳ Likely user-side admin-console toggle, not in this PR's scope
3 Settings → Local fallback toggle does nothing 🟡 Partially — wizard-side fallback CTA now works; Settings-side toggle still needs investigation
4 Ollama wizard "Use" closes wizard ✅ Fixed by hermes-webui#7 + #8
5 Ollama models not in chat dropdown ⏳ Needs investigation against clean :stable build
6 Reactive failover modal never appears ⏳ Needs investigation
7 Recovery banner never appears ⏳ Needs investigation

Test plan

End-to-end manual verification against this exact submodule SHA, before opening the PR:

  • Built fox-in-the-box:test-option-b with forks/hermes-webui at d2a7b94
  • Fresh container on port 8788 with bind mount, real-host Ollama running with gemma4:latest
  • Wizard at /setup: Welcome step shows Ollama detection box (was missing before feat: content safety — Llama Guard 3 1B (async, parallel to streaming) #6)
  • Click "Use gemma4:latest" → "Setting up gemma4:latest" briefly → Step 2 with "Add OpenRouter (optional)" header (was: redirect to chat, before Guardrail: research AWS Bedrock Guardrails integration path #8)
  • Step 2 "Continue with local only" → Step 3 with summary "Local model: gemma4:latest (Ollama, local)"
  • Step 3 "Open Fox" → onboarding marked {completed: true}, redirect to /
  • Chat loads, gemma4:latest selected in dropdown, "Message Fox..." → real reply received

After this merges, :latest rebuilds and re-tags :stable (per the existing build-container.yml behavior, which is itself the next thing to fix in a separate PR).

Cross-repo cohesion

This is the consumer PR for hermes-webui#6, #7, #8 — all already merged to master. The main repo's pinned SHA moves from a3eb265 (pre-#6) to d2a7b94 (post-#8), bundling all three together as a single consumer change.

Pulls in:
- hermes-webui#6 — exempt /api/ollama/ and /api/local-fallback/ from the
  onboarding redirect middleware. Wizard's setup.js boot probes for
  Ollama detection and bundled local-fallback CTA were silently failing
  because the redirect to /setup confused fetch's JSON parser. With this
  the wizard's local-model fast-paths render correctly when Ollama is
  running on the host.
- hermes-webui#7 — close the race where useLocalOllama scheduled a 800ms
  delayed redirect to / but left the wizard interactive in the meantime,
  letting users click Next mid-redirect and land in chat from a stale
  Step 2 input click.
- hermes-webui#8 — restructure the wizard so picking a local model on
  Step 1 advances to Step 2 (now optional with "Continue with local
  only" CTA) and Step 3 (summary), rather than completing onboarding
  immediately. Onboarding now completes only at Step 3's Open Fox button,
  regardless of which path the user took.

End-to-end verified against a real-host Ollama install: wizard detects
gemma4:latest, "Use" advances through Step 2 → Step 3 → Open Fox, chat
loads with gemma4 active and responds to messages. (#122 #1, partial #3,
#4.)

Remaining #122 failures (#2 Tailscale HTTPS, partial #3 Settings toggle,
#5 Ollama models in chat dropdown, #6 reactive failover, #7 recovery
banner) need separate investigation against a clean :stable build.
@roadhero
roadhero merged commit 3c20e6b into main May 6, 2026
5 checks passed
@roadhero
roadhero deleted the fix/wizard-bundle-122 branch May 6, 2026 02:13
roadhero added a commit that referenced this pull request May 6, 2026
…modal fixes (#126)

Pulls in:
- hermes-webui#9 — Tailscale Serve config state surfacing + manual retry
  button. Webui's auto-`tailscale serve --bg 8787` no longer fails
  silently — failures are recorded on _up_state and the Settings panel
  shows a "Configure HTTPS" button (always when connected, with the
  error message if the last attempt failed). Covers both the
  webui-Connect path and the user-authed-via-desktop-app path.
  Closes FITB#122 #2.
- hermes-webui#10 — Reactive failover modal now fires on auth_mismatch
  and quota_exhausted errors (was incorrectly excluded). Recovery
  banner now starts polling when fallback is enabled mid-session, not
  only at page load. Closes FITB#122 #6 and #7.

End-to-end #122 status after this PR (and #123/#124 already merged):

| # | Failure | Status |
|---|---|---|
| 1 | Wizard never appears | ✅ via #6 |
| 2 | Tailscale HTTPS unreachable | ✅ via #9 (this PR) |
| 3 | Settings fallback toggle | 🟡 backend works, frontend wiring verified — pending user re-test |
| 4 | Ollama Use closes wizard | ✅ via #7 + #8 |
| 5 | Ollama models in chat dropdown | ✅ already working in v0.5.0 (verified) |
| 6 | Reactive failover modal | ✅ via #10 (this PR) |
| 7 | Recovery banner | ✅ via #10 (this PR) |
roadhero added a commit that referenced this pull request May 6, 2026
Stabilization fix release. Resolves all 7 items reported in #122 from the
clean-DMG smoke against v0.5.0, plus two CI-hygiene fixes that prevent
future drift.

PRs that landed in this release:
- hermes-webui#6  — exempt /api/ollama/ and /api/local-fallback/ from setup redirect
- hermes-webui#7  — close race in useLocalOllama redirect
- hermes-webui#8  — always-3-step wizard flow
- hermes-webui#9  — Tailscale Serve state surfacing + manual retry
- hermes-webui#10 — failover modal eligibility + late-enable polling
- #123 — bump submodule to consume #6/#7/#8
- #124 — :stable workflow drift (release-tag only)
- #125 — FITB_VERSION populated on non-tag builds (dev-<sha>)
- #126 — bump submodule to consume #9/#10

Verified end-to-end against :latest from a clean DMG-equivalent install
on macOS arm64 with real-host Ollama, real Tailscale tailnet, real
OpenRouter. Smoke checklist sections A–I all green.

Known follow-ups (v0.5.2): #127 #128 #129.
roadhero added a commit that referenced this pull request May 7, 2026
Stabilization fix release. Resolves all 7 items reported in #122 from the
clean-DMG smoke against v0.5.0, plus two CI-hygiene fixes that prevent
future drift.

PRs that landed in this release:
- hermes-webui#6  — exempt /api/ollama/ and /api/local-fallback/ from setup redirect
- hermes-webui#7  — close race in useLocalOllama redirect
- hermes-webui#8  — always-3-step wizard flow
- hermes-webui#9  — Tailscale Serve state surfacing + manual retry
- hermes-webui#10 — failover modal eligibility + late-enable polling
- #123 — bump submodule to consume #6/#7/#8
- #124 — :stable workflow drift (release-tag only)
- #125 — FITB_VERSION populated on non-tag builds (dev-<sha>)
- #126 — bump submodule to consume #9/#10

Verified end-to-end against :latest from a clean DMG-equivalent install
on macOS arm64 with real-host Ollama, real Tailscale tailnet, real
OpenRouter. Smoke checklist sections A–I all green.

Known follow-ups (v0.5.2): #127 #128 #129.
roadhero added a commit that referenced this pull request May 7, 2026
…modal fixes

Pulls in:
- hermes-webui#9 — Tailscale Serve config state surfacing + manual retry
  button. Webui's auto-`tailscale serve --bg 8787` no longer fails
  silently — failures are recorded on _up_state and the Settings panel
  shows a "Configure HTTPS" button (always when connected, with the
  error message if the last attempt failed). Covers both the
  webui-Connect path and the user-authed-via-desktop-app path.
  Closes FITB#122 #2.
- hermes-webui#10 — Reactive failover modal now fires on auth_mismatch
  and quota_exhausted errors (was incorrectly excluded). Recovery
  banner now starts polling when fallback is enabled mid-session, not
  only at page load. Closes FITB#122 #6 and #7.

End-to-end #122 status after this PR (and #123/#124 already merged):

| # | Failure | Status |
|---|---|---|
| 1 | Wizard never appears | ✅ via #6 |
| 2 | Tailscale HTTPS unreachable | ✅ via #9 (this PR) |
| 3 | Settings fallback toggle | 🟡 backend works, frontend wiring verified — pending user re-test |
| 4 | Ollama Use closes wizard | ✅ via #7 + #8 |
| 5 | Ollama models in chat dropdown | ✅ already working in v0.5.0 (verified) |
| 6 | Reactive failover modal | ✅ via #10 (this PR) |
| 7 | Recovery banner | ✅ via #10 (this PR) |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant