-
Notifications
You must be signed in to change notification settings - Fork 80
Feature/csharp sdk #169
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Feature/csharp sdk #169
Conversation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ntrypoint chaining Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Please carefully review your modifications to the server and revert them. The server is capable of running on Windows. |
我恢复一下 |
|
@codex review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5980283d86
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| var pathList = paths.ToList(); | ||
| var queryParams = new Dictionary<string, string?> | ||
| { | ||
| ["path"] = string.Join(",", pathList) | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Send one path param per file instead of comma-join
The execd filesystem API expects path to be passed multiple times (spec lists explode: true, and the Go handler uses QueryArray("path")), but this code concatenates paths into a single comma-separated value. That means multi-path requests become a single literal path like /a,/b, so GetFileInfoAsync (and the same pattern in delete methods) will fail to operate on the intended files. Emitting one path query parameter per entry fixes the mismatch.
Useful? React with 👍 / 👎.
| if (@params?.States != null && @params.States.Count > 0) | ||
| { | ||
| // The API supports multiple state query params | ||
| queryParams["state"] = string.Join(",", @params.States); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use repeated state parameters for list filters
The lifecycle API documents state as a repeatable query parameter (see server/src/api/lifecycle.py description: “Pass multiple times for OR logic”), but this code joins the values with commas. FastAPI will parse state=Running,Paused as a single string instead of two states, so the filter will not match the intended set. This should send one state parameter per value.
Useful? React with 👍 / 👎.
|
Thanks, great work! Could you please update the corresponding information in the PR description? Also, please make sure the examples pass successfully and provide necessary screenshots/execution results. @ninan-nn please review this sdk's design. |
| ### NuGet | ||
|
|
||
| ```bash | ||
| dotnet add package Alibaba.OpenSandbox |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How to deploy package Alibaba.OpenSandbox?
We need apply a NuGet account to deploy Alibaba.OpenSandbox.
@ninan-nn
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Working on it.
ninan-nn
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please ensure that all SDK capabilities have comprehensive end-to-end (E2E) test coverage. You can refer to the E2E implementations in the SDKs for other languages.
Add comprehensive end-to-end tests covering sandbox lifecycle, command execution, filesystem operations, interrupts, streaming, and error handling. Tests validate health checks, metrics, network policies, file CRUD operations, and event handling contracts.


Summary
Testing
Breaking Changes
Checklist