Skip to content

ci: add windows-latest to the test matrix#926

Merged
esengine merged 1 commit into
mainfrom
ci/windows-matrix
May 15, 2026
Merged

ci: add windows-latest to the test matrix#926
esengine merged 1 commit into
mainfrom
ci/windows-matrix

Conversation

@esengine
Copy link
Copy Markdown
Owner

Summary

Recent PRs landed Windows-specific bugs that Ubuntu-only CI couldn't catch — literal forward-slash separators in path comparisons (#911) and partial.startsWith("/") as the "is absolute path" heuristic (#922) both sailed through green on ubuntu-latest while shipping broken on the platform the bulk of our users actually run.

Add windows-latest to the existing matrix so every PR exercises the Windows code paths (taskkill tree-kill, MS Store node-shim detection, path separator handling, CREATE_NO_WINDOW, etc.) before review. Job name now includes the OS so the two runs are distinguishable in branch protection.

Side fix: the τ-bench dry-run hardcoded /tmp/tau-dry.json, which isn't a path on Windows. Swap for ${{ runner.temp }} — set on every GH Actions runner, POSIX and Windows alike.

Test plan

  • All 2906 tests pass locally on Windows + Git Bash before opening this — that's a strong (not perfect) signal that windows-latest will be mostly green.
  • If something breaks on windows-latest in CI that didn't break locally, I'll triage in a follow-up commit on this branch: either fix the test (preferred) or mark it.skipIf(process.platform === "win32") with a one-line reason. Goal is the matrix lands green; we'll inspect the first run's output to decide which path each failure takes.

Why not also macOS

Most behaviors mirror Linux. The differences (BSD-style ps / pkill, detached process-group semantics) aren't currently exercised by any test that doesn't also run on Linux. Cheap to add later if a Mac-specific bug surfaces.

Recent PRs hit Windows-specific bugs that Ubuntu CI couldn't catch —
literal forward-slash separators in path comparisons (#911) and
`partial.startsWith("/")` as an "is absolute path" heuristic (#922) both
sailed through `ubuntu-latest` while shipping broken on the platform
that most of the user base actually runs.

Add `windows-latest` to the existing matrix so every PR exercises the
Windows code paths (taskkill tree-kill, MS Store node-shim detection,
path separator handling, etc.) before review. Job name now includes the
OS so the two runs are distinguishable in branch protection.

Also swap the hardcoded `/tmp/tau-dry.json` in the τ-bench dry-run for
`${{ runner.temp }}` — RUNNER_TEMP is set on every GitHub Actions runner
including Windows, where `/tmp` isn't a path.
@esengine esengine merged commit db3c14e into main May 15, 2026
4 checks passed
@esengine esengine deleted the ci/windows-matrix branch May 15, 2026 10:04
esengine added a commit that referenced this pull request May 15, 2026
…870) (#932)

* feat(skills): auto-discover .agents/skills as a default root

Closes #870. The configurable-paths system from #925 lets users point at
any directory, but a user with existing skills already sitting in
`~/.agents/skills` or `<project>/.agents/skills` still has to find that
setting and configure it — which is exactly the friction the original
issue asked us to avoid.

Append `.agents/skills` to the default discovery list in
`SkillStore.roots()` at both project and global scope, alongside the
existing `.reasonix/skills` entries. Anything sitting in the
skills.sh-style convention now just works on first launch.

* test(settings): make skillPaths absolute-path assertion platform-agnostic

The combined-POST test from #925 asserts `resolved: "/opt/skills"` for an
input of `/opt/skills`, which only holds on POSIX. On Windows `/opt/skills`
isn't an absolute path — `path.resolve` rebases it against the current
drive and returns `F:\opt\skills` (or whatever `CWD`'s drive is). Same
behavior as the production code, just the test forgot to mirror it.

Wrap the expected `resolved` in `resolve(absolute)` so both the
production resolver and the test compute the value through the same
function. Linux output unchanged.

(This would have been caught by the matrix CI from #926, but #925's PR
build ran a few minutes before that landed.)

---------

Co-authored-by: reasonix <reasonix@deepseek.com>
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