- scripts/deploy/deploy_crm_only.sh: 单进程部署 sub2api-cn-relay-manager
CRM 控制面到 remote43,不依赖 sub2api host / PG / Redis 容器。
复用 scripts/deploy/remote43_patched_stack_lib.sh 的 env 渲染
(render_remote43_crm_env),render_crm_only_bootstrap 用 $\{VAR\} 占位符 +
sed 注入避开 set -u + unquoted-heredoc 边缘问题。
部署前先 kill 老进程 (再 scp 二进制) 避免 ELF overwrite 失败。
- docs/DEPLOYMENT.md: 加 '在线部署节点' 段,记录 stack / 端口 / 入口 / 验证。
- docs/EXECUTION_BOARD.md: 顶部加 'Latest Online Stack' 段。
- artifacts/online-deploy-20260602/: 本次真实部署的证据
- 01-local-build.txt: 本地 server 二进制 md5 + git head
- 02-remote-inspect.txt: 远端 process / port / db tables
- 03-crm-api-checks.txt: /healthz /api/packs /api/hosts /metrics 真实响应
- 04-portal-public.txt: sub.tksea.top 公共入口
- 05-quality-gates.txt: gofmt / vet / test -race / integration
- manifest.json: 结构化汇总
验证(2026-06-02 21:32-21:43):
- /healthz: HTTP 200 'ok'
- /api/packs (Bearer): HTTP 200 '{"packs":[]}'
- /api/hosts (Bearer): HTTP 200 '{"hosts":[]}'
- /api/packs (no auth): HTTP 401
- /metrics (Prometheus): HTTP 200,含 active_hosts/active_providers/
db_connections_active + Go runtime
- sub.tksea.top/portal/: HTTP 200
- sub.tksea.top/portal-admin-api/healthz: HTTP 200 'ok'(反代到 CRM)
- go test -race ./internal/... ./tests/integration/...: PASS
- gofmt / go vet: 干净
docs 导航首页
日期:2026-05-21
项目:sub2api-cn-relay-manager
先读这里
如果你是第一次进入 docs/ 目录,先按这个顺序读:
-
- 当前文档真相入口
- 先看这份,避免把历史审查、历史任务板、历史 artifact 误读为当前结论
-
- 当前执行状态
- 最新 gate
- 剩余阻断
- 最短 closure path
-
- 当前是否可按 PRD 首版范围放行
- 哪些是代码门禁,哪些是外部/环境门禁
真实宿主验收入口
-
REAL_HOST_ACCEPTANCE_CHECKLIST.md
- 每次验收先过这一页
- 最短闭环 / 红线 / 三层证据 / 诊断顺序
-
REAL_HOST_ACCEPTANCE_RUNBOOK.md
- 标准验收步骤
- artifact 结构
- 证据分层要求
-
REAL_HOST_ACCEPTANCE_LEARNINGS.md
- 已调通细节
- 高频误判点
- 推荐诊断顺序
-
OPENCLAW_EXTERNAL_VALIDATION.md
- OpenClaw 最后一跳真实使用验证
- 升级后补丁自检与 cron 提醒
tksea/53hk多模型运行态口径
-
- 当前仓库目录职责说明
- 新增文件该放在哪一层
-
scripts/deploy、scripts/acceptance、scripts/test的入口说明- 继续整理脚本或追脚本回归时先看这里
背景/设计文档
- PRD 首版范围
- 测试设计与实现计划
- 早期方案设计与宿主接口理解
- 部署说明
- 当前限制项
- 初始实现计划
历史快照文档(只可参考,不可直接当当前真相)
- 历史审查快照
- 用来看当时发现了哪些系统性问题
- 历史整改任务板
- 用来看 2026-05-18 那一轮是如何收口的
当前阅读规则
-
想知道“现在到底是什么状态”:
- 读
SOURCE_OF_TRUTH.md→EXECUTION_BOARD.md→PRODUCTION_CLOSURE_BOARD.md
- 读
-
想继续做真实宿主验收:
- 读
SOURCE_OF_TRUTH.md→REAL_HOST_ACCEPTANCE_RUNBOOK.md→REAL_HOST_ACCEPTANCE_LEARNINGS.md
- 读
-
想回顾为什么会演化到现在:
- 读
SOURCE_OF_TRUTH.md→ 历史 review/task board → 再回到EXECUTION_BOARD.md
- 读
明确禁止的错误读法
- ❌ 直接拿历史 review/task board 顶部 gate 当当前状态
- ❌ 直接拿历史 PASS artifact 当 latest-head 当前真相
- ❌ 把
/v1/models通过自动等同于 completion 已通过 - ❌ 把 harness 参数错误(如
PACK_PATH、容器目标、probe auth)直接当成源码失败