Compare script: cover ranges, older versions and extra SKUs - #76
Merged
Merged
Conversation
The comparison only requested the live baseline versions for the two registered JetKVM SKUs, so the pre-skus/ layout, semver ranges and the SKU table's handling of other SKUs were never exercised. Add, per device and default SKU, a caret range and a "<stable" range on each version axis, which reach the newest older release. Add EXTRA_SKUS (both Mini variants and one unregistered SKU) on /releases and both redirects, accepting any pair of 4xx error responses for them: the SKU table and the code before it refuse those SKUs with different status and wording, and a 200 on either side still fails. The accepted-deviation check returns its reason so the report names the rule that fired.
Contributor
Author
|
bugbot run |
adamshiervani
marked this pull request as ready for review
September 18, 2026 20:32
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
scripts/compare-releases.shcovered 180 request shapes, all built from the live baseline versions and the two JetKVM SKUs. Three gaps: no old versions, no ranges, no SKUs outside the registered pair. This adds 36 cases.Range and older-version constraints (24 cases), derived from the live stable versions:
Per device ID, per default SKU, one axis at a time.
Expected-difference SKUs (12 cases).
EXTRA_SKUS, defaultjetkvm-mini-ethernet jetkvm-mini-wireless jetkvm-v3./releaseswith and withoutprerelease, plus both redirects. For these SKUs a run accepts any pair of 4xx error responses: the SKU table says 400Unknown SKUor 404No release found for type mini, the code before it said 400Unsupported SKUor 404is not available for version. Both mean nothing for this SKU. A 200 on one side against a 4xx on the other still fails.The accepted-deviation check now returns its reason, so the report says which rule fired instead of one fixed string.
Run against staging (dev at 2dbc67b) versus production:
All 10 accepted are the extra-SKU cases. All 24 range cases pass outright.
Note
Low Risk
Changes only affect the release comparison shell script and its acceptance rules; no production API or runtime behavior.
Overview
scripts/compare-releases.shgrows local-vs-production release API comparison from ~180 to 216 cases, targeting version ranges, older constraints, and SKUs that legitimately differ during the SKU-table rollout.Range / older-version cases (24): From live stable
appVersion/systemVersion, the script derives caret (^major.minor.0) and less-than (<stable) constraints and hitsGET /releasesper device and default SKU, one version axis at a time—including paths into pre-skus/layout.EXTRA_SKUS(default: Mini ethernet/wireless +jetkvm-v3, overridable via env): Adds 12 requests across/releasesand bothlatestredirects.is_accepted_deviationtreats matching 4xx on both sides as accepted when the SKU is in that list (status/message may differ between SKU table and legacy checks). Accepted rules now print their reason in the report instead of a single hard-coded string.Comparison helpers: Another 404 message pattern for “no release found” is canonicalized like existing no-compat errors;
TOTAL_CASESand usage docs document the new env var.Reviewed by Cursor Bugbot for commit 8848592. Bugbot is set up for automated code reviews on this repo. Configure here.