Repository navigation
[CTX-1405] feat(ipc): Windows named-pipe transport for terminal IPC and devtools inspection - #2351
Merged
Merged
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 41 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Xuepoo
force-pushed
the
ctx-1405/feat-windows-named-pipe-ipc
branch
3 times, most recently
from
October 21, 2026 00:11
d6cdabe to
a99a2cd
Compare
Contributor
Author
|
Review fixes pushed at
CI is running on this head. |
Xuepoo
force-pushed
the
ctx-1405/feat-windows-named-pipe-ipc
branch
from
October 21, 2026 00:12
a99a2cd to
6e0d0d8
Compare
Contributor
Author
|
Doc-link cleanup amended; current head: |
Xuepoo
force-pushed
the
ctx-1405/feat-windows-named-pipe-ipc
branch
from
October 21, 2026 00:38
6e0d0d8 to
9574a07
Compare
Xuepoo
force-pushed
the
ctx-1405/feat-windows-named-pipe-ipc
branch
from
October 21, 2026 00:38
9574a07 to
fe6bdf5
Compare
Contributor
Author
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.
Priority: P2 | Area: area:ipc | Labels: feat,P2,area:ipc | Milestone: 0.0.25 | RFC: accepted IPC boundary (OQ-018) + devtools RFC (OQ-019) | Task: CTX-1405
Summary
Windows named-pipe transport for terminal-instance IPC (#2244) and the existing devtools inspection surface (#2243), reusing the shared
bitty-ipctransport rather than adding a second protocol.ipc_serve.rs: Windows servo mirrors the Unix lifecycle (resolve, bind, attest, accept loop, 16-connection shed) on\\.\pipe\bitty-<instance>with a protected current-user DACL. The dispatcher registration is shared throughbuild_dispatcher, soping, snapshots, consent, panel list, andbitty.debug/*inspection are identical.ctl/client.rs: Windows client connects through the shared pipe adapter (server process SID verified before returning) and uses the sameexchangeenvelope/framing/response parser as Unix. Target resolution derives the pipe from instance identity, accepts only\\.\pipe\overrides, and supports the exactly-one-live shortcut.list.rs: Windows instance discovery probes through the authenticated client, so only current-user-served pipes report live; pipe-namespace rows are ownership-filtered.--fail-loudaborts); there is no allow-all fallback, no TCP listener, and no hardcoded pipe name.bitty-ipcdependency bumped to merged main9493674(PR [CTX-0016] feat(ipc): Windows named-pipe transport with current-user SID checks bitty-ipc#37), which addsbitty-ipc-winpipe, WindowsVerifiedPeerSID verification, and the shared Windows serve loop.Tests
windows_named_pipe_serves_ctl_roundtrip(named mutation target: disabling the Windows serve path fails it), includingbitty.debug/getGridTextdenied withoutdebug.inspect; peer/SID, oversize-frame, bind-collision, proof-cross-connection, short-lived-probe, authorized/ungranted inspection tests live inbitty-ipcand run in its Windows CI job.Verification
cargo check -p bitty-terminal(Linux) green.cargo check -p bitty-terminal --all-targets --target x86_64-pc-windows-msvcgreen.cargo nextest run -p bitty-terminal -p bitty-runtime3680 passed, 1 skipped (before final pin-only bump; remote CI is authoritative).cargo clippy --workspace --all-targets --locked -- -D warningsgreen.cargo +1.85MSRV check green on thebitty-ipcside.Windows check and testruns the Windows-gated tests; no localact/ci-localwas used per task instruction.Closes #2244, #2243
Closes #2244
Closes #2243
Review follow-ups (head after re-push)
serve_in_backgroundentry point through acfg(test)advisory-environment seam (serve_in_background_for_tests), notwindows_servedirectly. Replacing the Windows arm ofserve_in_backgroundwithdegraded_guard()now failswindows_named_pipe_serves_ctl_roundtrip.test_mode.rs, the shared panel-list registration, and the Windows probe doc.MAX_LIST_INSTANCEScap.discover_live_pipespropagates a typedInstanceErroron registry/namespace read failure; onlyinstance liststays best-effort.bitty-terminal-docs#265for the stalelua-and-xdg.mdWindows pipe name (bitty-<username>-<instance-id>vs the RFC/implementationbitty-<instance-id>).component_request_surfacenow widens only its test-harness VM wall budget (10x, same precedent as bitty#2259/[P2] composer_headless_driver wall-clock budget flakes under CI load #1727/[P2] plugin_ui mount_loop wall-clock budget flakes under CI load #1744). The macOS failure wasWallClockExceededat 130 ms vs the 50 ms production budget; production budgets are unchanged.