Repository navigation
Windows development supervisor (phase 2) - #61
Merged
Merged
Conversation
Reuse owned Jobs for desktop and Web children, cancellation and output. Add private session directories, named-pipe reload exchanges and pipe readiness. Keep browser openers outside owned Jobs and reject Swift capture explicitly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Exercise real Jobs and named pipes through reload, cancellation and shutdown. Keep inherited output readers and detached browser openers in the cleanup assertions. Run Windows supervisor tests before GPUI CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Use a YAML block for the Rust module filter and document the Windows supervisor security and lifetime boundaries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Initialize portable watch roots in bundle fixtures. Keep unavailable capture adapters inhabited and run source subprocesses through owned Jobs with bounded cancellable pipe reads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pass the complete terminated UTF-16 buffer to FileRenameInfoEx. Cover varying Unicode filename alignments and replacement while readers retain the previous snapshot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reset accepted sockets before bounded request readers use them. Use native path components in the junction confinement fixture. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Poll request reads instead of blocking in Winsock recv during shutdown.\nKeep the existing 15-second read bound and Unix I/O behavior.\nObserve pending Windows test connections without a receive timeout,\nwhich can invalidate them before the remaining request is sent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the response socket alive until an explicit send shutdown queues its FIN. Preserve strict segmented-response assertions and include handler errors and partial response bytes in test failure diagnostics. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Windows and all other active jobs passed at 22c6211. Restore the original main-only PR trigger after stacked validation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bring in merged phase 1 and preserve main's lint/workflow updates. Keep the Windows supervisor changes and main-only PR trigger. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1bye
marked this pull request as ready for review
November 12, 2026 16:42
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.
Phase 2 of #57, targeting main after #59 merged as 616ab4c.
rake devnow runs the desktop and Web supervisor on Windows. App/build/service children use the existing suspended-enrollment, kill-on-close Job boundary; readers finish after owned descendants stop. Browser openers run as detached raw processes outside owned Jobs and survive session shutdown. Windows--previewfails explicitly because native capture remains macOS Swift. CLI inspection, CDP enablement and native source opening remain phase 3.Windows readiness preserves byte bounds and EOF/last-line behavior using cancellable anonymous-pipe polling. Named-pipe reload/checkpoint exchanges retain the total deadline, mutation keys and matching abort after cancellation. HTTP request reads poll for shutdown on Windows; responses send their FIN before socket handles close. Unix retains its process groups, signals and existing I/O behavior. Flags, status/JSON formats, session layout and protocols are unchanged.
Security: phase 1's current-user-only DACL, owner and reparse validation protects discovery, checkpoints and JSON output. Session/helper directories are exclusively created with owner-only DACLs. Children enter the Job while suspended, preventing descendants escaping initial enrollment. Windows fingerprints use UTF-16 paths and skip reparse points; Unix path bytes and ordering remain unchanged. Web origins retain token authentication and the refusal to bridge native IPC without authorization.
Windows integration coverage uses real Jobs, production private files/named pipes and a headless app fixture. It exercises start, stateful reload, checkpoint abort, inherited output readers, descendant termination, UTF-8 output, detached-opener survival, Web reload/origin shutdown, readiness EOF/last-line/overflow/cancellation and junction-excluding fingerprints. CDP/companion readiness uses explicit process fixtures. No test bounds or assertions were relaxed.
Validation at current head b6ef6ad: main-base CI run passed every active job:
Mac validation: full CLI suite 355 passed, zero failed, two existing ignored with installed Python 3.14.4; relevant project-build repeat 68 passed; final HTTP suite 6 passed. CLI/client all-target Clippy with warnings denied, formatting, full spacing and
rake lintpassed (734 files, 14 existing diagnostics, zero denied). Workflow YAML parsed locally.Live Mac Fieldnotes desktop
--cdp --no-open --port 18082: real control info/tree and matching CDP target, stateful reloads restored generations 2 and 3. Ctrl-C exited zero, status became stopped, discovery emptied and every owned process exited. The live Web--target web --no-open --port 18081invocation failed before startup because matching wasm-bindgen 0.2.129 is absent; no tools were installed. Linux verification is CI, not a local devbox run. Full Windows-target Clippy was attempted but ring requires missing Windows CRTassert.h; an isolated Windows boundary/helper harness passed Clippy compilation. Actual Windows execution is established by the desktop CI job above, not that harness.The clearly labelled temporary stacked-PR trigger was removed in 59c95dd after stacked validation. After the approved phase-1 merge, this PR was retargeted to main and origin/main was merged without conflicts in b6ef6ad. Main's lint/workflow changes are preserved; the PR diff contains only phase 2. All six Mac HTTP tests, formatting and workflow YAML parsing passed after the merge. Fresh main-base CI passed every active job, including Windows desktop, at that exact merge head. No lint code was edited. This PR remains draft and is not authorized for merge.
🤖 Generated with Claude Code