Skip to content

fix(update): a failed check is not "you're on the latest version" - #3

Merged
SusieeTheLinuxUser merged 1 commit into
devfrom
fix/update-check-failure
Oct 28, 2026
Merged

SusieeTheLinuxUser merged 1 commit into
devfrom
fix/update-check-failure

Conversation

@SusieeTheLinuxUser

Copy link
Copy Markdown
Owner

check_update turned any GitHub error into None. The UI reads None as "up to date", so:

  • Settings → About → Check for updates said "You're on the latest version" when GitHub couldn't be reached. The existing "Couldn't reach GitHub" branch was never hit.
  • A failed 6-hourly check cleared an "Update to vX.Y.Z" offer the sidebar was already showing.

Changes

  • check_update now returns Result<Option<Update>, String>, so a failure rejects the command. The can_install mapping moved into a small pure offered_update() with a unit test.
  • checkUpdate() in renderer/app.js keeps the offer it already showed when the check didn't reach GitHub (updateAfterCheck, covered in tools/preview/selfcheck.mjs).
  • CHANGELOG entry under Unreleased.

Validation: cargo test --offline: 156 passed (13 ignored live tests not run). node tools/preview/selfcheck.mjs passes.

Prepared overnight by a Grok worker (grok-4.7) and reviewed by Claude.

🤖 Generated with Claude Code

check_update turned a GitHub error into None, which Settings → About
reads as up to date and which also cleared an update already offered
in the sidebar. The command now rejects on failure, and the sidebar
keeps the offer it was already showing.

Co-Authored-By: grok-4.7 <noreply@x.ai>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T22:23:38.321947Z 3a45e2b PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: 3a45e2b680

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

if let Some(fixed) = repaired_entry(&text, &exe, |p| Path::new(p).exists()) {
let (Ok(text), Ok(exec)) = (std::fs::read_to_string(&path), exec_line()) else { return };
let flatpak = crate::update::in_flatpak();
if let Some(fixed) = repaired_entry(&text, &exec, |p| !flatpak && Path::new(p).exists()) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restrict Flatpak autostart takeover to AppImage entries

When a user has enabled autostart from a source build or another still-existing DealDrop copy and then launches the Flatpak, this predicate makes every recorded executable look missing, so repaired_entry replaces its Exec= line with flatpak run .... The old copy will no longer start at login even though it still exists; limit this takeover to the legacy AppImage entry.

AGENTS.md reference: AGENTS.md:L13-L13

Useful? React with 👍 / 👎.

Comment thread src-tauri/src/main.rs
use futures::StreamExt;
let got: Vec<(String, R<Option<String>>)> = futures::stream::iter(stale)
.map(|id| async move { let tier = protondb_tier(&id).await; (id, tier) })
.buffer_unordered(4).collect().await;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep ProtonDB lookups from blocking the poll

On Linux, if ProtonDB is slow or unreachable and a poll has 60 missing or stale app IDs, this await waits for all of them in groups of four. Each request inherits the 25-second client timeout, so this optional enrichment can hold the entire poll and its snapshot for about six minutes; a separate wishlist batch can add more time. Bound the total lookup time or avoid gating the poll on these requests.

Useful? React with 👍 / 👎.

@SusieeTheLinuxUser
SusieeTheLinuxUser changed the base branch from main to dev October 27, 2026 00:07
@SusieeTheLinuxUser
SusieeTheLinuxUser merged commit 22a320f into dev Oct 28, 2026
3 checks passed
@SusieeTheLinuxUser
SusieeTheLinuxUser deleted the fix/update-check-failure branch October 28, 2026 22:53
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.

1 participant