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:
john
2026-07-23 22:11:18 +08:00
parent 239c41f935
commit dab6140f99
22 changed files with 1795 additions and 14 deletions
+41
View File
@@ -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
View File
@@ -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/UIcode 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
View File
@@ -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`