Skip to content

feat: unify Windows and macOS builds (v0.3.0) - #2

Merged
1window2 merged 6 commits into
masterfrom
feat/windows-macos-unified
Oct 8, 2026
Merged

1window2 merged 6 commits into
masterfrom
feat/windows-macos-unified

Conversation

@1window2

@1window2 1window2 commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

Makes this repository build and release both platforms from one codebase so it can be proposed back to blead/gfl2logger.

  • One product: the macOS app is renamed from gf2logger.app to gfl2logger.app, the window title matches on both platforms, and the version moves to v0.3.0, continuing the Windows numbering after v0.2.5.
  • Windows gets everything the macOS line has: the Platoon Profile, Activity, and Updates exports, the grouped options, and the parser, export, and window-lifecycle hardening all live in shared modules, so the Windows build now includes them.
  • No window, no process: the window opens before mitmproxy sets up the proxy servers, closing it (or Cmd+Q on macOS) ends the program at once, and a watchdog exits the capture process within a few seconds of the window process ending for any reason.
  • Windows packaging: a folder in a .zip instead of a single .exe. The single-file launcher could not remove its temporary directory on exit because WinDivert64.sys stays in use, and was left showing a warning dialog.
  • Workflows: a reusable build.yml tests and packages on windows-latest and macos-15; ci.yml runs it for pull requests and pushes to master; release.yml runs it for a v*.*.* tag and publishes one release with all three files. The tag must match version.py.
  • Docs: new English and Korean READMEs for the combined project with a download table, and release notes whose download table is rewritten to absolute links when published.

Verification

On both windows-latest and macos-15:

  • 56 unit tests, including the real window process.
  • The traffic redirector is present in the packaged build.
  • The packaged program is started; it must show its window, must not multiply its processes, and every process must be gone after the window closes. Windows: gone 0.9 s after a close request to the window. macOS: gone about 1 s after the window process was killed.

Not verified

A live capture session against the Windows PC client. The Windows capture mode (local:GF2_Exilium) is unchanged from v0.2.5.

Use one product name on both platforms, make the protoc script work from sh and cmd.exe, and split the workflows into a reusable build that tests and packages on Windows and macOS, a CI run for pull requests, and a tag release that publishes both platforms together.

CI also starts the packaged app, checks that it does not multiply its processes, and closes it to confirm every process exits.
Rewrite the READMEs for the combined Windows and macOS project and align the macOS version with the Windows numbering.
Copilot AI balanced review requested due to automatic review settings October 8, 2026 02:02

This comment was marked as outdated.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 8, 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-08T02:08:13.257567Z 982162b PR opened
🔒 Security Review ✅ Completed 2026-10-08T02:07:38.381251Z 982162b 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: 982162bee7

ℹ️ 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/scripts/smoke_frozen.py Resolved
Show the window before mitmproxy sets up the proxy servers, since that step can stall and previously left the app running with nothing on screen. Close the window at once when the user closes it, route Cmd+Q through the same path on macOS, and add a watchdog that exits the proxy process shortly after the window process ends for any reason.

The packaged-app check now requires the window process to be present and every process to be gone after the window closes.
A single-file build unpacks itself into a temporary directory on every start and removes it on exit. The WinDivert driver file loaded from that directory stays in use after the program closes, so the removal failed and the launcher was left showing a warning dialog. A folder build has nothing to clean up.

The Windows download becomes a zip of that folder, and the documents and release notes describe the new close behavior.
@1window2
1window2 merged commit cfb862e into master Oct 8, 2026
2 checks passed
@1window2
1window2 deleted the feat/windows-macos-unified branch October 8, 2026 04:03
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