mirror of
https://github.com/OpenBMB/ChatDev.git
synced 2026-05-13 03:53:40 +00:00
When ``python server_main.py --reload`` was used, uvicorn's default reload_dirs is the current working directory and StatReload walks the whole tree for ``*.py`` files. Agent-generated code under ``WareHouse/session_<uuid>/code_workspace/<file>.py`` therefore triggers a server restart mid-workflow; the webui is left waiting indefinitely and the in-flight session is cancelled. The project already ships a warning in both READMEs telling users to drop ``--reload``, but that is exactly the tool dev loops need. Fix: pass an explicit ``reload_dirs`` list containing only the server's Python source folders (check, entity, functions, mcp_example, runtime, schema_registry, server, tools, utils, workflow) and a matching ``reload_excludes`` set (WareHouse, logs, data, temp, node_modules) so watchfiles-backed installs also stop observing output directories. Users can override either list via repeatable ``--reload-dir`` and ``--reload-exclude`` flags. The reload-kwargs construction is extracted into a pure helper so the behaviour is unit-tested without spinning up a real server; nine new tests cover the default behaviour, user overrides, argparse wiring, and that the returned lists are defensive copies. README / README-zh have been updated to reflect the new default. Fixes #569