Summary
On Windows, bub can hit two issues in one session:
bash tool fails with FileNotFoundError: [WinError 2] when bash is unavailable.
web.fetch timeout can surface as repeated tool failures, and the run may end with max_steps_reached=20.
Environment
- OS: Windows (PowerShell)
- Python: 3.14
- uv: 0.10.8
- Project:
bubbuild/bub
Reproduction
- Start CLI:
- Ask a prompt that includes an URL, e.g.:
简单介绍一下你自己(https://github.com/bubbuild/bub)
Expected
- If
web.fetch times out, return a friendly error and continue safely.
- Shell tool should still work on Windows environments without
bash.
Actual
web.fetch may raise timeout tracebacks.
bash tool tries bash -lc ... only, then fails with WinError 2.
- Model may keep stepping and end with
max_steps_reached=20.
Error snippets
web.fetch timeout:
TimeoutError
...
aiohttp.ClientSession(...)
session.get(...)
bash tool error:
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
Suggested fix
- In
src/bub/tools/builtin.py:
bash tool: choose shell by platform (bash -> pwsh/powershell on Windows -> sh).
web.fetch: catch asyncio.TimeoutError and return a readable timeout message.
If useful, I can open a PR with this change.
Summary
On Windows,
bubcan hit two issues in one session:bashtool fails withFileNotFoundError: [WinError 2]whenbashis unavailable.web.fetchtimeout can surface as repeated tool failures, and the run may end withmax_steps_reached=20.Environment
bubbuild/bubReproduction
Expected
web.fetchtimes out, return a friendly error and continue safely.bash.Actual
web.fetchmay raise timeout tracebacks.bashtool triesbash -lc ...only, then fails withWinError 2.max_steps_reached=20.Error snippets
web.fetchtimeout:bashtool error:Suggested fix
src/bub/tools/builtin.py:bashtool: choose shell by platform (bash->pwsh/powershellon Windows ->sh).web.fetch: catchasyncio.TimeoutErrorand return a readable timeout message.If useful, I can open a PR with this change.