Summary
With the "Ignore Agent updates" preference (#2843) enabled, a WebUI update does not auto-refresh / restart the browser the way the reporter expects. He wants the WebUI to auto-refresh on a UI update even when Agent updates are disabled; currently it doesn't restart, so he has to manually trigger the update from Settings → System.
Reported by @Latipun in the community Discord #report-bugs (2026-06-14):
Manually trigger WebUI update from Settings > System, no longer auto-refresh browser.
Note: I enabled "Ignore Agent updates" setting
i.e. "[I now have to] manually trigger the WebUI update from Settings → System; it no longer auto-refreshes the browser. (Note: I have 'Ignore Agent updates' enabled.)" The reporter explicitly calls out that the ignore_agent_updates toggle is the variable he changed — it's a WebUI-vs-Agent setting bleeding into the WebUI update's refresh/restart behavior.
Expected vs actual
- Expected: a WebUI update is detected and the browser auto-refreshes onto the new version, independent of whether Agent updates are ignored.
- Actual: with "Ignore Agent updates" ON, the WebUI update doesn't auto-restart/refresh — the reporter has to go to Settings → System and trigger it manually.
What I could confirm from the code
The ignore_agent_updates flag only feeds the update check — it flips include_agent so the Agent repo is excluded from the behind-count:
api/routes.py:7166 (GET /api/updates/check) and :7809 (POST): include_agent_updates = not bool(settings.get("ignore_agent_updates")).
api/config.py:6505 default False.
The apply + restart path itself is target-independent: apply_update('webui') (api/updates.py:1258) always ends in _schedule_restart() (:1487) and returns restart_scheduled: True, regardless of the agent-ignore setting. On the client, applyUpdates() (static/ui.js:6014) then runs _waitForServerThenReload() → location.reload() once the server's /health identity changes. So once you click Update Now, the webui reload should still fire with agent ignored.
That means the gap is most likely upstream of the apply step — in detection / banner / auto-trigger — not in the reload itself.
Leading hypotheses (need reporter detail to confirm — not yet reproduced)
- There is no automatic apply on the web app — only a banner + manual "Update Now". If the reporter expects the WebUI to auto-apply + auto-refresh on its own (as a managed/Docker/desktop deploy might), that auto-apply path may not exist for his setup, and "Ignore Agent updates" is a red herring he toggled while trying to influence it. → behavior-expectation gap (auto-apply WebUI updates).
- Banner/target selection interaction.
applyUpdates() builds its target list from window._updateData (ui.js:6034): webui is only added if window._updateData?.webui?.behind>0. If the agent-ignore path changes the shape of the cached check payload (e.g. only an agent update was pending and it's now suppressed → no banner → nothing to apply → no refresh), the user perceives "WebUI update no longer auto-refreshes."
- His "auto-refresh" was the offline/reconnect reload (
_recoverFromOfflineSoftly, ui.js:140) firing when the server restarts under him on an auto-pull deploy — and something in his current config (check disabled, or agent-ignore + a managed updater) changed when that restart happens.
What to confirm with @Latipun before building
- Deploy type: Docker /
start.sh / native desktop app / managed host?
- Does the WebUI auto-apply updates on his setup, or does he click "Update Now"? (The web app only auto-checks; it does not auto-apply.)
- What exactly used to happen and stopped: did the page reload by itself after a version bump, and now it doesn't?
- Does toggling "Ignore Agent updates" OFF restore the behavior? (This is the single most useful repro fact — it confirms or kills the agent-ignore link.)
Scope
Single repo — nesquena/hermes-webui (web app). Likely small once the trigger is confirmed: either decouple the WebUI update refresh from the agent-ignore setting (if there's a real coupling), or add the auto-apply-and-refresh affordance the reporter expects. No fix shape locked until the repro is confirmed.
Reported by
@Latipun — community Discord #report-bugs, 2026-06-14.
Summary
With the "Ignore Agent updates" preference (#2843) enabled, a WebUI update does not auto-refresh / restart the browser the way the reporter expects. He wants the WebUI to auto-refresh on a UI update even when Agent updates are disabled; currently it doesn't restart, so he has to manually trigger the update from Settings → System.
Reported by @Latipun in the community Discord #report-bugs (2026-06-14):
i.e. "[I now have to] manually trigger the WebUI update from Settings → System; it no longer auto-refreshes the browser. (Note: I have 'Ignore Agent updates' enabled.)" The reporter explicitly calls out that the
ignore_agent_updatestoggle is the variable he changed — it's a WebUI-vs-Agent setting bleeding into the WebUI update's refresh/restart behavior.Expected vs actual
What I could confirm from the code
The
ignore_agent_updatesflag only feeds the update check — it flipsinclude_agentso the Agent repo is excluded from the behind-count:api/routes.py:7166(GET/api/updates/check) and:7809(POST):include_agent_updates = not bool(settings.get("ignore_agent_updates")).api/config.py:6505defaultFalse.The apply + restart path itself is target-independent:
apply_update('webui')(api/updates.py:1258) always ends in_schedule_restart()(:1487) and returnsrestart_scheduled: True, regardless of the agent-ignore setting. On the client,applyUpdates()(static/ui.js:6014) then runs_waitForServerThenReload()→location.reload()once the server's/healthidentity changes. So once you click Update Now, the webui reload should still fire with agent ignored.That means the gap is most likely upstream of the apply step — in detection / banner / auto-trigger — not in the reload itself.
Leading hypotheses (need reporter detail to confirm — not yet reproduced)
applyUpdates()builds its target list fromwindow._updateData(ui.js:6034):webuiis only added ifwindow._updateData?.webui?.behind>0. If the agent-ignore path changes the shape of the cached check payload (e.g. only an agent update was pending and it's now suppressed → no banner → nothing to apply → no refresh), the user perceives "WebUI update no longer auto-refreshes."_recoverFromOfflineSoftly,ui.js:140) firing when the server restarts under him on an auto-pull deploy — and something in his current config (check disabled, or agent-ignore + a managed updater) changed when that restart happens.What to confirm with @Latipun before building
start.sh/ native desktop app / managed host?Scope
Single repo — nesquena/hermes-webui (web app). Likely small once the trigger is confirmed: either decouple the WebUI update refresh from the agent-ignore setting (if there's a real coupling), or add the auto-apply-and-refresh affordance the reporter expects. No fix shape locked until the repro is confirmed.
Reported by
@Latipun — community Discord #report-bugs, 2026-06-14.