feat: Page Data dev loop, adm Code Run UI, and customer order demo
Add verify→Aider→OpenHands dev loop, memindadm config/history UI, and john4 customer-order Page Data demo with scenario + verification scripts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -37,6 +37,47 @@ runtime-slo-report.ok=true
|
||||
runtime-slo-report.failures=[]
|
||||
```
|
||||
|
||||
## Admin DB Policy (Phase 1.5)
|
||||
|
||||
Code-run **user/taskType/client toggles** can be managed in memindadm instead of rebuilding H5 for every change.
|
||||
|
||||
| Layer | Controls |
|
||||
|-------|----------|
|
||||
| **memindadm** (`h5_agent_code_run_config`) | `codeRun.enabled`, `clientEnabled`, allowlists, `pageDataDev.autodetect`, `generalAutodetect`, `requireValidation` |
|
||||
| **Portal env** | `MEMIND_TOOL_GATEWAY_ENABLED`, worker queue topology, emergency override via `MEMIND_CODE_RUN_POLICY_SOURCE=env` |
|
||||
| **H5 runtime** | `/auth/status.agentCodeRun` → client autodetect without `VITE_*` rebuild |
|
||||
|
||||
Admin API (memind_adm `:8082`):
|
||||
|
||||
```text
|
||||
GET/PATCH /admin-api/agent-code-run/config
|
||||
GET /admin-api/agent-code-run/runtime
|
||||
```
|
||||
|
||||
Ops UI: super-admin console → **Code Run** (`/ops/admin/agent-code-run`).
|
||||
|
||||
One-time env → DB migration (dev/staging):
|
||||
|
||||
```bash
|
||||
node scripts/migrate-agent-code-run-config-from-env.mjs --dry-run
|
||||
node scripts/migrate-agent-code-run-config-from-env.mjs --updated-by <admin-user-uuid>
|
||||
```
|
||||
|
||||
Verify effective policy after save:
|
||||
|
||||
```bash
|
||||
curl -fsS http://127.0.0.1:8081/auth/status -H "Cookie: h5_user=<token>" | jq '.agentCodeRun'
|
||||
curl -fsS http://127.0.0.1:8081/api/runtime/status | jq '.toolRuntime.codeRunPolicy'
|
||||
```
|
||||
|
||||
Page Data dev loop (local only):
|
||||
|
||||
```bash
|
||||
MEMIND_TOOL_GATEWAY_ENABLED=1 npm run dev:page-data-aider-loop -- --dry-run
|
||||
```
|
||||
|
||||
See also: [help-code01.md](./help-code01.md), [help-code02.md](./help-code02.md).
|
||||
|
||||
## One-user Canary Profile
|
||||
|
||||
Use only for a controlled john-user canary.
|
||||
|
||||
+11
-8
@@ -329,23 +329,26 @@ OpenHands 任务类型保持现有 `repo_refactor,multi_file,complex_repo`;**
|
||||
|
||||
> 详细设计见 **[help-code02.md](./help-code02.md)**。
|
||||
|
||||
- [ ] `h5_agent_code_run_config` 表 + `agent-code-run-admin-config.mjs`
|
||||
- [ ] memindadm API/UI:code run 开关、白名单、taskType、`pageDataDev.autodetect`
|
||||
- [ ] `/auth/status` 下发 `agentCodeRun`,H5 不再依赖 `VITE_*` rebuild
|
||||
- [ ] `agent-run-routes.mjs` 从 DB 读策略(env 仅紧急 override)
|
||||
- [ ] Worker 拓扑(`MEMIND_TOOL_GATEWAY_ENABLED`)继续留 env
|
||||
- [x] `h5_agent_code_run_config` 表 + `agent-code-run-admin-config.mjs`
|
||||
- [x] memindadm API:`/admin-api/agent-code-run/config`、`/runtime`(UI 表单待做)
|
||||
- [x] `/auth/status` 下发 `agentCodeRun`,H5 不再依赖 `VITE_*` rebuild
|
||||
- [x] `agent-run-routes.mjs` 从 DB 读策略(env 仅紧急 override)
|
||||
- [x] Worker 拓扑(`MEMIND_TOOL_GATEWAY_ENABLED`)继续留 env
|
||||
- [x] `scripts/migrate-agent-code-run-config-from-env.mjs`
|
||||
|
||||
**为何需要 Phase 1.5:** Phase 1 的 env/VITE 适合 dev;要解决「用户经常失败」的运营灰度,必须在 memindadm 按用户/任务类型动态开关,且 H5 需运行时生效。
|
||||
|
||||
### Phase 2 — 自动化 dev loop
|
||||
|
||||
- [ ] `scripts/page-data-aider-dev-loop.mjs`:读 verify 输出 → 调 Tool Gateway/Aider → 重跑 verify
|
||||
- [x] `scripts/page-data-aider-dev-loop.mjs`:读 verify 输出 → 调 Tool Gateway/Aider → 重跑 verify
|
||||
- [x] `npm run dev:page-data-aider-loop` 快捷入口
|
||||
- [ ] 接入 CI optional job(仅 staging)
|
||||
- [x] `npm run ci:page-data-dev-loop-smoke`(dry-run 烟测,可挂 CI optional job)
|
||||
|
||||
### Phase 3 — 可选 escalation
|
||||
|
||||
- [ ] Aider 连续 N 次 verify 失败 → 升级 OpenHands(`taskType=page_data_dev_complex`)
|
||||
- [ ] 运维面板展示 page_data_dev run 历史
|
||||
- [x] Aider 连续 N 次 verify 失败 → 升级 OpenHands(`taskType=page_data_dev_complex`,`--escalate-after`)
|
||||
- [x] 运维面板展示 page_data_dev run 历史(`/admin-api/agent-code-run/runs` + Ops UI)
|
||||
|
||||
---
|
||||
|
||||
|
||||
+3
-3
@@ -344,9 +344,9 @@ node scripts/migrate-agent-code-run-config-from-env.mjs --apply
|
||||
- [x] `server.mjs`:`/auth/status` 增加 `agentCodeRun`
|
||||
- [x] `agent-run-routes.mjs`:改用 `getEffectivePolicy(userId)`
|
||||
- [x] `agentRunMode.ts`:runtime policy 优先于 VITE_
|
||||
- [ ] Ops UI 页面(可先做 JSON 编辑,后做表单)
|
||||
- [ ] `migrate-agent-code-run-config-from-env.mjs`
|
||||
- [ ] 更新 `docs/agent-run-worker-rollout-runbook.md`
|
||||
- [x] Ops UI 页面(表单 + JSON 高级编辑:`/ops/admin/agent-code-run`)
|
||||
- [x] `migrate-agent-code-run-config-from-env.mjs`
|
||||
- [x] 更新 `docs/agent-run-worker-rollout-runbook.md`
|
||||
- [x] `.env.example` 增加 `MEMIND_CODE_RUN_POLICY_SOURCE`
|
||||
- [x] verify:`agent-code-run-admin-config.test.mjs` + 扩展 `chat-agent-run-gate.test.mjs`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user