# cloud9 integration The published `cloud9` package owns the base 9P2000 wire format, client and server connections, and TCP/Unix/QUIC transports. `build.zig.zon` pins a commit from `git@git.sr.ht:~gbrls/cloud9`, so `zig build` fetches it into `zig-pkg/` like every other dependency; no sibling checkout is required. Re-pin with `zig fetch --save=cloud9 git+https://git.sr.ht/~gbrls/cloud9#`, and swap in `.cloud9 = .{ .path = "../cloud9" }` while editing both packages at once. `src/9p.zig` remains the adapter between cloud9 requests and Pardes filesystem operations. Mounting, Unix namespace discovery and permissions, the editor event loop, connection limits, and exported tree policy remain here. `src/9p_quic.zig` selects the existing `pardes-9p` ALPN for cloud9's optional OpenSSL transport. The snapshot client and standalone protocol/GPIO tests import the same module. The separate `05-zig-p4` build also supplies cloud9 for the GPIO firmware entry. Run `zig build 9p-test` for the filesystem adapter and `zig build 9p-io-test -Dquic=true` for native transport/client integration. Run cloud9's `zig build test`, `transport-test`, `quic-test -Dquic=true`, `fuzz`, and `differential` steps for the shared implementation. See cloud9's `docs/validation.md` for recorded runs and known test-environment limits. Invalid framing now terminates a server connection. Cloud9 also checks reply counts and reserves tags until flush completion. Client metadata is slightly larger to track those reservations, and its bounds tests reflect that fixed cost.