The update banner is driven by update_available from /api/llama/update-status. Prebuilt (marker) installs decide this via freshness.is_behind, which is mix-aware: a release at the same upstream base build but with a new -mix-<sha> suffix counts as behind. Source-build installs went through _source_build_status, which compared only the numeric base build (installed_build < latest_build). When a new prebuilt shared the installed upstream base (our usual mix re-tag at the same base), it returned update_available=False and the banner never showed. This is the common macOS case, where a failed prebuilt fetch falls back to a source build that lacks the mix patches. Make the source-build path mix-aware to match the marker path: same base plus a -mix-<sha> tag now offers the update (and displays the mix tag), a bare same-base rebuild does not, and the downgrade guard and unknown -version fallback are unchanged. |
||
|---|---|---|
| .. | ||
| assets | ||
| auth | ||
| core | ||
| hub | ||
| loggers | ||
| models | ||
| plugins | ||
| requirements | ||
| routes | ||
| state | ||
| storage | ||
| tests | ||
| utils | ||
| __init__.py | ||
| _platform_compat.py | ||
| cloudflare_tunnel.py | ||
| colab.py | ||
| main.py | ||
| run.py | ||
| startup_banner.py | ||