Migrate filesystem clients to broker - #1334
Open
Weidong Cui (wdcui) wants to merge 24 commits into
Open
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Filesystem resolution, backends, and the 9P client now live in litebox_broker_core, so their tests move with them and exercise the broker-core Resolver and backends directly. The ported suites no longer build a BrokerCore, a host/local transport pair, shared memory, or guest descriptors, which lets `litebox` drop its test-only broker harness and the compatibility module paths that existed only for these tests. - litebox_broker_core: add `fs::tests` (in-memory, tar, overlay, devices, and composed backends), `fs::nine_p::tests`, and the `fs::test_support` facade that pairs a resolver with session-shaped device I/O; share one `test_platform` between the fs and session tests. - litebox: replace `fs::tests` with focused guest-facade tests that script broker responses over a local channel, covering context path resolution, value conversion, descriptor lifetime, and broker error mapping. - Delete `litebox::test_broker` (and its `OnceLock<BrokerCore>`), the test-only `fs` re-export modules, and the now-unused dev-dependencies. - Run litebox_broker_core on the AArch64 CI job so the 9P coverage that moved out of `litebox` still runs there. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Move runner loader coverage onto the production broker launcher and replace shim-wide BrokerCore fixtures with protocol-level guest tests. Windows registry defaults are now seeded lazily so constructing unrelated shim tests performs no file requests, while explicit file integration tests own their broker setup without process-global state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
|
🤖 SemverChecks 🤖 Click for details |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Use protocol file status, directory entries, and node identities directly across LiteBox, broker core, and shims. Preserve nonzero device identities and narrow metadata only at ABI and memory boundaries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Remove the separate File marker and make FileFd non-generic. Update Linux and Windows consumers while preserving Arc ownership and descriptor lifetime behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Keep raw Linux open flags at the ABI boundary and use protocol access modes and flags directly throughout LiteBox and broker backends. Consolidate lexical path normalization in the protocol and remove duplicate definitions and intermediate conversions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Remove the obsolete guest 9P transport and broker-core dependency, drop dead file backing APIs, and simplify Windows file and registry integration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Re-export canonical protocol filesystem types under the existing broker-core names to minimize migration-only churn. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Keep canonical filesystem metadata aligned with the existing broker-core field names to avoid migration-only churn. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Keep the existing qualified type references where imports would add migration-only churn. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
Convert canonical file size once and retain the existing usize-based resolver offset calculation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 239ec5f7-870a-4259-bcae-4ca85fb913a0
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.
This PR moves LiteBox filesystem access behind the broker-owned file service by wiring file RPCs into the guest resolver, constructing authoritative Linux and Windows broker filesystems, requiring broker connections in production shims and runners, and migrating registry, loader, mmap, and test paths to the production broker transport while preserving existing filesystem behavior.