Repository navigation
Conversation
25bc9fe to
bae969e
Compare
zibi-pplx
left a comment
There was a problem hiding this comment.
The shared upload path looks right. Admission happens before the first poll, the per-message limits and bounded relay are preserved, and accepting borrowed and !Unpin streams is nicely ergonomic. The gRPC Write refactor keeps its semantics. I'm requesting changes for two API issues on the native surface (inline):
- Split upload API / unnameable handle.
filesystem_service()returns an opaque type whosewritecan't be called natively, so uploads need a separateExecutionServiceclone. - No idle timeout on native uploads. A stalled stream pins a payload slot and blocks same-key retries.
Non-blocking: environment validation is inconsistent between configure_process_env and native StartRequest.env (inline, README). The same Kind/Firecracker CI note as #702 applies.
Review prepared with AI assistance (Claude Code); findings checked against the PR head.
fe9419f to
492a71f
Compare
492a71f to
3047daf
Compare
129719e to
f41757c
Compare
|
Follow-up review at The earlier nameable-handle and upload-idle-timeout findings are addressed, and the shared native/gRPC environment sanitization is now documented. I found no additional upload correctness issue. Two non-blocking API points remain:
Codex-assisted follow-up review. Findings were checked against the referenced head; shutdown/drain findings are posted on their owning PRs. |
Let ExecutionService::write_file accept a caller-owned stream of the existing upload messages. Route gRPC through the same handler, preserving admission before input polling, frame limits, backpressure and cleanup. Document the existing bounded EnvMap configuration contract. Extend the embedding probe with native upload/gRPC replay and environment replacement, request precedence and running-process snapshots.
Keep the generic upload wrapper small and run its body through a borrowed pinned stream. Preserve admission before polling and support for borrowed, non-Unpin input without allocating a boxed stream. Document caller-owned upload deadlines, native start environment filtering and the upload handle. Check Send on a borrowed upload future and verify that an oversized replacement preserves the committed file after cleanup.
Use one default across config, filesystem handles and daemon wiring. Document zero-duration behavior and config struct literal updates.
Point embedding documentation at the guest-process crate.
95bcdff to
30011f3
Compare
|
Addressed the follow-up review in |
Summary
Expose a nameable
FilesystemHandlewith nativewrite_file. Share admission, frame limits and supervised execution with gRPC; bound native input waits with a configurable 30-second idle timeout. Borrowed/non-Unpin streams remain supported. Share one idle default and document zero-duration and config-literal behavior. Daemon gRPC upload behavior is unchanged. Add a state-freeDebugimplementation forFilesystemHandleand clarify the experimental Rust compatibility policy.Implements native uploads from the embedding RFC.
Validation
418 affected tests passed on the rebased stack, including five privileged probes. Formatting, affected all-feature/no-default-feature Clippy and doctests passed on Linux. Native macOS and Kind/Firecracker were not rerun locally; CI is pending on this head.
Severity and risk
Severity does not apply: new native API. Slow native uploads can reach the idle timeout; callers can configure it. Revert with dependent changes to roll back.
AI assistance: Codex contributed code, tests and this description.