zozo123 commented on PR #71672:
URL: https://github.com/apache/airflow/pull/71672#issuecomment-5774115905

   Pushed the round for the 2026-09-17 review; replies are inline on each 
thread.
   
   Two of the threads needed facts neither the SDK nor the API spec carries, so 
I measured them against the compute API rather than guess:
   
   - Each output stream is capped at exactly 1 MiB and the **tail** is kept, 
not the head, and one `truncated` flag covers both streams. A 300,000-line 
`seq` came back as 1,048,576 bytes ending in `299999/300000`; stderr caps 
independently; a 3 MB single line behaves the same. The "vendor keeps the head" 
claim in the docs was wrong and is gone, which also settles the 
`list_directory` branch -- a truncated listing's mangled record is always the 
leading one, which is the one dropped.
   - `delete_after` counts from creation, as you read it; `pause_after_idle` 
counts from last use and `auto_resume: on_activity` resumes on the next call. 
The default policy is now `pause_after_idle=600, auto_resume="on_activity", 
delete_after=86400`, so a run past the hour keeps its microVM while a dead 
worker's VM stops costing compute after ten idle minutes.
   
   Also measured, and each drove a change: the runner owns `PATH` and drops one 
given at creation under both `sh -c` and `sh -lc`, so the wrapper is `sh -c` 
and a `PATH` in `SandboxSpec.env` is refused at `create` rather than silently 
dropped; and a stopped sandbox answers `get_sandbox` with 200 and `status: 
stopped` while exec returns 400, which is what the missing-file check now reads 
before deciding between recoverable and terminal.
   
   The rest: polling rides out transient 5xx rather than failing the task on 
one (the API produced `503 RESOURCE_UNAVAILABLE` twice during the session, so 
this is not hypothetical), and `max_retries: 0` is gone since it was switching 
off the SDK's own retries; oversized reads report the guest's `stat` size; the 
connection has its own `islo` type with a hook, a docs page and 
`test_connection`; the lazy export is replaced by an eager one so the autoapi 
reference resolves and the untested optional branch disappears; `islo` is in 
the dev group so the suite runs in the main lane; and the trap test now 
discriminates between the shipped wrapper and the two ways it could regress.
   
   The system test passed end to end against islo.dev (`1 passed in 12.08s`), 
as did the connection-backed path -- hook `test_connection`, create, command, 
write, read, list, destroy.
   
   Rebased onto current `main`, which reorganised the provider docs twice 
today, so the backend is now documented in `docs/sandbox/backends.rst` beside 
Modal and `sbx`, and the connection and hook pages are in the `docs/index.rst` 
toctree rather than the removed `docs/hooks/index.rst`.
   
   100 unit tests, ruff and the applicable prek hooks pass locally; mypy is 
clean on the changed files with the SDK installed.
   
   ---
   Drafted-by: Claude Code (Opus 5); reviewed by @zozo123 before posting
   


-- 
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