Skip to content

fix: windows compatibility#185

Merged
lihbr merged 12 commits into
mainfrom
lh/win32-compat
May 13, 2026
Merged

fix: windows compatibility#185
lihbr merged 12 commits into
mainfrom
lh/win32-compat

Conversation

@lihbr
Copy link
Copy Markdown
Member

@lihbr lihbr commented May 12, 2026

Resolves: N/A

Description

Adds Windows CI and fixes Windows incompatibilities.

  • Glob patterns need to be POSIX
  • Strengthen test temp directory deletion mechanism (directory release is slower on Windows)
  • Update test assertions to work with Win32 paths
  • Increase timeouts for tests installing dependencies

Checklist

  • If my changes require tests, I added them.
  • If my changes affect backward compatibility, it has been discussed.
  • If my changes require an update to the CONTRIBUTING.md guide, I updated it.

Preview

How to QA 1


Note

Medium Risk
Medium risk because it changes filesystem path resolution (via realpath) and globbing behavior, which can affect how projects are discovered and models are located across platforms.

Overview
Improves cross-platform (especially Windows) support by making model discovery globs POSIX-friendly (tinyglobby with cwd instead of URL-to-path glob strings) and normalizing project/Git roots via realpath before converting to file:// URLs.

Expands CI to test multiple Node versions and adds a dedicated Windows test job, and hardens tests for Win32 by increasing install-related timeouts, making temp dir cleanup more resilient, and adjusting path assertions to use platform separators.

Reviewed by Cursor Bugbot for commit c501c2d. Bugbot is set up for automated code reviews on this repo. Configure here.

Footnotes

  1. Please use these labels when submitting a review:
    ❓ #ask: Ask a question.
    💡 #idea: Suggest an idea.
    ⚠️ #issue: Strongly suggest a change.
    🎉 #nice: Share a compliment.

Comment thread .github/workflows/validate.yml Outdated
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 6d73688. Configure here.

Comment thread src/commands/pull.ts Outdated
Comment thread test/pull.test.ts Outdated
Comment thread src/project.ts
}
const projectRoot = new URL(".", configPath);
return projectRoot;
return appendTrailingSlash(pathToFileURL(await realpath(fileURLToPath(projectRoot))));
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is a bit weird, but basically we need to ensure we resolve real paths on Windows, otherwise some paths yield %USERPROFILE% while others yield actualUserName

@lihbr lihbr changed the title ci: run on windows fix: windows compatibility May 12, 2026
Copy link
Copy Markdown
Contributor

@jomifepe jomifepe left a comment

Choose a reason for hiding this comment

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

LGTM, great catch 💯

@lihbr lihbr merged commit 79e9cc9 into main May 13, 2026
28 of 29 checks passed
@lihbr lihbr deleted the lh/win32-compat branch May 13, 2026 00:01
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