Repository navigation
Improve AppImage compatibility and update support - #50
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a89dfd0136
ℹ️ 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".
| set -euo pipefail | ||
| appimagetool_path="$RUNNER_TEMP/appimagetool-x86_64.AppImage" | ||
| curl --fail --location --retry 3 \ | ||
| https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage \ |
There was a problem hiding this comment.
Pin and verify the downloaded packaging executable
The continuous URL is a mutable release asset, and the downloaded file is executed later to construct the stable AppImage without any checksum or signature verification. If that asset is replaced—whether by a routine incompatible update or an upstream compromise—the same repository commit can produce different or malicious release artifacts, and the executable runs in a job exposing VT_API_KEY. Download a versioned artifact and verify a repository-pinned digest or trusted signature before executing it.
Useful? React with 👍 / 👎.
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. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
PatchOpsIII/.github/workflows/linux-build.yml
Line 246 in 7731d46
When VT_API_KEY is configured but the VirusTotal cache misses (for example, on a new CLI release or fresh cache), this condition is always false because the commit removed VT_API_KEY from the job environment and only restores it on the later scan step. The download is therefore skipped, after which Ensure VirusTotal CLI executable fails because vt does not exist, blocking the Linux build; use env.VT_ENABLED here as in the surrounding VirusTotal steps.
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7731d46079
ℹ️ 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".
| ZSYNC_PATH: dist/packages/PatchOpsIII.AppImage.zsync | ||
| CSC_IDENTITY_AUTO_DISCOVERY: "false" | ||
| VT_API_KEY: ${{ secrets.VT_API_KEY }} | ||
| VT_ENABLED: ${{ secrets.VT_API_KEY != '' }} |
There was a problem hiding this comment.
Gate the VirusTotal download on VT_ENABLED
When VT_API_KEY is configured and the current VirusTotal CLI release is not cached, VT_ENABLED causes the cache, executable-check, and scan steps to run, but the download step still checks env.VT_API_KEY != ''. After this change that variable exists only in the scan step, so the download is skipped on a cache miss and the subsequent executable check fails because vt is absent, blocking Linux release builds with scanning enabled. Update the remaining download condition to use VT_ENABLED as well.
Useful? React with 👍 / 👎.
| - name: Generate AppImage zsync metadata | ||
| - name: Repack AppImage with update support | ||
| env: | ||
| UPDATE_INFORMATION: ${{ inputs.update_information || (github.event_name == 'pull_request' && 'gh-releases-zsync|boggedbrush|PatchOpsIII|latest|PatchOpsIII.AppImage.zsync') }} |
There was a problem hiding this comment.
Preserve an empty update-information fallback
When no input is supplied—such as the reusable call in release-beta.yml or a Testing push—the expression's right side evaluates to boolean false, which is interpolated into the environment as the nonempty string false. The script consequently passes invalid update information to appimagetool instead of taking its no-metadata branch, and it skips the explicit zsyncmake path required by the later test -s "$ZSYNC_PATH", breaking these builds. Ensure the expression ultimately yields an empty string when neither an input nor the pull-request default applies.
Useful? React with 👍 / 👎.
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex review |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Visual review screenshot for the latest 800×600 AppImage build: download the PNG artifact. The Linux Build passed on commit |
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex review |
|
Codex Review: Didn't find any major issues. Breezy! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex review |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4093d9fc33
ℹ️ 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".
| { | ||
| "name": "patchopsiii-electron", | ||
| "version": "v1.3.2", | ||
| "version": "v1.3.3", |
There was a problem hiding this comment.
Add matching v1.3.3 release notes before bumping version
With this version set to v1.3.3, both release workflows are blocked because the repository contains release notes only through v1.3.2. I checked .github/workflows/release-stable.yml and release-beta.yml: their metadata steps select an existing note and explicitly exit when its version differs from package.json (stable lines 218–222 and beta lines 220–224), so even the default latest invocation now fails during preparation. Add a v1.3.3 release-notes file or defer this version bump.
Useful? React with 👍 / 👎.
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Summary
v1.3.3and add matching release notes.This addresses the compatibility and update warnings from AppImage/appimage.github.io#4940. The 800×600 visual test exposed a minimum window size that exceeded the display, so the PR also includes the small desktop window and responsive layout fixes.
Validation
The Linux Build workflow passed on this PR, including AppImage extraction, embedded update information, zsync artifact, VirusTotal scan, and a GUI smoke test that asserts the window fits inside an 800×600 display. Both modified workflow files parse as YAML. Download the latest 800×600 screenshot.