Surface: Settings → Updates section — current-version chips, "Check for updates" button, release-channel toggle.
File: ui/src/views/Settings.vue:284-310, 345-348.
Current:
- The current-version chips are hardcoded (
lemonade v10.6.0, flm v0.9.42) regardless of what is actually installed.
loadUpdates() against /api/updates/check 404s silently — no "endpoint missing" affordance, the UI just shows "up to date" forever.
setChannel() POSTs to /api/updates/channel; on 404 it accepts the toggle locally anyway, so operators believe they switched to e.g. prerelease but the next update probe still hits the stable manifest.
Real signal:
- Version chips read from
/api/system/versions (or extend /api/lemonade/config + /api/backends/flm:npu).
/api/updates/check should be wired against the existing releases.hal0.dev/{stable,…}.json manifest proxy.
/api/updates/channel should be required-pass; surface hard error on failure.
Related: #173 (Settings view)
Found by dashboard mock-data audit 2026-05-23.
Surface: Settings → Updates section — current-version chips, "Check for updates" button, release-channel toggle.
File:
ui/src/views/Settings.vue:284-310, 345-348.Current:
lemonade v10.6.0,flm v0.9.42) regardless of what is actually installed.loadUpdates()against/api/updates/check404s silently — no "endpoint missing" affordance, the UI just shows "up to date" forever.setChannel()POSTs to/api/updates/channel; on 404 it accepts the toggle locally anyway, so operators believe they switched to e.g.prereleasebut the next update probe still hits the stable manifest.Real signal:
/api/system/versions(or extend/api/lemonade/config+/api/backends/flm:npu)./api/updates/checkshould be wired against the existingreleases.hal0.dev/{stable,…}.jsonmanifest proxy./api/updates/channelshould be required-pass; surface hard error on failure.Related: #173 (Settings view)
Found by dashboard mock-data audit 2026-05-23.