-
Notifications
You must be signed in to change notification settings - Fork 0
Windows full-test compatibility and POSIX capability markers (#173) #184
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
e71679a
test: add windows CI baseline
hellices 7ddfb9b
test: harden workflow pin checks
hellices ae4713d
test: mark POSIX-only tilde expansion cases
hellices 8535fa9
fix(tests): Windows-compatible security/durability assertions (#173 T…
hellices e3b2810
refactor(tests): address review — deduplicate, use shared POSIX flag,…
hellices 115c9d9
fix: _run_write takes op factory, not eager awaitable (#173 Task 4 re…
hellices 7ca759f
chore: review cleanup — bounded wait, updated prose, remove inert rel…
hellices 3a2638e
test: harden gated-audit cancellation test with try/finally gate rele…
hellices 12a629d
fix: last 4 Windows failures — teardown guard, audit poll, path join …
hellices a4429cc
test: deterministic teardown regression — remove StatusBar, spy handl…
hellices 23b84f7
fix: _refresh_status guards NoMatches internally; poll proposal state…
hellices a9b3359
docs: add Windows contributor notes (#173 Task 5)
hellices af824e3
fix: crash-cap message uses ASCII dash; regression asserts encodabili…
hellices aa8c41d
test: harden Windows review follow-ups (#184)
hellices 96ab6b6
test: poll audit outcome inside run_test to prevent race (#173 Task 4)
hellices f1e871a
docs: correct Windows capability skip breakdown
hellices 53bfa0d
test: narrow Windows chmod spy signature
hellices File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| # Windows contributor notes | ||
|
|
||
| Native Windows development is supported for dependency sync and the full test | ||
| suite: | ||
|
|
||
| ```sh | ||
| uv sync --dev --all-extras | ||
| uv run pytest -q | ||
| ``` | ||
|
|
||
| PRs that touch shared/runtime behavior must also keep the required | ||
| `windows-test` CI job green. The proving run for issue #173 was | ||
| `30936032385`: **3376 passed / 37 skipped / 0 failures**. | ||
|
|
||
| ## Expected skips on Windows | ||
|
|
||
| - **21 opt-in contract-suite skips** when `KORVID_CONTRACT_RUN_ID` is unset. | ||
| - **16 capability skips**: | ||
| - **3 newly classified capability skips**: 2 `~user` POSIX account-lookup | ||
| cases (`tests/core/test_transfer.py`, `tests/ui/test_transfer_picker.py`) | ||
| and 1 POSIX directory-fsync failure case. | ||
| - **13 pre-existing platform skips** for POSIX-only permission semantics: | ||
| 7 local transfer permission-bit cases, 3 audit-log mode cases, | ||
| 2 transfer-stream late-permission-loss cases, and 1 unreadable CA bundle | ||
| permission case. | ||
|
|
||
| ## Current Windows limits | ||
|
|
||
| - Symlink tests depend on Windows **Developer Mode** (or an elevated shell): | ||
| native `Path.symlink_to()` can fail before korvid logic runs if symlink | ||
| creation is not allowed. The shared helper turns that into a capability skip | ||
| only when Windows symlink privilege is absent; the final hosted runner had privilege, so the count remained 37. | ||
| - Interactive shell attach can hit Textual's `SuspendNotSupported` path on | ||
| Windows/non-suspending drivers. That refusal is expected; render-only tests | ||
| pin `legacy_windows=False` for deterministic Rich output. | ||
| - NTFS uses ACLs, not POSIX mode bits. Tests verify atomic create/replace, the requested `0o600` mode, and durability semantics, but they do not claim ACL confidentiality. | ||
|
|
||
| ## Windows-specific fixes covered by the green run | ||
|
|
||
| - Log export opens files with `newline=""`, preserving exact LF bytes instead | ||
| of writing CRLF. | ||
| - Terminal/status text now stays ASCII-safe on cp1252-style consoles; the | ||
| literal replacements are `->` and `--`: | ||
| `korvid shell -> ...`, `korvid node shell -> ...`, and | ||
| `korvid crashed -- restart? [Y/n]`. | ||
| - The write gate now takes an `op_factory`, so blocked or cancelled writes | ||
| never create eager mutation coroutines; cancellation safety is | ||
| cross-platform. |
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
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
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.