@@ -7,7 +7,7 @@
执行状态:
- P0 StreamController v1: 已完成代码落地、语法检查、Portal kickstart 和基础健康验证。
- P1 Gateway SSE 配置: 已完成,`mm .tkmind.cn` 接入 Portal, SSE route 已禁缓冲。
- P1 Gateway SSE 配置: 已完成,`m.tkmind.cn` 接入 Portal, SSE route 已禁缓冲。
- P2 Redis Runtime State + Router v1: 已完成可回退版本并启用 Redis。
- P3 Observability: 已完成第一版,只读 runtime 状态接口已上线。
- P4 Tool Gateway v1: 已完成第一步,普通用户默认不再暴露 Aider/OpenHands,显式用户白名单保留。
@@ -53,7 +53,7 @@
## 当前基线
- Memind Portal: `/Users/john/Project/Memind/server.mjs` ,本机 `:8081` 。
- H5 public base: `https://mm .tkmind.cn` ; `m.tkmind.cn` 暂时不再作为 H5 public base 。
- H5 public base: `https://m.tkmind.cn` 。
- goosed worker pool: Docker/Colima 内 `goosed-prod-1..9` ,宿主机 `18006..18014` ( 2026-07-07 确认 9 个 healthy)。
- H5 上游配置: `TKMIND_API_TARGETS=https://127.0.0.1:18006,...,18014` (须与 compose 容器数一致)。
- 当前已有 session affinity: start 时分配 worker,后续 reply/events 回到同一 worker。
@@ -117,7 +117,7 @@ flowchart LR
### P1: Gateway SSE 配置
目标: `mm .tkmind.cn` 新入口和本机入口不缓冲 SSE;后续 H5 不再走 105 nginx 反向隧道转发。
目标: `m.tkmind.cn` 新入口和本机入口不缓冲 SSE;后续 H5 不再走 105 nginx 反向隧道转发。
任务:
@@ -128,12 +128,12 @@ flowchart LR
- `proxy_read_timeout 3600`
- `proxy_send_timeout 3600`
- `add_header X-Accel-Buffering no always`
- 确认 `mm .tkmind.cn/api/status` 返回真实 H5 API,而不是维护页 HTML。
- 确认 `m.tkmind.cn/api/status` 返回真实 H5 API,而不是维护页 HTML。
- 将 `m.tkmind.cn -> 105 nginx -> 127.0.0.1:19081 -> reverse SSH tunnel -> Portal :8081` 标记为 legacy/rollback-only。
验收:
- `mm .tkmind.cn/api/status` 返回后端 `ok` 或明确 JSON health,而不是维护页 HTML。
- `m.tkmind.cn/api/status` 返回后端 `ok` 或明确 JSON health,而不是维护页 HTML。
- SSE 响应头包含 `X-Accel-Buffering: no` 。
### P2: Redis Runtime State + Router v1
@@ -220,7 +220,7 @@ Drain 操作:
``` bash
docker exec memind-runtime-redis redis-cli SET memind:runtime:worker:goosed-3:drain 1
curl -sk https://mm .tkmind.cn/api/runtime/status
curl -sk https://m.tkmind.cn/api/runtime/status
docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:drain
```
@@ -233,7 +233,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
## 执行顺序
1. P0 立即执行,低风险高收益。
2. P1 基于 `mm .tkmind.cn` 新入口执行;除非明确回滚,不再改造 105 H5 转发链路。
2. P1 基于 `m.tkmind.cn` 新入口执行;除非明确回滚,不再改造 105 H5 转发链路。
3. P2/P3 一起推进,先观测再调度。
4. P4/P5 在流式链路稳定后推进。
@@ -272,7 +272,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
决策:
- H5 public base 从 `https://m.tkmind.cn` 临时切换为 `https://mm .tkmind.cn` 。
- H5 public base 从 `https://m.tkmind.cn` 临时切换为 `https://m.tkmind.cn` 。
- 后续 H5 公网访问不再走 105 转发链路。
- 旧链路 `m.tkmind.cn -> 105 nginx -> 127.0.0.1:19081 -> reverse SSH tunnel -> Portal :8081` 仅保留为 legacy/rollback-only 说明,不作为 Memind 2.0 改造目标。
@@ -285,25 +285,25 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
已执行:
- 将 `H5_PUBLIC_BASE_URL` 改为 `https://mm .tkmind.cn` 。
- 将 `VITE_MINDSPACE_BASE` 改为 `https://mm .tkmind.cn` 。
- 将 Portal 启动脚本默认 `H5_PUBLIC_BASE_URL` 改为 `https://mm .tkmind.cn` 。
- 将 `H5_PUBLIC_BASE_URL` 改为 `https://m.tkmind.cn` 。
- 将 `VITE_MINDSPACE_BASE` 改为 `https://m.tkmind.cn` 。
- 将 Portal 启动脚本默认 `H5_PUBLIC_BASE_URL` 改为 `https://m.tkmind.cn` 。
- 更新 `RUNBOOK.txt` ,明确 105 转发链路不再作为后续 H5 公网路径。
- 通过 `launchctl kickstart -k gui/$(id -u)/cn.tkmind.memind-portal` 重启 Portal。
验证:
- Portal 新 PID: `94324` ,监听 `*:8081` 。
- 运行环境确认: `H5_PUBLIC_BASE_URL=https://mm .tkmind.cn` , `VITE_MINDSPACE_BASE=https://mm .tkmind.cn` 。
- 运行环境确认: `H5_PUBLIC_BASE_URL=https://m.tkmind.cn` , `VITE_MINDSPACE_BASE=https://m.tkmind.cn` 。
- 本机 `http://127.0.0.1:8081/api/status` 返回 `ok` 。
- 九个 goosed worker `18006..18014` 均返回 `ok` 。
- 公网 `https://mm .tkmind.cn/api/status` 当前返回 nginx `502 Bad Gateway` ,说明域名侧入口尚未接到当前 Portal;该问题纳入 P1 新入口修复,不再回到 105 转发链路处理。
- 公网 `https://m.tkmind.cn/api/status` 当前返回 nginx `502 Bad Gateway` ,说明域名侧入口尚未接到当前 Portal;该问题纳入 P1 新入口修复,不再回到 105 转发链路处理。
### 2026-07-02 P1 Gateway SSE 配置
变更文件:
- `/opt/homebrew/etc/nginx/servers/m m.tkmind.cn.conf `
- `/opt/homebrew/etc/nginx/servers/` 下对应 ` m.tkmind.cn` 的生产入口配置
- `/Users/john/Project/Memind/scripts/wechat-mp-menu.mjs`
- `/Users/john/Project/Memind/server.mjs`
- `/Users/john/Project/Memind/dist/dev/wechat-share-demo.html`
@@ -311,11 +311,11 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
备份:
- `/opt/homebrew/etc/nginx/backups/m m.tkmind.cn.conf.bak-streaming-20260702-0635`
- `/opt/homebrew/etc/nginx/backups/` 下对应 ` m.tkmind.cn` 的 streaming 备份配置
已完成:
- `mm .tkmind.cn` 通过本机 nginx 反向代理到 Portal `127.0.0.1:8081` 。
- `m.tkmind.cn` 通过本机 nginx 反向代理到 Portal `127.0.0.1:8081` 。
- 为 `/api/sessions/<id>/events` 和 `/api/agent/runs/<id>/events` 增加 SSE 专用 nginx location:
- `proxy_buffering off`
- `proxy_cache off`
@@ -324,16 +324,16 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `proxy_send_timeout 3600s`
- `add_header X-Accel-Buffering no always`
- 通用 `location /` 增加 `proxy_read_timeout 300s` 和 `proxy_send_timeout 300s` 。
- 微信菜单脚本默认入口改为 `https://mm .tkmind.cn` 和 `https://mm .tkmind.cn/space` 。
- `server.mjs` 内 `H5_PUBLIC_BASE_URL` 缺省值改为 `https://mm .tkmind.cn` 。
- 微信菜单脚本默认入口改为 `https://m.tkmind.cn` 和 `https://m.tkmind.cn/space` 。
- `server.mjs` 内 `H5_PUBLIC_BASE_URL` 缺省值改为 `https://m.tkmind.cn` 。
验证:
- `nginx -t` 通过。
- `nginx -s reload` 已执行。
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- 未登录访问 `https://mm .tkmind.cn/api/sessions/test-session/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
- 未登录访问 `https://mm .tkmind.cn/api/agent/runs/test-run/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- 未登录访问 `https://m.tkmind.cn/api/sessions/test-session/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
- 未登录访问 `https://m.tkmind.cn/api/agent/runs/test-run/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
### 2026-07-02 P2 Redis Runtime State + Router v1
@@ -375,7 +375,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `memind:runtime:worker:goosed-3:active_streams=1`
- `memind:runtime:worker:goosed-3:heartbeat=<timestamp>`
- `memind:runtime:stream:20260701_24:status=active`
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- 九个 goosed worker `18006..18014` 均返回 `ok` 。
### 2026-07-02 P3 Observability v1
@@ -398,11 +398,11 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
验证:
- `/opt/homebrew/opt/node@24/bin/node --check /Users/john/Project/Memind/server.mjs` 通过。
- `https://mm .tkmind.cn/api/runtime/status` 返回 `ok: true` 。
- `https://m.tkmind.cn/api/runtime/status` 返回 `ok: true` 。
- 返回中 `router.enabled=true` , namespace 为 `memind:runtime` 。
- 返回中九个目标 `18006..18014` 均 `healthy: true` 。
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- 未登录访问 `https://mm .tkmind.cn/api/sessions/test-session/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- 未登录访问 `https://m.tkmind.cn/api/sessions/test-session/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
### 2026-07-02 P4 Tool Gateway v1 第一阶段
@@ -435,10 +435,10 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
验证:
- `/opt/homebrew/opt/node@24/bin/node --check /Users/john/Project/Memind/server.mjs` 通过。
- `https://mm .tkmind.cn/api/runtime/status` 返回四个 worker `healthy=true` 。
- `https://mm .tkmind.cn/api/runtime/status` 返回四个 worker `drain=false` 。
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- 未登录访问 `https://mm .tkmind.cn/api/sessions/test-session/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
- `https://m.tkmind.cn/api/runtime/status` 返回四个 worker `healthy=true` 。
- `https://m.tkmind.cn/api/runtime/status` 返回四个 worker `drain=false` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- 未登录访问 `https://m.tkmind.cn/api/sessions/test-session/events` 返回 `401` ,且响应头包含 `x-accel-buffering: no` 。
### 2026-07-02 生产同步分支
@@ -453,7 +453,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- 新建干净源码目录 `/Users/john/Project/memind-clean-main-20260702` 。
- 从 `origin/main` 创建分支 `memind-streaming-runtime-20260702` 。
- 迁入本次已在生产验证的 StreamController、Redis Router、runtime status、`mm .tkmind.cn` 和 nginx SSE 配置样例。
- 迁入本次已在生产验证的 StreamController、Redis Router、runtime status、`m.tkmind.cn` 和 nginx SSE 配置样例。
- 新增远程开发机同步说明 `docs/architecture/remote-dev-sync.md` 。
限制:
@@ -485,7 +485,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `score`
- 新增只读检查脚本 `scripts/check-stream-runtime.mjs` 。
- 新增 drain 运维脚本 `scripts/runtime-worker-drain.mjs` 。
- runtime 构建模板同步上述脚本,并将 RUNBOOK 中主路径更新为 `mm .tkmind.cn -> local nginx -> Portal :8081` 。
- runtime 构建模板同步上述脚本,并将 RUNBOOK 中主路径更新为 `m.tkmind.cn -> local nginx -> Portal :8081` 。
- 本地和远端分支提交 `4420cca chore: add runtime observability ops` 。
- 修正检查脚本为 `HEAD` 探测 SSE 入口,避免健康检查打开真实上游 SSE;提交 `c9b7252 fix: avoid opening sse in runtime check` 。
@@ -576,8 +576,8 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
生产验证:
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://mm .tkmind.cn/api/runtime/status` 返回 router enabled,全部 goosed target healthy。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/api/runtime/status` 返回 router enabled,全部 goosed target healthy。
- `scripts/check-stream-runtime.mjs` 返回 `ok=true` 。
- `scripts/check-tool-runtime.mjs` 返回 `ok=true` ,普通 chat 不注入 Aider/OpenHands, code mode 对白名单用户可注入。
- `scripts/runtime-worker-drain.mjs status` 返回 `ok=true` ,四个 worker drain=false。
@@ -676,7 +676,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
生产验证:
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- `/api/runtime/status.toolRuntime.codeRunsEnabled=false` 。
- 全部 goosed target healthy。
- `scripts/check-agent-code-run-entry.mjs` 返回 `ok=true` 。
@@ -735,7 +735,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `dryRun=true` 。
- 四个 worker 均列出。
- 当前无 stale worker,未执行 apply。
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
### 2026-07-02 P5.7 Worker Metrics 采样接入
@@ -799,7 +799,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `containerHealth`
- `metricsSampledAt`
- 新 `score`
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- `scripts/check-stream-runtime.mjs` 返回 `ok=true` 。
- `scripts/check-agent-code-run-entry.mjs` 返回 `ok=true` 。
- `scripts/runtime-worker-drain.mjs reconcile` 返回 `ok=true` , `dryRun=true` 。
@@ -903,7 +903,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `/Users/john/Project/Memind/server.mjs`
- `/Users/john/Project/Memind/scripts/runtime-slo-report.mjs`
- 已执行 `launchctl kickstart -k gui/$(id -u)/cn.tkmind.memind-portal` 。
- 重启窗口内 `mm .tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- 重启窗口内 `m.tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 `https://m.tkmind.cn/api/status` 返回 `ok` 。
生产验证:
@@ -963,7 +963,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `/Users/john/Project/Memind/server.mjs`
- `/Users/john/Project/Memind/scripts/runtime-slo-report.mjs`
- 已执行 `launchctl kickstart -k gui/$(id -u)/cn.tkmind.memind-portal` 。
- 重启窗口内 `mm .tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- 重启窗口内 `m.tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 `https://m.tkmind.cn/api/status` 返回 `ok` 。
生产验证:
@@ -1029,7 +1029,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `/Users/john/Project/Memind/scripts/agent-run-worker.mjs`
- `/Users/john/Project/Memind/RUNBOOK.txt`
- 已执行 `launchctl kickstart -k gui/$(id -u)/cn.tkmind.memind-portal` 。
- 重启窗口内 `mm .tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 runtime status 返回 `ok=true` 。
- 重启窗口内 `m.tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 runtime status 返回 `ok=true` 。
生产验证:
@@ -1084,7 +1084,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `/Users/john/Project/Memind/scripts/runtime-slo-report.mjs`
- `/Users/john/Project/Memind/scripts/agent-run-worker.mjs`
- 已执行 `launchctl kickstart -k gui/$(id -u)/cn.tkmind.memind-portal` 。
- 重启窗口内 `mm .tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- 重启窗口内 `m.tkmind.cn` 曾短暂返回 nginx `502` ; Portal 随后正常监听 `:8081` ,公网 `https://m.tkmind.cn/api/status` 返回 `ok` 。
生产验证:
@@ -1333,7 +1333,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
- `toolRuntime.queue.inFlight=0`
- `toolRuntime.queue.pendingDispatches=0`
- `toolRuntime.queue.statusCounts={}`
- `mm .tkmind.cn` runtime health 仍为 `ok=true` 。
- `m.tkmind.cn` runtime health 仍为 `ok=true` 。
### 2026-07-02 P5.13 Runtime SLO Report Retention
@@ -1444,7 +1444,7 @@ docker exec memind-runtime-redis redis-cli DEL memind:runtime:worker:goosed-3:dr
发布后状态:
- `https://mm .tkmind.cn/api/status` : `ok`
- `https://m.tkmind.cn/api/status` : `ok`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.chatInjectsCodeTools=false`
- `toolRuntime.queue.autoDispatch=true`
@@ -1536,7 +1536,7 @@ canary 验证:
- `/Users/john/Project/backups/memind/memind-persisted-20260702-085706-a0af049-before.tar.gz`
- `/Users/john/Project/archives/Memind-source-before-20260702-085706-a0af049`
- 恢复后验证:
- `https://mm .tkmind.cn/api/status` : `ok`
- `https://m.tkmind.cn/api/status` : `ok`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.chatInjectsCodeTools=false`
- `toolRuntime.queue.autoDispatch=true`
@@ -1668,8 +1668,8 @@ canary 验证:
- 未删除 PG 数据
- 未删除或改写 MindSpace 用户数据
- 发布验证:
- `https://mm .tkmind.cn/api/status` : `ok`
- `https://mm .tkmind.cn/api/runtime/status` : `ok=true`
- `https://m.tkmind.cn/api/status` : `ok`
- `https://m.tkmind.cn/api/runtime/status` : `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.chatInjectsCodeTools=false`
- `toolRuntime.queue.toolGateway.enabled=false`
@@ -1809,7 +1809,7 @@ Dry-run canary:
- 生产 `.env` 无 `MEMIND_TOOL_GATEWAY_*` 。
- 生产 `.env` 无 `MEMIND_AGENT_CODE_RUNS_*` 。
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.queue.toolGateway.enabled=false`
@@ -1891,7 +1891,7 @@ file proof:
- 生产 `.env` 无 `MEMIND_TOOL_GATEWAY_*` 。
- 生产 `.env` 无 `MEMIND_AGENT_CODE_RUNS_*` 。
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.queue.toolGateway.enabled=false`
@@ -1986,7 +1986,7 @@ file proof:
- 已恢复 `.env` 。
- 临时登录 session 已 revoke。
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.queue.autoDispatch=true`
@@ -2056,11 +2056,11 @@ file proof:
- release 脚本第一次在已知历史 docx 缺失链接处停止。
- 按用户要求不修复/不删除/不改写历史用户数据,第二次发布使用 `ALLOW_MINDSPACE_PUBLIC_LINK_ISSUES=1` 仅跳过该守卫。
- release 过程中脚本完成当前 live 全目录备份和持久目录备份。
- 105 legacy tunnel step 仍由脚本执行并健康,但 H5 主路径继续是 `https://mm .tkmind.cn` 。
- 105 legacy tunnel step 仍由脚本执行并健康,但 H5 主路径继续是 `https://m.tkmind.cn` 。
发布后状态:
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.queue.autoDispatch=true`
@@ -2150,7 +2150,7 @@ installer 默认行为:
发布后状态:
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.queue.autoDispatch=true`
@@ -2266,7 +2266,7 @@ canary repo:
- `installed-disabled`
- `state=not running`
- no `agent-run-worker.mjs` process
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.queue.autoDispatch=true`
@@ -2338,7 +2338,7 @@ canary repo:
发布后验证:
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunsEnabled=false`
- `toolRuntime.queue.autoDispatch=true`
@@ -2426,14 +2426,14 @@ runtime/status:
- release 脚本在 legacy `m.tkmind.cn` tunnel step 短暂返回失败;Portal runtime 已切换且健康。
- 后续检查显示:
- `mm .tkmind.cn` 主路径正常。
- `m.tkmind.cn` 主路径正常。
- `cn.tkmind.memind-portal-tunnel` 已恢复 running。
- Portal node pid `35983` 正在监听 `:8081` 。
- 该 legacy tunnel 不是当前 H5 主路径,当前 H5 主路径仍是 `https://mm .tkmind.cn` 。
- 该 legacy tunnel 不是当前 H5 主路径,当前 H5 主路径仍是 `https://m.tkmind.cn` 。
发布后状态:
- `https://mm .tkmind.cn/api/runtime/status` :
- `https://m.tkmind.cn/api/runtime/status` :
- `ok=true`
- `toolRuntime.codeRunPolicy.enabled=false`
- `toolRuntime.codeRunPolicy.userAllowlist=[]`
@@ -2722,7 +2722,7 @@ runtime/status:
验证:
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- `/api/runtime/status` :
- `codeRunPolicy.requireValidation=true`
- `toolRuntime.queue.maxConcurrentRuns=2`
@@ -2849,8 +2849,8 @@ runtime/status:
生产验证:
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://mm .tkmind.cn/auth/status` 未登录返回 `200 {"authenticated":false,"mode":"user"}` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/auth/status` 未登录返回 `200 {"authenticated":false,"mode":"user"}` 。
- `/api/runtime/status.toolRuntime` :
- `codeRunsEnabled=true`
- `requireValidation=true`
@@ -2909,7 +2909,7 @@ runtime/status:
生产验证:
- `https://mm .tkmind.cn/` 已加载新 bundle:
- `https://m.tkmind.cn/` 已加载新 bundle:
- `/assets/index-jYf9W5vk.js`
- `/api/runtime/status` :
- `ok=true`
@@ -2990,7 +2990,7 @@ runtime/status:
生产验证:
- `https://mm .tkmind.cn/api/status` 返回 `ok` 。
- `https://m.tkmind.cn/api/status` 返回 `ok` 。
- `/api/runtime/status.toolRuntime.queue` :
- `maxConcurrentRuns=2`
- `heartbeatMs=30000`