Fix/windows terminal shell - #80
Conversation
Gate Unix-domain-socket single-instance support to Unix targets, leaving Windows on the existing multi-instance behavior. Compare the new explicit-directory tree test with PathBuf values so native separators do not fail the suite.
Give Enter a Terminal-scoped action so it shadows the app-level confirmation binding and writes carriage return to the PTY. Add a GPUI key-dispatch regression test.
AI Review: Ship itA solid portability PR that makes Kyde's terminal, single-instance guard, update checksum, and tests work on Windows without regressing Unix. The changes are well-scoped: each platform fork is cleanly gated with
Walkthrough
How to verify
Automate: Product take: This unblocks Windows as a real target. The Enter-key fix is the highest-value change - without it the embedded terminal is unusable. The rest is necessary plumbing to get Assumptions & unverified claims
A PR that teaches an app to speak both |
What & why
Kyde currently reaches several Unix-only assumptions when built and used on Windows:
$SHELLand falls back to/bin/zsh, which cannot spawn on Windows.ConfirmKeybinding consumes Enter before the focused terminal can submit a command.shasum, Unix executable bits, LF line endings, or/path separators.This PR makes those paths portable:
%COMSPEC%for Windows terminal sessions, withcmd.exeas a fallback.\rto the PTY, plus a GPUI dispatch regression test.sha2is already in Kyde's normal dependency graph.How to test
On Windows:
fxc.exeonPATH.cargo build.cargo test --all.echo hello, and press Enter.Checks completed on Windows:
cargo fmt --all -- --checkcargo clippy --all-targets -- -D warningscargo test --allcargo buildSpeed & footprint
perf_*guard test.sha2was already present in Kyde's normal dependency graph.Checklist
cargo buildis clean (no new warnings).cargo testis green (cargo test perfif you touched a hot path).CHANGELOG.mdis updated;README.md/CLAUDE.mddo not need changes for this behavior.