Skip to content

Commit ebb8a9c

Browse files
committed
docs: capture Windows compatibility guidance
1 parent cc53f59 commit ebb8a9c

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,16 @@ CLI input
118118
- For CLI, config, or pager work: make sure the relevant source invocation still works (`diff`, `show`, `patch`, or `pager`).
119119
- Preserve current interaction model unless the user asks to change it explicitly.
120120

121+
## Windows compatibility
122+
123+
- Normalize filesystem paths in tests with Node `path` helpers (`resolve`, `join`, `relative`, or `normalize`) instead of expecting hard-coded `/tmp/...` or POSIX separators.
124+
- Keep command/API payload expectations intentional: normalize real local filesystem paths, but preserve user-provided or protocol paths when the product is supposed to pass them through unchanged.
125+
- Avoid POSIX shell syntax in GitHub Actions steps that run on Windows; invoke `bun test ...` or scripts directly rather than relying on `${VAR:-fallback}` expansion.
126+
- Disable Git CRLF conversion before checkout in Windows CI (`core.autocrlf false`) so format checks see repository line endings.
127+
- Do not force Unix PTY/TTY smoke coverage onto Windows. Prefer the full non-PTY unit/integration surface there, and keep terminal-native PTY smoke tests on Unix runners.
128+
- Be careful with Bun timers and sockets on Windows: `timeout.unref?.()` can prevent expected test timers from firing, and some low-level websocket/net close cases may need coverage at a less crash-prone layer.
129+
- Avoid creating fixtures with filenames that are invalid or unreliable on Windows (for example paths containing tabs or other special characters) unless the test is explicitly Unix-only.
130+
121131
## releases
122132

123133
- Maintain the top-level `CHANGELOG.md` as the source of truth for user-visible changes.

0 commit comments

Comments
 (0)