Skip to content

Fix OS update reboot, boot confirmation and repeated downloads - #12

Merged
mrinc merged 3 commits into
masterfrom
fix/os-update-lifecycle
Sep 15, 2026
Merged

mrinc merged 3 commits into
masterfrom
fix/os-update-lifecycle

Conversation

@bcbetterninja

@bcbetterninja bcbetterninja commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Pi OS updates could install successfully but fail to reboot because reboot received two arguments instead of the required single 0 tryboot argument. Unpaired x86/Pi clients also failed to confirm healthy trial boots, allowing a later reboot to return to the old OS and download the update again.

This change makes the signed bundle wait for successful RAUC activation before rebooting, confirms healthy pairing screens, and persists the client attempt and RAUC metadata across root-slot changes. Startup and paired updates share bounded attempts; installed or uncertain outcomes block automatic reinstallation. Channel changes do not kill an in-flight RAUC transaction or delete its bundle. BF preserves the attempted version, reports rollback/errors, and exposes retry controls and pairing-screen diagnostics without requiring a shell.

The bundle carries the reboot repair for upgrades from 0.318/1.0.0. Already published v1.0.0 bundles remain unchanged; deployment requires a new OS release after merge. No signing keys or client lockdown permissions change. This branch also includes the existing four-line Android SDK setup fix from PR #11, needed because master still requests the removed SDK tools package.

Validation:

  • 8 Rust lifecycle tests pass in a lightweight harness compiling the actual Linux update modules.
  • 10 mocked boot/RAUC tests pass, including exact Pi reboot arguments, failed activation, daemon restart, late confirmation and state migration; wired into CI.
  • Server suite: 109 passed, 1 PostgreSQL integration test skipped locally; server CI with PostgreSQL also passed.
  • TypeScript, shell syntax and diff checks pass.
  • Full Linux client, server/PostgreSQL and boot-safety CI pass on review follow-up 61abe69; see PR checks for remaining platform results. Physical Pi/x86 update, reboot and power-loss testing has not been performed.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 77a9c351-986c-4909-bf69-ac2e61633543


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

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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ae394ac4ac

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread client/src/platform/linux/os_update.rs
Comment thread deploy/rauc/tests/test_update_lifecycle.py Outdated
@mrinc
mrinc merged commit 9701e9a into master Sep 15, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants