kaxil commented on PR #71676:
URL: https://github.com/apache/airflow/pull/71676#issuecomment-5672080895

   > Yes — ran it end to end against a real OpenSandbox server (Docker runtime, 
`opensandbox/server:v0.2.3`, SDK `0.1.16`, arm64).
   > 
   > <img alt="opensandbox-airflow" height="924" 
src="https://private-user-images.githubusercontent.com/553010/651222971-a51f16e2-62e9-4561-a08f-35f5734f257a.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODk0Mjc4OTcsIm5iZiI6MTc4OTQyNzU5NywicGF0aCI6Ii81NTMwMTAvNjUxMjIyOTcxLWE1MWYxNmUyLTYyZTktNDU2MS1hMDhmLTM1ZjU3MzRmMjU3YS5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwOTE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDkxNFQyMzEzMTdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wNjZhOTgyNDhlNTMyZmY3ZjEwMDRhZmU3YTgyZmM3ZjRlMTc4YjQ0MTVhNTY4Zjk1YzM5ZjhiNzMwZWUwZDExJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZnaWYifQ.GIAjm33P9rya3GncKQeatEBy8E_zmAmjkHQZJabW1PU";>
   > Every sandbox in the clip is a real container created and destroyed 
through the server's API, and the egress results come from a stdlib socket 
probe _inside_ the sandbox, so a failure can't be mistaken for a missing tool. 
It covers API-key enforcement (401 → 200), all four `SandboxToolset` tools 
driven by a real pydantic-ai agent, this PR's own system-test Dag task, the 
`SandboxSpec` egress matrix, and teardown.
   > 
   > Trying it out turned up two things this PR had wrong. Both are fixed in 
the push above:
   > 
   > **The system test could never have run.** It asked for a 30s command 
ceiling while leaving `default_command_timeout` at 60s, which `SandboxToolset` 
rejects at construction — it failed before reaching a sandbox. 
`example_sandbox_toolset_sbx.py` on `main` has the same bug; I left it alone to 
keep this PR scoped, happy to send it separately.
   > 
   > **Command output lost every line break.** execd streams one message per 
output line with the delimiter stripped, and the backend concatenated them, so 
`printf 'A\nB\nC\n'` came back as `'ABC'`. Everything reached the model as a 
single run-on line — and since command output is truncated by whole lines, 
`max_output_lines` was inert for this backend. Fixed with a regression test, 
verified byte-for-byte against the live server including the blank-line case.
   > 
   > Also rebased onto `main` with `uv.lock` regenerated, and moved to 
`opensandbox>=0.1.16`. 39 unit tests pass on both 0.1.15 and 0.1.16.
   > 
   > Drafted-by: Claude Code (Opus 5); reviewed by @zozo123 before posting
   
   Could you post what the task logs in Airflow UI looks like too please


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to