feat(deploy): add EvoSci deploy subcommand (#228)

* feat(deploy): implement standalone LangGraph server and CLI command for deployment

* feat(deploy): enhance port validation and environment variable management for deployment

* Refactor langgraph dev deployment and introduce workspace sidecar protocol

- Updated the deployment mode handling in `server.py` to use a single environment variable `EVOSCIENTIST_DEPLOY_MODE` with values `full` and `stripped`.
- Enhanced the `manager.py` to implement a workspace fingerprint sidecar, allowing cross-process reuse of langgraph dev instances while ensuring workspace consistency.
- Introduced functions to write and read the workspace sidecar, with error handling for missing or corrupt data.
- Added tests for the workspace sidecar functionality, including validation of the JSON schema and ensuring proper error handling for workspace mismatches.
- Updated existing tests to reflect changes in deployment mode handling and added new tests for signal handling during shutdown.
- Ensured that cleanup routines remove the workspace sidecar alongside the PID file during shutdown.

* fix(langgraph): improve workspace sidecar checks for process ownership and stale handles
This commit is contained in:
Xi Zhang
2026-05-20 12:06:35 +02:00
committed by GitHub
parent 9c7347eedb
commit 7959495a13
13 changed files with 1448 additions and 108 deletions
+1
View File
@@ -392,6 +392,7 @@ EvoSci --workdir /path/to/project # 在指定目录下启动
EvoSci -m run # 隔离的会话级工作区
EvoSci --ui cli # 经典 CLI(轻量)
EvoSci serve # 无头模式——仅渠道,无交互提示符
EvoSci deploy # 独立 LangGraph 服务器——供外部 UI / SDK 客户端使用
```
</details>