feat(cli): say when the installed BaseRT is worth updating - #33
Merged
Merged
Conversation
The client checked for newer releases of itself only. A BaseRT it found was used as it was, so someone on BaseRT 0.2.4 kept producing reports signed as computearena-throughput-legacy/1 (not comparable) after 0.2.5 shipped the headline-first protocol, with nothing telling them so. ComputeArena now says two things about the BaseRT it found, and still never refuses to run an older one: - The harness predates the current benchmark protocol. This needs no network, because the harness describes what it supports: the notice names what the report will be signed as and the release to move to. - A newer BaseRT release exists. The lookup reuses the client's own update check: GitHub's latest release, on a worker thread, remembered for 24 hours in basert-update-check.json, failures ignored. It never delays a run; if the answer arrives while the benchmark is running, the notice follows the run instead, and nothing is said twice. `run` prints the notice before the benchmark plan, the printed session prints it where it reports the runtime it found, and the full-screen interface shows it above the menu (in a short form on small terminals), adds a Protocol row to the plan, and offers `u` to install the latest release, which takes a second press because it replaces an installation. The advice fits the situation: a harness chosen with --runtime-path or COMPUTEARENA_BASERT_HARNESS is not offered an install that would not replace it, and a platform without a prebuilt BaseRT is pointed at the release to build from. updates.rs becomes a small release feed shared by both checks, so there is still one implementation of the lookup and its cache. COMPUTEARENA_BASERT_RELEASE_API names another endpoint for mirrors and tests; only a version number is read from the answer. No test contacts GitHub: the fixtures point the lookup at a closed port, seed the remembered answer, or serve one from a loopback feed.
IsuraManchanayake
added a commit
that referenced
this pull request
Sep 17, 2026
The notes said the client does not tell you when a newer BaseRT exists. With #33 it does: before the plan, in the printed session, and above the full-screen menu with an update key.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The client checked for newer releases of itself only. A BaseRT it found was used as it was:
✓ Found BaseRT 0.2.4, and on with the run. Since BaseRT 0.2.5 shipped the headline-first protocol, someone still on 0.2.4 keeps producing reports signed ascomputearena-throughput-legacy/1(comparable: false) and nothing tells them so.ComputeArena now says two things about the BaseRT it found, and still never refuses to run an older one:
basert-update-check.json), failures ignored. It never delays a run. If the answer arrives while the benchmark is running, the notice follows the run instead, and nothing is said twice.Where it shows:
run: before the benchmark plan.! BaseRT 0.2.6 is available (installed: 0.2.5).and the update line.BaseRTpanel above the menu (summary and key only on small terminals, so the menu keeps its rows), aProtocolrow in the benchmark plan, anduon the menu to install the latest release.utakes a second press, because it downloads a release and replaces the files in~/.basert; any other key stands it down.The advice fits the situation: a harness chosen with
--runtime-pathorCOMPUTEARENA_BASERT_HARNESSis not offered an install that would not replace it, a platform without a prebuilt BaseRT (Linux x86-64) is pointed at the release to build from, and versions that cannot be compared (development builds) never invent an update. llama.cpp is unaffected; its builds are tagged several times a day, so "newer" would always be true.updates.rsbecomes a smallReleaseFeedshared by both checks, so there is still one implementation of the lookup and its cache; the client's own notice behaves as before.COMPUTEARENA_BASERT_RELEASE_APInames another endpoint for mirrors and tests. Only a version number is read from the answer, so the feed cannot put words on the screen.If this ships in 0.1.2, the sentence in the release notes (#32) that says the client "does not yet tell you when a newer BaseRT exists" needs to change; I will update #32 to match.
Validation
cargo fmt --all -- --check,cargo clippy --workspace --all-targets --all-features -- -D warnings: cleancargo test --workspace --all-targets: 104 unit and 38 integration tests passuneeds two presses and any other key stands it down, offered only on the menu and only where an install helpslegacy/1) and verifies; a current harness hears only about a newer release; the lookup runs beside the benchmark against a loopback feed and is remembered for the next run; an unreachable feed neither delays nor fails a run; the printed session names an older BaseRT where it finds it; llama.cpp output never mentions BaseRTushows the confirmation, another key clears itv0.2.5) was parsed, shown in the notice, and written tobasert-update-check.json