Skip to content

Remove the binding request FFI exports - #1352

Merged
Gudge (MGudgin) merged 1 commit into
mainfrom
user/gudge/remove-binding-json-ffi
Oct 2, 2026
Merged

Gudge (MGudgin) merged 1 commit into
mainfrom
user/gudge/remove-binding-json-ffi

Conversation

@MGudgin

@MGudgin Gudge (MGudgin) commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

This PR removes the deprecated private run, spawn, and request-probe FFI
exports after Node and .NET move to exact JSON. It deletes the private
parser and then removes SDK authoring serde that the parser required,
leaving exact-contract parsing and shared engine dispatch in place.

Details

  • Remove private request entry points, adapters, fixtures, and generated
    binding inventory entries; retain the exact-config request probe.
  • Remove SDK authoring serde only after deleting its last private parser
    consumer; keep exact-contract and test-only fixture serde intact.
  • Retarget native FFI tests to exact 1.0.0 documents and give the standalone
    real-host smoke test an isolated container ID.
  • Clarify result ownership and the common one-shot/lifecycle process handle
    in the touched native, backend, and SDK documentation.

Tests

  • cargo fmt --all -- --check; workspace cargo check and clippy with
    --all-targets --all-features and -D warnings: passed.
  • Affected Rust engine, FFI, SDK, common, schema and strict rustdoc passed.
  • Node build/test: 394 passed, 20 skipped; .NET: 329 passed, 29 skipped.
  • Generated binding/API/contract parity and win-x64 Native AOT smoke passed.
  • Native Linux/macOS and elevated live-host suites were not run.
Microsoft Reviewers: Open in CodeFlow

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@MGudgin
Gudge (MGudgin) force-pushed the user/gudge/remove-binding-json-ffi branch from fdcddc6 to bc408e4 Compare September 30, 2026 17:18
@MGudgin
Gudge (MGudgin) force-pushed the user/gudge/remove-binding-json-ffi branch 2 times, most recently from ad9d090 to 83eb247 Compare September 30, 2026 17:32
@MGudgin
Gudge (MGudgin) force-pushed the user/gudge/remove-binding-json-ffi branch from 83eb247 to 854923f Compare September 30, 2026 20:29
@MGudgin
Gudge (MGudgin) changed the base branch from user/gudge/rust_ffi_json_ingress to user/gudge/dotnet-json-ffi September 30, 2026 20:29
@MGudgin
Gudge (MGudgin) force-pushed the user/gudge/remove-binding-json-ffi branch from 854923f to 3adb269 Compare September 30, 2026 20:31
@MGudgin
Gudge (MGudgin) added this pull request to stack #1356 September 30, 2026 21:26
@MGudgin
Gudge (MGudgin) marked this pull request as ready for review September 30, 2026 21:27
@MGudgin
Gudge (MGudgin) requested a review from a team as a code owner September 30, 2026 21:27
Copilot AI balanced review requested due to automatic review settings September 30, 2026 21:27
@MGudgin
Gudge (MGudgin) requested a review from a team September 30, 2026 21:30
@MGudgin
Gudge (MGudgin) force-pushed the user/gudge/remove-binding-json-ffi branch from 3adb269 to c23d5aa Compare September 30, 2026 21:30

Copilot AI left a comment

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.

Copilot review overview

🟡 Changes recommended

Retargeted host tests now share the default container identity, risking cross-test policy and cleanup interference.

Review effort: Balanced
Findings: 2 Medium severity · 1 Low severity

Open (3)
What changed in this PR

Removes the deprecated private binding-request FFI after SDK migration to exact-version JSON ingress.

Changes:

  • Removes legacy request exports, parser, fixtures, and tests.
  • Retargets FFI tests and documentation to exact JSON APIs.
  • Updates C# binding checks for retained JSON entry points.
File Description
tests/​policy/​request-wslc.json Removes legacy WSLC fixture.
tests/​policy/​request-process-container.json Removes legacy ProcessContainer fixture.
tests/​policy/​request-directional-network.json Removes legacy networking fixture.
tests/​policy/​README.md Documents retained fixture families.
src/​ffi/​mxc_ffi/​tests/​ffi.rs Retargets FFI tests to exact JSON.
src/​ffi/​mxc_ffi/​src/​streaming.rs Removes legacy spawn export and updates tests/docs.
src/​ffi/​mxc_ffi/​src/​state_aware.rs Updates retained handle references.
src/​ffi/​mxc_ffi/​src/​request.rs Deletes private request parser.
src/​ffi/​mxc_ffi/​src/​lib.rs Removes legacy run export and parser wiring.
scripts/​check-dotnet-bindings-codegen.js Drops removed signatures from checks.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/ffi/mxc_ffi/src/streaming.rs
Comment thread src/ffi/mxc_ffi/tests/ffi.rs Outdated
Comment thread src/ffi/mxc_ffi/src/streaming.rs Outdated
Copilot AI balanced review requested due to automatic review settings September 30, 2026 21:31

Copilot AI left a comment

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.

Copilot review overview

🔵 Needs a closer look

Unsafe handle documentation incorrectly excludes handles returned by the retained state-aware execution API.

Review effort: Balanced
Findings: 2 Medium severity · 1 Low severity

Open (3)

Base automatically changed from user/gudge/dotnet-json-ffi to main October 2, 2026 23:39
This PR removes the deprecated private run, spawn, and request-probe FFI
exports after Node and .NET move to exact JSON. It deletes the private
parser and then removes SDK authoring serde that the parser required,
leaving exact-contract parsing and shared engine dispatch in place.

Details

* Remove private request entry points, adapters, fixtures, and generated
  binding inventory entries; retain the exact-config request probe.
* Remove SDK authoring serde only after deleting its last private parser
  consumer; keep exact-contract and test-only fixture serde intact.
* Retarget native FFI tests to exact 1.0.0 documents and give real-host
  smoke and streaming tests distinct container IDs.
* Clarify result ownership and both one-shot and state-aware handle
  provenance across the native stream/control safety contracts.

Tests

* cargo fmt --all -- --check; cargo check -p mxc_ffi --all-targets
  --all-features --quiet: passed.
* cargo clippy -p mxc_ffi --all-targets --all-features --quiet --
  -D warnings: passed.
* cargo test -p mxc_ffi --all-features --quiet: 86 passed, 4 ignored.
* RUSTDOCFLAGS=-D warnings cargo doc -p mxc_ffi --all-features
  --no-deps --quiet: passed.
* cargo check -p mxc_ffi --tests --target x86_64-unknown-linux-gnu
  --quiet; cargo check -p mxc_ffi --tests --target x86_64-apple-darwin
  --quiet: passed. Native real-host tests remain ignored.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 30c4f940-9c8e-4d3e-89ff-b1776045bb1c
Generated-with: gpt-6-sol
Copilot AI balanced review requested due to automatic review settings October 2, 2026 23:48
@MGudgin
Gudge (MGudgin) force-pushed the user/gudge/remove-binding-json-ffi branch from 1ee00e4 to 66db497 Compare October 2, 2026 23:48
@MGudgin
Gudge (MGudgin) merged commit 918a17d into main Oct 2, 2026
12 checks passed
@MGudgin
Gudge (MGudgin) deleted the user/gudge/remove-binding-json-ffi branch October 2, 2026 23:51

Copilot AI left a comment

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.

Copilot review overview

🔵 Needs a closer look

It changes cross-language native ABI surfaces and platform-specific execution paths whose Linux, macOS, and elevated host suites were not run.

Review effort: Balanced
Findings: None

Resolved since last review (3)

Gudge (MGudgin) added a commit that referenced this pull request Oct 3, 2026
This PR fixes the Linux x64 and arm64 dispatch gate after the exact-JSON
FFI migration renamed its LXC routing test. The workflow still selected
the removed test name, so the zero-test guard failed after #1353 merged.
The rename originated in #1352.

Details

* Select the existing mxc_spawn_json LXC routing test in the Linux gate.
* Document the pinned dispatch coverage and its zero-test failure behavior.

Tests

* Ubuntu 24.04 WSL: replayed the old selector and reproduced the zero-test
  guard failure; the corrected workflow step passed all four pinned checks
  (5 discovery, 1 dispatch, 1 FFI routing, and 10 SDK-helper tests).
* cargo test --locked --release --target x86_64-unknown-linux-gnu
  -p mxc_ffi --test ffi: passed all 11 tests.
* git diff --check: passed. Native ARM64 was not verified locally.

Generated-with: gpt-6.1-sol
Co-authored-by: Gudge <gudge@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0c3a4f93-e784-41c7-9286-bdcefcb80465
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.

3 participants