Menu

#473 fix(update): arm minimum-version floor on staging [staging-release]

closed
nobody
None
2026-07-18
2026-07-18
Anonymous
No

Originally created by: Akarsh-Hegde

Arms the mandatory-update floor on the staging channel to verify enforce_minimum_version end-to-end before we ever need it in a real rollback (RUNBOOK.md §A2).

What this does

Adds tray/minimum-version = 1.71.0. At release time scripts/package-updater.sh reads it and bakes a Minimum-Version: 1.71.0 line into latest.json's notes (the notes body is the transport because tauri-plugin-updater drops unknown manifest fields), and mirror-staging-release.sh copies that manifest verbatim onto the rolling updater-staging channel.

Staging builds are prereleases (1.71.0-staging.N), and semver puts every one of them below 1.71.0 — so installed staging apps below the floor force-install via update::enforce_minimum_version with no consent click, checked 30 s after launch and every 6 h thereafter.

1.71.0 is the highest floor this release can legally carry: package-updater.sh compares cores only and fails the release loudly if the floor exceeds the release version.

Why not just hand-edit the published manifest

Patching latest.json on the updater-staging release would exercise only the app half. This path additionally covers package-updater.sh's file read and floor-vs-version guard, and the mirror script's notes propagation — the parts most likely to bite during an actual emergency rollback.

Merging

Squash-merge this PR (do not use a merge commit). Two things must both be true of the resulting commit on pre-main:

  1. It carries [staging-release]release-staging.yml only builds on that marker, never on ordinary integration pushes.
  2. Its type is release-worthy. commit-analyzer runs the conventionalcommits preset with no custom releaseRules, so only feat/fix/perf/revert/breaking cut a release. A test: or chore: commit would trigger the workflow and then publish nothing after a ~45 min build.

The PR title satisfies both, and GitHub defaults the squash-commit message to it. A merge commit would re-expose risk [#2] by putting the original test(update): commit on the branch.

Verifying

On a staging machine running below 1.71.0-staging.6, relaunch the app:

  • Toast: "Updating Meridian - This version is no longer supported - installing v1.71.0-staging.6"
  • meridian logs --service meridian-tray -fupdate: running version is below the minimum supported - forcing install
  • Success criterion: it installs and relaunches without a banner click.

Required follow-up

Empty tray/minimum-version in a follow-up PR once propagation is confirmed. The floor ships with every release while the file has content, and pre-main promotes to main — leaving it armed would force-update production users on the next release.

🤖 Generated with Claude Code

Related

Tickets: #2
Tickets: #480

Discussion

  • Anonymous

    Anonymous - 2026-07-18

    Originally posted by: coderabbitai[bot]

    [!IMPORTANT]

    Review skipped

    Auto reviews are disabled on base/target branches other than the default branch.

    Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.


    ⚙️ Run configuration

    Configuration used: Organization UI

    Review profile: ASSERTIVE

    Plan: Pro Plus

    Run ID: 3d402896-e116-4fd3-9620-d79848b99e09

    You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

    Use the checkbox below for a quick retry:
    - [ ] 🔍 Trigger review

    ✨ Finishing Touches
    🧪 Generate unit tests (beta) - [ ] Create PR with unit tests - [ ] Commit unit tests in branch `test/minimum-version-floor`

    Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

    ❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

    Comment @coderabbitai help to get the list of available commands.

     
  • Anonymous

    Anonymous - 2026-07-18

    Ticket changed by: Akarsh-Hegde

    • status: open --> closed
     

Log in to post a comment.