Skip to content

feat: implement & test open_at#363

Open
Sl1mb0 wants to merge 9 commits intomainfrom
tm/open-at
Open

feat: implement & test open_at#363
Sl1mb0 wants to merge 9 commits intomainfrom
tm/open-at

Conversation

@Sl1mb0
Copy link
Contributor

@Sl1mb0 Sl1mb0 commented Feb 9, 2026

Closes #336

I followed the specification described here. Given that we will eventually need to test this against the wasi test-suite, any differences between the aforementioned spec and the test-suite will favor the test-suite; so significant changes may need to be made in the future.

Describe your proposed changes here.

  • I've read the contributing section of the project CONTRIBUTING.md.
  • Signed CLA (if not already signed).

@Sl1mb0 Sl1mb0 force-pushed the tm/open-at branch 12 times, most recently from a5a3acf to 967f281 Compare February 10, 2026 02:07
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Implements POSIX/WASI-like open_at behavior in the in-memory VFS so guests can open existing nodes and create/truncate files (a prerequisite for enabling host-side FS writes), and updates unit/integration tests to reflect the new semantics.

Changes:

  • Refactors VFS path resolution and expands VfsCtxView::open_at to handle CREATE, EXCLUSIVE, DIRECTORY, and TRUNCATE.
  • Adds extensive unit tests around open_at behavior and updates integration test expectations/snapshots.
  • Makes Limiter::grow take &self (internally synchronized), simplifying ownership/mutability in component setup.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
host/src/vfs/mod.rs Implements new open_at semantics, factors path traversal helper, and adds unit tests.
host/src/limiter.rs Changes grow to &self to allow shared use behind a mutex.
host/src/component.rs Adjusts limiter initialization to match the new Limiter::grow signature/usage.
host/tests/integration_tests/python/runtime/fs.rs Updates Python FS integration test to exercise create-on-open behavior.
host/tests/integration_tests/evil/fs.rs Updates large snapshot expectations for new VFS/open behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Sl1mb0 Sl1mb0 force-pushed the tm/open-at branch 9 times, most recently from d7bd5c4 to adb81f9 Compare February 10, 2026 04:57
@Sl1mb0 Sl1mb0 force-pushed the tm/open-at branch 3 times, most recently from c06aaab to eca54f2 Compare February 10, 2026 14:18
@Sl1mb0
Copy link
Contributor Author

Sl1mb0 commented Feb 10, 2026

This is a massive PR but most of the diffs are in the tests; the actual implementation is fairly minimal.

@Sl1mb0 Sl1mb0 requested a review from mhilton February 10, 2026 14:52
@Sl1mb0 Sl1mb0 force-pushed the tm/open-at branch 7 times, most recently from 162426f to 2a96695 Compare February 12, 2026 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor HostDescriptor::open_at for VfsCtxView to allow writes

3 participants