Skip to content

Fix Windows CI regressions from #51 - #52

Open
elkaix wants to merge 1 commit into
mainfrom
fix/windows-ci
Open

elkaix wants to merge 1 commit into
mainfrom
fix/windows-ci

Conversation

@elkaix

@elkaix elkaix commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Main's ci is red on Windows after #51 (windows-latest: 10 failures; windows-arm64: 84, nearly all from one cause).

  • git-exec: GIT_CONFIG_GLOBAL/SYSTEM back to /dev/null. Git for Windows special-cases it, but Windows ARM64 Git cannot open NUL (fatal: unable to access 'NUL': Invalid argument).
  • seatbelt: the Windows home fallback accepts a drive-less \\Users\\<name>, which is what a POSIX-rooted home normalizes to on Windows.
  • Tests:
    • feed the large index through --index-info stdin, since Windows caps a command line at 32K characters (spawn ENAMETOOLONG);
    • compare worktree paths through native realpath (8.3 short names) and resolved Git output (forward slashes);
    • remove the hidden .git file before rewriting it (EPERM);
    • guard the host-cp probe test like its siblings;
    • give the fresh-fixer pipeline test a 120s budget.

Verified locally on macOS: tsc clean; the affected suites pass; the pre-push full suite passed. The Windows jobs are the real check.

Summary by CodeRabbit

  • Bug Fixes
    • Git operations without a specified identity now ignore global and system Git configuration consistently across platforms.
    • Windows home paths without a drive-letter prefix are now recognized by the sandbox.
  • Tests
    • Updated runtime checks for platform differences and resolved worktree paths, and extended the timeout for a worktree test.

- git-exec: point GIT_CONFIG_GLOBAL/SYSTEM at "/dev/null" again; Git for
  Windows special-cases it, while Windows ARM64 Git cannot open "NUL".
- seatbelt: accept a drive-less \Users\<name> home, which a POSIX-rooted
  home normalizes to on Windows.
- Tests: feed the large index through --index-info stdin (Windows caps a
  command line at 32K), compare worktree paths through native realpath
  (8.3 short names) and resolved Git output (forward slashes), remove the
  hidden .git file before rewriting it, guard the host-cp probe test like
  its siblings, and give the fresh-fixer pipeline test its 120s budget.
@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: PyModel/claude-architect/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: 0b878630-abd8-45d1-99ee-9838b44a0d9d

📥 Commits

Reviewing files that changed from the base of the PR and between d4e3b84 and baf5c22.

⛔ Files ignored due to path filters (1)
  • runtime/server.mjs is excluded by !runtime/**
📒 Files selected for processing (7)
  • src/git/git-exec.ts
  • src/platform/sandbox/seatbelt.ts
  • tests/runtime/dependency-link.test.ts
  • tests/runtime/git-exec.test.ts
  • tests/runtime/pipeline-runtime.test.ts
  • tests/runtime/worktree-manager.test.ts
  • tests/runtime/worktree-sweep.test.ts

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour.


📝 Walkthrough

Walkthrough

The changes update Git configuration handling and path resolution for platform-specific cases. Runtime tests also adjust index setup, worktree path comparisons, platform eligibility, and timeout settings.

Changes

Runtime compatibility

Layer / File(s) Summary
Git execution and index setup
src/git/git-exec.ts, tests/runtime/git-exec.test.ts
Git calls without userIdentity now set GIT_CONFIG_GLOBAL and GIT_CONFIG_SYSTEM to /dev/null on all platforms. The large-index test submits its 11,000 records in one update-index --index-info call.
Platform path handling
src/platform/sandbox/seatbelt.ts, tests/runtime/worktree-manager.test.ts, tests/runtime/worktree-sweep.test.ts
The Windows user-home pattern accepts paths without a drive-letter prefix. Worktree tests resolve registered paths before comparing them. managedRootOf uses realpathSync.native, and the pointer-tampering test removes the existing .git entry before writing its replacement.
Runtime test setup
tests/runtime/dependency-link.test.ts, tests/runtime/pipeline-runtime.test.ts
The forced clone-failure test runs only on Darwin and Linux. The fresh-fixer-worktree test uses a 120-second timeout.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to baf5c

No actionable merge-blocking risk is identified in these changes. The Windows CI results remain the normal confirmation for the reported regressions.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description clearly explains the Windows regressions and the implemented fixes. It does not follow the required template: it omits the required section headings, related-issue details, exact verif… Rewrite the description using all template sections. Identify the related issue or state why none is needed. List exact commands and results, including npx tsc --noEmit, npx vitest run, and narrow test coverage. Document trust-boundary …
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 7 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately identifies the primary change: fixing Windows CI regressions caused by #51. It is concise and specific.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description clearly explains the Windows regressions and the implemented fixes. It does not follow the required template: it omits the required section headings, related-issue details, exact verification commands and results, trust-boundary assessment, and contributor checklist.

Resolution

Rewrite the description using all template sections. Identify the related issue or state why none is needed. List exact commands and results, including npx tsc --noEmit, npx vitest run, and narrow test coverage. Document trust-boundary and platform impact, or state None. Complete every contributor checklist item.

  • Fix all pre-merge checks with AI

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

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR

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