Skip to content

Improve AppImage compatibility and update support - #50

Merged
boggedbrush merged 14 commits into
mainfrom
ci/appimage-compatibility-updates
Sep 28, 2026
Merged

boggedbrush merged 14 commits into
mainfrom
ci/appimage-compatibility-updates

Conversation

@boggedbrush

@boggedbrush boggedbrush commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Build the Linux AppImage on Ubuntu 22.04 to lower its glibc compatibility floor.
  • Repack electron-builder output with pinned AppImageKit and runtime binaries, verified against SHA-256 digests.
  • Embed GitHub Release zsync update information for stable AppImages.
  • Keep the VirusTotal API key scoped to the scan step.
  • Size the Electron window to the available display and keep the dashboard readable at 800×600.
  • Update packaged app metadata to v1.3.3 and 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.

@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: 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".

Comment thread .github/workflows/linux-build.yml Outdated
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 \

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 27, 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-09-28T01:11:57.852819Z 2d9dfb9 Manual request
ℹ️ 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.

@boggedbrush

Copy link
Copy Markdown
Owner Author

@codex review

@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

if: ${{ env.VT_API_KEY != '' && steps.cache-vt.outputs.cache-hit != 'true' }}

P1 Badge Gate the VirusTotal download on VT_ENABLED

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".

Copy link
Copy Markdown
Owner Author

@codex review

@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: 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 != '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

Comment thread .github/workflows/linux-build.yml Outdated
- 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') }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: 742cb6ed3e

ℹ️ 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".

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: aa48d72cb0

ℹ️ 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".

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: 0be434bb5d

ℹ️ 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".

boggedbrush commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner Author

Visual review screenshot for the latest 800×600 AppImage build: download the PNG artifact. The Linux Build passed on commit 4093d9f; the screenshot shows app metadata version v1.3.3.

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 02153d3ab1

ℹ️ 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".

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

Reviewed commit: 37adf45a29

ℹ️ 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".

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

Reviewed commit: 812371b07f

ℹ️ 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".

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: e31db9492f

ℹ️ 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".

Copy link
Copy Markdown
Owner Author

@codex review

@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: 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".

Comment thread package.json
{
"name": "patchopsiii-electron",
"version": "v1.3.2",
"version": "v1.3.3",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: 2d9dfb9da9

ℹ️ 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".

@boggedbrush
boggedbrush merged commit 8888db6 into main Sep 28, 2026
1 check 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.

1 participant