Files
cms-SiteForge/docs/V8_13_P5_ACCEPTANCE.md
浅念 601451f22b upgrade: adopt V8.21.3 (V8.13→8.21.3: P5 SFTP/S3, P6 multilingual, editor overhaul, enterprise hardening)
Overlay ~150 upstream items onto our V8.12 base, preserving trade-pro
theme, registry tests, and design docs. Re-applied our patch set
(discovery/env_for/blocks.css/type-mapping/theme_color/frontend entries,
test_theme_pro_v3 mods) — all anchors survived upstream evolution.

New platform enhancement (fixes upgrade-introduced regression):
multilingual.site_locale now honors settings_json.locale, plus
PUT /api/i18n/sites/{id}/locale — standalone English sites get
<html lang='en'> under the V8.15 locale-rewrite pipeline.

compose: adopt V8.21.3 (image 8.21.3-dev.1, /api/ready probes, MySQL/S3
env) with project name pinned to siteforge-v8-10 (data volumes).

Tests: 356 passed / 11 failed — all 11 confirmed pre-existing in
pristine V8.21.3 on this host (10 upstream Windows env + our build test
now green after locale fix). Patch registry updated in plan doc.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 12:31:03 +08:00

44 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SiteForge V8.13 — P5 发布闭环的交付与验收清单
版本:`8.13.0-dev.1`。此报告区分 **源代码实现/本地自动化测试** 与 **Docker/外部生产实机验收**。
## 本轮实现与已有能力
| 验收点 | 当前状态 | 证据 / 限制 |
|---|---|---|
| 构建完成且 ZIP 可用 | 已实现与单元测试 | `release_api.approved` + `_archive_for` |
| 静态质量、SEO 迁移审核、独立审批 | 已有代码 + 本轮 API 专项测试 | 未审批返回 409,迁移站差异会阻断 |
| Web 不执行远程大文件上传 | 已实现 | API 提交 `remote_deploy` / `remote_rollback` 任务,返回 HTTP 202 |
| 任务超时、幂等、容量、取消 | 已有 Worker + 本轮补充测试 | 单机 SQLite 租约;不是多区域事务 |
| 远程 ZIP 不可变暂存 | 已实现与签名 Agent 模拟测试 | 按存档 SHA256 前 20 位命名,不更改 current |
| 远程文件 SHA256、清单核验 | 已实现与模拟测试 | 篡改文件后拒绝激活 |
| 单次版本切换 | 已实现与模拟测试 | `current` 指针文件通过 `os.replace` 原子替换 |
| 激活后二次校验与首页探针 | 已实现与模拟测试 | 比对 Agent 公开首页的 SHA256;不等于真实域名探测 |
| 异步历史版本回滚 | 已实现与模拟测试 | 仅回滚数据库记录中该站点该目标的版本;验真后切换 |
| 目标密钥不进入前端 | 已实现的环境引用方案 | 推荐挂载到 `/run/secrets`,待生产轮换验收 |
| SFTP / S3 原生连接器 | **未实现** | HTTPS 发布 Agent 为当前唯一可运行的远程目标类型 |
| 真实 Docker、外网 TLS、CDN、域名 | **待实机验收** | 当前环境无 Docker Engine;没有公网发布测试服务器 |
| 发布取消在切换瞬间的跨服务一致性 | **未完全解决** | 需增加远程状态 reconciliation / 运维确认 |
| PostgreSQL/Redis 多 Worker | **待生产验收** | 独立 Compose 已配置但未完成真实高可用测试 |
## 确定性专项测试
- 不经过激活就上传两个版本时,当前线上指针保持不变。
- 篡改 staging 文件后,Agent 拒绝激活且旧站保持可访问。
- 伪造签名、非法 ZIP 路径、保留文件名、同名冲突会被拒绝。
- 已批准构建通过异步 API 提交,在队列中去重;未批准构建禁止提交。
- 运行签名 Agent 的完整暂存、校验、激活、再次验证、回滚逻辑(本地 TestClient 模拟)。
- 任务数量达到上限时拒绝新任务;取消排队任务不影响已发布内容。
## 正式上线前需要的人工/环境门禁
1. Docker 一条命令在全新宿主机成功启动 Web 与 Worker,并验证 `/api/health` 精确报告版本/提交。
2. 将 Agent 部署于真实 HTTPS 测试域名,独立密钥及 TLS 证书有效;仅开放预期入口。
3. 在授权测试网站完成两轮发布,故障注入覆盖上传中断、校验失败、切换成功后 Web 超时、Worker 取消。
4. 核对站点正式域名的首页、产品详情、404、canonical、sitemap、robots、媒体与链接。
5. 验证真实站点切换/回滚并确认时间、缓存失效、老 URL 保留。
6. 审计密钥轮换、管理员/审核人权限、备份/恢复和日志中的敏感数据。
7. 完成 SFTP/S3 等其它发布方式后,逐个通过等价事务性/故障恢复门禁。
**结论**:V8.13 的 HTTPS Agent 远程发布形成了本地可测试的发布闭环;尚不符合全部 P5 生产验收条件。