Skip to content

feat(protocols): add NOW execution client - #82

Merged
Vladyslav Nikonov (vnikonov-devolutions) merged 4 commits into
masterfrom
extract-now-client
Jul 14, 2026
Merged

feat(protocols): add NOW execution client#82
Vladyslav Nikonov (vnikonov-devolutions) merged 4 commits into
masterfrom
extract-now-client

Conversation

@mamoreau-devolutions

Copy link
Copy Markdown
Contributor

Summary

  • add the publishable Tokio now-client crate over caller-provided async byte streams
  • implement bounded PDU deframing, capset negotiation, peer-heartbeat liveness, typed errors, and serialized tracked Process/Batch/WinPs/Pwsh execution
  • keep Run/detached submissions fire-and-forget and quarantine Gateway's immediate Run frames before the next tracked operation

Scope

DVC pipe setup, reconnect creation policy, IPC retention, Abort, and Shell submission remain consumer concerns.

Validation

  • cargo xtask rust tests -v
  • cargo xtask rust lints -v

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I have a few minor comments (maybe one not-so-minor about session id), but looks good overall.

Comment thread protocols/rust/now-client/src/client.rs Outdated
Comment thread protocols/rust/now-client/src/capabilities.rs Outdated
Comment thread protocols/rust/now-client/src/client.rs Outdated
Comment thread protocols/rust/now-client/src/client.rs Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a publishable Tokio-based NOW execution client with capability negotiation, bounded framing, liveness monitoring, and serialized execution handling.

Changes:

  • Adds tracked and detached Process, Batch, WinPs, Pwsh, and Run APIs.
  • Implements protocol framing, negotiation, heartbeat handling, typed errors, and bounded queues.
  • Adds tests, documentation, and workspace dependency registration.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
Cargo.toml Pins the NOW PDU dependency version.
Cargo.lock Records the new crate and dependencies.
protocols/rust/now-client/Cargo.toml Defines the publishable client crate.
protocols/rust/now-client/README.md Documents behavior and scope.
protocols/rust/now-client/src/lib.rs Exposes the public API.
protocols/rust/now-client/src/capabilities.rs Models negotiated capabilities.
protocols/rust/now-client/src/client.rs Implements connection and execution handling.
protocols/rust/now-client/src/config.rs Defines limits and defaults.
protocols/rust/now-client/src/error.rs Defines typed client errors.
protocols/rust/now-client/src/exec.rs Builds and validates execution requests.
protocols/rust/now-client/src/frame.rs Implements bounded PDU deframing.

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

Comment thread protocols/rust/now-client/src/client.rs Outdated
Comment thread protocols/rust/now-client/src/client.rs Outdated
Comment thread protocols/rust/now-client/src/client.rs Outdated
Comment thread protocols/rust/now-client/src/exec.rs
Comment thread protocols/rust/now-client/src/client.rs Outdated
Comment thread protocols/rust/now-client/src/capabilities.rs Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

@CBenoit Benoît Cortier (CBenoit) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Left small comments, nothing really big. I’ll leave the final approval and merge to Vlad. I’ll handle the initial publish + Trusted Publishing configuration tomorrow when the PR lands.

Comment thread Cargo.toml Outdated
Comment thread protocols/rust/now-client/Cargo.toml Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@vnikonov-devolutions
Vladyslav Nikonov (vnikonov-devolutions) merged commit 9e1ea0a into master Jul 14, 2026
9 checks passed
@vnikonov-devolutions
Vladyslav Nikonov (vnikonov-devolutions) deleted the extract-now-client branch July 14, 2026 07:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants