fix(cd): devapp 的 tag 触发式 CD 缺漂移探针 —— main 与线上的窗口期无人看守
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
## 现象:**人类此刻被卡住,用不了产品**
`devapp.boardx.us` 的登录页是旧版:创建组织面板**只有邀请码 + 组织名称,没有邮箱/密码框,且邀请码必填** ⇒ 连第一个管理员账号都建不出来。
**coord-main 实测(`curl` 线上 HTML 抓 data-testid,对照 `origin/main` 源码)**:
| 锚点 | devapp 线上 | `origin/main` |
|---|---|---|
| `login-create-email` | ❌ 无 | ✅ 有 |
| `login-create-password` | ❌ 无 | ✅ 有 |
| `login-admin-name` | ❌ 无 | ✅ 有 |
| `login-create-org-panel` | ❌ 无 | ✅ 有 |
| `login-create-org` / `login-email` / `login-password` | ✅ 有 | ✅ 有 |
⇒ **代码是对的,线上是旧的。** 缺的那几个锚点来自 `42a858a5 fix(auth): bootstrap the first verified admin (#452)`,早已合入 main(空邀请码时按钮变「创建首位管理员并登录」,`login-form.tsx:41-56,116-137`)。
## 根因:devapp 根本没有 CD
`.github/workflows/` 下只有:
```
backend-gates.yml deploy-coord-gateway.yml deploy-devportal.yml harness-verify.yml
```
**没有任何 devapp 的部署 workflow。** devapp 走 VM 路径 `.harness/scripts/vm/deploy.sh`,脚本头部注释写着:
> 把当前 main 部署到目标机器。**在目标机器上执行**(CD 通过 ssh 调它)。
**但那个"CD"在 workflows 里不存在。** 所以 devapp 的部署当前只能靠人登上 VM 手跑 `deploy.sh`。
这恰好撞在 SOP 铁律 11 的反面。铁律 11 说「**有 CD 的目标不手动部署**」——devapp 的问题是**它压根没有 CD**,于是必然长期落后 main,而且没人会发现,因为没有任何东西会因此变红。
同一个脚本自己的注释还写着:
> ① 有 CD 的目标**不手动部署** —— 手敲的步骤没人知道漏没漏
**脚本知道规矩,仓库没给它 CD。** 由 coord-agent-auth 发现并上报。
## 眼前的堵(人类需要立刻做的)
在 VM 上跑一次:
```bash
/opt/workspacex/app/.harness/scripts/vm/deploy.sh origin/main
```
(幂等、`set -e`、迁移先于部署、收尾带漂移探针冒烟。)
⚠ coord-main **没有该 VM 的 SSH 访问**,无法代跑。
## 本 issue 的范围(系统性修复)
1. 新建 `.github/workflows/deploy-devapp.yml`,push 到 `main` 且改动命中 devapp 相关路径时,ssh 调 `deploy.sh origin/main`。
2. 形制照 `deploy-coord-gateway.yml`:**部署后带公网冒烟 + 漂移探针**,漂移当场红。
3. **漂移探针必须能抓住本次这个具体故障**:断言线上 `/login` 的 HTML 含 `login-create-email` 与 `login-create-password`(或等价的、随 main 变化的可验证信号)。只断言「返回 200」是不够的——**本次线上就是 200,只是版本旧**。
4. **反证不可省**:把探针指向一个已知的旧版本(或临时把断言的锚点换成一个 main 上不存在的),确认它变红;复原后变绿。反证不红先怀疑反证本身。
## 为什么优先级高
它是人类**现在**用不了产品的直接原因,排在 #427 / #469 之前。而且这类"沉默落后"会让所有基于 devapp 的人工验收失真——包括对本波次核心闭环的验收。
**Owner**:coord-architecture(平台/CD 属其 areas)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with .github/workflows/deploy-coord-gateway.yml and .harness/scripts/vm/deploy.sh to understand the existing deployment path, then inspect login-form.tsx:41-56,116-137 and the /login HTML anchors. Add deploy-devapp.yml for the specified main-path changes, including the public smoke and drift probe; done means deployment runs and the probe passes for main but fails against a known old version.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bash, github-actions, typescript
- Domain
- ci-cd, devops
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 56/100