mirror of
https://github.com/headroomlabs-ai/headroom.git
synced 2026-08-27 14:17:10 -04:00
Merge 2d3181def6 into 8884d87378
This commit is contained in:
commit
e2f25e884c
2 changed files with 31 additions and 2 deletions
|
|
@ -3598,9 +3598,16 @@ def _proxy_version(payload: dict[str, Any] | None) -> str | None:
|
|||
def _proxy_needs_version_restart(payload: dict[str, Any] | None) -> bool:
|
||||
"""Return True when a running Headroom proxy uses a different package version."""
|
||||
running_version = _proxy_version(payload)
|
||||
running_release = _normalize_release_version(running_version)
|
||||
# -dev is a display marker for source builds; compare the base release so a
|
||||
# dev CLI still restarts a stale proxy on a real version difference.
|
||||
# dev CLI still restarts a stale proxy on a real version difference. The
|
||||
# suffix must be stripped from the running version too: with it intact,
|
||||
# "0.34.0-dev" fails the release regex, normalizes to None, and the check
|
||||
# below silently never fires for source-built proxies. The scheme is always
|
||||
# "<base>-dev" (get_version in headroom/_version.py); any future "-rcN" or
|
||||
# "-dev.N" style would need stripping here as well.
|
||||
running_release = _normalize_release_version(
|
||||
running_version.removesuffix("-dev") if running_version is not None else None
|
||||
)
|
||||
current_release = _normalize_release_version(_HEADROOM_VERSION.removesuffix("-dev"))
|
||||
return (
|
||||
running_release is not None
|
||||
|
|
|
|||
|
|
@ -332,6 +332,28 @@ def test_proxy_version_restart_ignores_non_release_source_labels(monkeypatch) ->
|
|||
assert wrap_cli._proxy_needs_version_restart({"version": "0.29.0"}) is True
|
||||
|
||||
|
||||
def test_proxy_version_restart_strips_dev_suffix_on_both_sides(monkeypatch) -> None:
|
||||
"""A dev-built proxy must be compared by its base release, like the CLI is.
|
||||
|
||||
Regression: "0.34.0-dev" failed the release regex, normalized to None, and
|
||||
the check never fired, so a stale source-built proxy was silently reused
|
||||
forever (observed: a 21-day-old 0.34.0-dev proxy reused by a 0.37.0-dev
|
||||
wrap).
|
||||
"""
|
||||
monkeypatch.setattr(wrap_cli, "_HEADROOM_VERSION", "0.37.0-dev")
|
||||
assert wrap_cli._proxy_needs_version_restart({"version": "0.34.0-dev"}) is True
|
||||
assert wrap_cli._proxy_needs_version_restart({"version": "0.37.0-dev"}) is False
|
||||
assert wrap_cli._proxy_needs_version_restart({"version": "0.36.4"}) is True
|
||||
|
||||
monkeypatch.setattr(wrap_cli, "_HEADROOM_VERSION", "0.37.0")
|
||||
assert wrap_cli._proxy_needs_version_restart({"version": "0.36.4-dev"}) is True
|
||||
|
||||
# Unparseable running versions still never trigger a restart.
|
||||
assert wrap_cli._proxy_needs_version_restart({"version": "unknown"}) is False
|
||||
assert wrap_cli._proxy_needs_version_restart(None) is False
|
||||
assert wrap_cli._proxy_needs_version_restart({}) is False
|
||||
|
||||
|
||||
def test_ensure_proxy_restarts_ephemeral_proxy_for_openai_api_url_mismatch(monkeypatch) -> None:
|
||||
calls: list[object] = []
|
||||
health = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue