Skip to content

Cross-platform CI matrix, Windows path tests, and PyInstaller smoke test (closes #44)#62

Merged
wpak-ai merged 2 commits into
masterfrom
feat/crossplatform-singleosci-pathduplication
May 20, 2026
Merged

Cross-platform CI matrix, Windows path tests, and PyInstaller smoke test (closes #44)#62
wpak-ai merged 2 commits into
masterfrom
feat/crossplatform-singleosci-pathduplication

Conversation

@bradjin8
Copy link
Copy Markdown
Collaborator

@bradjin8 bradjin8 commented May 20, 2026

Closes #44

Summary

  • Expand the unittest CI matrix from Linux-only to ubuntu-latest, windows-latest, and macos-latest across Python 3.10–3.13, closing the cross-platform verification gap identified in eval test 27 / COMPOUND-D.
  • Add PyInstaller build + --help smoke test on the Windows / Python 3.12 matrix cell so the desktop .exe is built and verified in CI without launching the GUI.
  • Add win32-native path normalization tests (TestNormalizeFilePathWindowsNative) that exercise drive letters, backslashes, and file:/// URIs on actual Windows runners.
  • Add --help to launcher.py via argparse so the PyInstaller bundle can be smoke-tested headlessly (help exits before pywebview is imported).

Path duplication called out in #44 was already resolved in #46scripts/export.py imports normalize_file_path from utils.path_helpers.

Test plan

  • CI green on all 12 matrix cells (3 OS × 4 Python versions)
  • Windows / 3.12 job builds dist/CursorChatBrowser/CursorChatBrowser.exe and passes --help smoke test
  • TestNormalizeFilePathWindowsNative runs (not skipped) on windows-latest
  • Existing /tmp/ fixture strings still pass on Windows/macOS (they are JSON literals, not filesystem paths)
  • Local Windows run: python -m unittest discover tests — 290 passed, 4 skipped
  • Local Windows run: dist/CursorChatBrowser/CursorChatBrowser.exe --help — exit 0

Summary by CodeRabbit

  • New Features

    • Added command-line argument support
  • Tests

    • Expanded CI test matrix to run on Windows, macOS, and Ubuntu
    • Added Windows-specific file path normalization tests
  • Chores

    • Added Windows desktop build and smoke-test stage to CI (builds and verifies a Windows executable)

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8dc8803b-696f-4ed1-b791-b2c1bfbe6ed0

📥 Commits

Reviewing files that changed from the base of the PR and between 46d2c31 and 00e95fe.

📒 Files selected for processing (1)
  • tests/test_normalize_file_path.py

📝 Walkthrough

Walkthrough

This PR expands CI to run tests on Linux, Windows, and macOS; adds a Windows-only PyInstaller build + smoke-test; updates the launcher to parse CLI args passed from sys.argv; and adds win32-only normalize_file_path tests and a module docstring update.

Changes

Cross-Platform CI and Windows Desktop Build Verification

Layer / File(s) Summary
Launcher CLI argument parsing
launcher.py
main accepts an optional `argv: list[str]
Multi-OS test matrix
.github/workflows/tests.yml
Unit-test job matrix expanded from single OS to ubuntu-latest, windows-latest, and macos-latest with updated comments.
Windows PyInstaller build and smoke-test
.github/workflows/tests.yml
New conditional workflow steps install PyInstaller, build the desktop onedir bundle from cursor-browser.spec, and smoke-test the produced Windows executable with --help; runs only on windows-latest with Python 3.12.
Tests module docstring update
tests/test_normalize_file_path.py
Module docstring updated to reflect new test inventory (23 cases) and note win32-focused additions.
Windows path normalization test additions
tests/test_normalize_file_path.py
Add TestNormalizeFilePathWindowsNative (win32-only) with two tests: stripping a leading backslash before a drive letter and normalizing file:///C:\... URIs containing backslashes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • timon0305
  • wpak-ai

Poem

🐰 I polished CI for every shore,

Windows, Mac, and Linux — threefold more.
The launcher listens to the args you send,
PyInstaller builds and tests the end,
Path tests hop in — stable once more. 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the three main changes: CI matrix expansion, Windows path tests, and PyInstaller smoke test. It is specific, concise, and clearly reflects the primary objectives.
Linked Issues check ✅ Passed The PR addresses all acceptance criteria from issue #44: expanded CI matrix to multiple OSes [#44], added Windows-native path tests [#44], added PyInstaller build and smoke test [#44], and updated launcher.py for --help support [#44].
Out of Scope Changes check ✅ Passed All code changes align with issue #44 objectives: workflow matrix expansion, Windows path testing, PyInstaller integration, and command-line argument support for headless testing.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/crossplatform-singleosci-pathduplication

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

@bradjin8 bradjin8 requested a review from clean6378-max-it May 20, 2026 19:54
@bradjin8 bradjin8 self-assigned this May 20, 2026
@clean6378-max-it
Copy link
Copy Markdown
Collaborator

tests/test_normalize_file_path.py:110 — test_percent_encoded_drive_on_win32 duplicates the win32 branch of test_percent_encoded_colon_in_uri_prefix (lines 60–63); consider dropping the new case or narrowing it to behavior not already asserted in TestNormalizeFilePathPercentEncoding.

@clean6378-max-it clean6378-max-it requested a review from wpak-ai May 20, 2026 21:48
@wpak-ai wpak-ai merged commit 6074381 into master May 20, 2026
16 checks passed
@wpak-ai wpak-ai deleted the feat/crossplatform-singleosci-pathduplication branch May 20, 2026 23:11
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.

Cross-Platform + Single-OS CI + Path Duplication (COMPOUND-D)

3 participants