Repository navigation
Conversation
Adds a platform layer (file locks via LockFileEx, atomic replace with retry, junction/symlink rejection, Job Object process-tree kill, Windows-aware command parsing, UTF-8 console I/O) and runs the oracle isolation through the Codex Windows sandbox (elevated) with the same fail-closed rule as on Linux. POSIX code paths are kept as they were. Also: cross-platform CI matrix (Linux/macOS/Windows x Python 3.11/3.12), engine_tests for the Windows layer, skill tests that skip when symlinks are unavailable, LF line endings via .gitattributes, and Windows documentation with its known limits (including the DNS channel out of the sandbox).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Makes the engine run natively on Windows (no WSL), keeping the Linux/macOS code paths as they were.
orvant_op/uyum.py,uyum_komut.py,uyum_surec.py): file locks viaLockFileEx(sameBlockingIOErrorcontract asflock), atomic replace with retry, junction/symlink rejection, no-follow open, Job Object process-tree kill, Windows-aware command parsing, UTF-8 console I/O.fcntl,killpg,O_NOFOLLOW,/proc,/bin/shand similar are no longer imported or called directly on Windows.mimar/yalitim_windows.py,mimar/kehanet.py): runs throughcodex sandbox(elevated mode) with the same fail-closed rule: if isolation cannot be proven, the oracle does not run. The sandbox user cannot execute a Python from the user profile, so a readable copy is created explicitly withpython -m orvant_op.mimar.yalitim_windows kur(never silently).engine_testsstep, skill tests that skip when symlinks are unavailable..gitattributesforces LF so hashes and managed-file comparisons stay stable undercore.autocrlf=true; Windows docs indocs/WINDOWS.mdanddocs/WINDOWS.tr.md.Verified (Windows 11 Home, Python 3.12, codex-cli 0.158.0, default cp1254 encoding)
engine_tests: 103 tests OK (2 POSIX-only skipped).tests/: 237 tests OK (7 skipped here because symlink creation needs privileges; they run where symlinks work).orvant --helpand the sub-command help screens; the model-free flow (karsila baslat,sorular).codex sandboxrun, 22 tests: writes outside the gate tree and outbound TCP are blocked; missing Codex / missing sandbox Python / unreadable profile Python all fail closed.Not verified
kehanet.pyforced into Linux mode (command, environment and result were identical for both backends) and kept POSIX branches unchanged, but please let your CI confirm.pip install ./ theorvant.exeentry point, and a Claude Code worker on Windows.Known Windows-only security limit
Inside the Windows sandbox, DNS lookups can still leave through the system DNS service and the sandbox can read the whole disk (same read level as bwrap's
--ro-bind / /). The oracle script itself has no network access, but a worker program it runs could leak data over DNS. Linux has no such channel. This is documented in both READMEs anddocs/WINDOWS.md.Notes for review
O_NOFOLLOW, so the check-to-use window inteshis/gecici_artikandyurutme/kat_kapiis weaker than on POSIX (commented in code).