feat(aibox): add CLI once mode (--once/--quiet/--once-timeout)

- parse_args 新增 --once/--quiet/--once-timeout 参数
- 新增 handle_once_mode:stdout chunk 流式、stderr 过程行、SIGINT 三层取消、超时 Timer
- 退出码:0 成功 / 2 API 失败 / 3 中断 / 4 超时;与 WebSocket 零回归
- 配套开发文档:docs/reports/aibox_cli_once_mode_dev_doc.md
- 附带修复:memdb/test_memdb.py 并发测试硬编码端口
This commit is contained in:
qing committed 2026-08-17 15:45:06 +08:00
1 parent 2b133f1531
commit ce3fb7fc74
3 files changed
+436 -7

No files matched your search

+3 -3
View File
@@ -206,13 +206,13 @@ def test_missing_params(c, cnt):
cnt.check(not ok, "get missing 'key' returns error", f"got {data}")
def test_concurrent(c, cnt):
def test_concurrent(c, cnt, host="127.0.0.1", port=8011):
"""并发 set/get:验证 mutex 保护不崩溃"""
errors = []
results = []
def worker(worker_id):
client = MemdbClient()
client = MemdbClient(host, port)
for i in range(20):
key = f"concurrent:w{worker_id}:k{i}"
ok, _ = client.call("set", key=key, value=str(worker_id))
@@ -266,7 +266,7 @@ def main():
test_show(c, cnt)
test_expire(c, cnt)
test_missing_params(c, cnt)
test_concurrent(c, cnt)
test_concurrent(c, cnt, host, port)
return 0 if cnt.summary() else 1