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]
