Files
lobe-sandbox-backend/.memory/worklog.json
kang ce8e22f77f orchestrator MVP: 13 工具跑通 + systemd + 部署脚本
- src/{env,auth,state,incus,tools,export,reaper,index}.ts: Bun + Hono 服务
- deploy/sandbox-orchestrator.service: systemd unit
- scripts/deploy.sh: 一键部署(rsync + bun install + systemd reload)
- images/base/patch-uv.sh: 修 UV_INSTALL_DIR 环境变量错

端到端验证(VPS 跑通):
- POST /api/v1/users → incus init 容器
- executeCode python/js/ts → stdout/stderr/exitCode
- runCommand 同步执行(long-running 在 v2)
- read/write/list/edit/move/rename/grep/glob/search LocalFiles
- 30min 空闲自动 stop(reaper)
- exportFile 占位(MinIO S3 是内网,VPS 够不着,待后续对接)

状态: Phase 3 完成, Phase 4 LobeChat 接入待做。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 21:08:36 +08:00

159 lines
3.9 KiB
JSON

{
"entries": [
{
"ts": "2026-04-18T15:56:14+08:00",
"type": "commit",
"message": "auto-save 2026-04-18 15:54 (+1)",
"hash": "a4201de",
"files_changed": 1
},
{
"ts": "2026-04-18T16:01:50+08:00",
"type": "commit",
"message": "auto-save 2026-04-18 16:01 (+2)",
"hash": "4a5b0f2",
"files_changed": 2
},
{
"ts": "2026-04-18T16:07:18+08:00",
"type": "commit",
"message": "auto-save 2026-04-18 16:07 (~1)",
"hash": "ddafce5",
"files_changed": 1
},
{
"ts": "2026-04-18T16:12:48+08:00",
"type": "commit",
"message": "auto-save 2026-04-18 16:12 (~1)",
"hash": "380dc95",
"files_changed": 1
},
{
"ts": "2026-04-18T16:18:17+08:00",
"type": "commit",
"message": "auto-save 2026-04-18 16:18 (+1, ~1)",
"hash": "e9cc9df",
"files_changed": 2
},
{
"ts": "2026-04-18T16:21:37+08:00",
"type": "commit",
"message": "init: Lobe Sandbox Backend scaffold + host-init + base image build script",
"hash": "6425480",
"files_changed": 2
},
{
"ts": "2026-04-18T16:23:47+08:00",
"type": "commit",
"message": "auto-save 2026-04-18 16:23 (~1)",
"hash": "c7eb168",
"files_changed": 1
},
{
"ts": "2026-04-18T20:45:52+08:00",
"type": "commit",
"message": "auto-save 2026-04-18 20:28 (~1)",
"hash": "33a84ca",
"files_changed": 1
},
{
"ts": "2026-04-19T02:52:01+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 02:33 (~1)",
"hash": "d8258bd",
"files_changed": 1
},
{
"ts": "2026-04-19T07:27:54+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 07:10 (~1)",
"hash": "16bf8fd",
"files_changed": 1
},
{
"ts": "2026-04-19T12:26:31+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 12:15 (~1)",
"hash": "69ab3a3",
"files_changed": 1
},
{
"ts": "2026-04-19T13:09:38+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 13:09 (~1)",
"hash": "9f348be",
"files_changed": 1
},
{
"ts": "2026-04-19T13:33:05+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 13:31 (+1, ~1)",
"hash": "8b26a21",
"files_changed": 6
},
{
"ts": "2026-04-19T13:38:34+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 13:38 (~1)",
"hash": "c90db7f",
"files_changed": 1
},
{
"ts": "2026-04-19T13:44:03+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 13:43 (~1)",
"hash": "c6ca9ff",
"files_changed": 1
},
{
"ts": "2026-04-19T13:49:47+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 13:49 (~1)",
"hash": "0a4482d",
"files_changed": 1
},
{
"ts": "2026-04-19T14:29:12+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 14:26 (~1)",
"hash": "a9c72d3",
"files_changed": 1
},
{
"ts": "2026-04-19T16:11:14+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 16:10 (~1)",
"hash": "8422736",
"files_changed": 1
},
{
"ts": "2026-04-19T18:14:39+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 18:14 (~1)",
"hash": "867ca6f",
"files_changed": 1
},
{
"ts": "2026-04-19T20:27:26+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 20:15 (~1)",
"hash": "eea4230",
"files_changed": 1
},
{
"ts": "2026-04-19T21:01:27+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 21:01 (+3, ~2)",
"hash": "1b8a216",
"files_changed": 5
},
{
"ts": "2026-04-19T21:06:57+08:00",
"type": "commit",
"message": "auto-save 2026-04-19 21:06 (+6, ~4)",
"hash": "cbf8125",
"files_changed": 10
}
]
}