8cea7dee20
- SiteForge Enterprise V8.10.0-dev.1 upstream source (210 tests) - Fix: v8_workflows._mapped_input now reads both 类型/分类 columns so WXR imports keep post/product types instead of collapsing to page - Docs: trade-pro theme port spec (R3) and implementation plan Co-Authored-By: Claude Code <noreply@anthropic.com>
53 lines
4.8 KiB
Markdown
53 lines
4.8 KiB
Markdown
# SiteForge Enterprise V8.9 — P0–P4 优化及真实验收证据
|
||
|
||
**版本**:8.9.0-dev.1(2026-10-22)
|
||
**状态**:开发与离线集成测试已完成一轮;**不是 P0–P4 全部生产验收通过**。
|
||
|
||
## 已在当前环境验证的实际成果
|
||
|
||
| 阶段 | 具体修改 | 已执行验证 | 仍待完成 |
|
||
|---|---|---|---|
|
||
| P0 | 离线备份恢复先检查所有 ZIP 路径、范围、符号链接、SQLite 完整性;旁路暂存并目录切换;保存恢复前原目录 | 正常恢复、存在旧目录、损坏 DB、非法 ZIP 路径和保留原目录专项测试 | Docker Engine 一键启动、旧版本真实数据升级/回滚、管理员及 Session 密钥轮换、GitHub CI 真正运行 |
|
||
| P1 | 延续 V8.8 安全出网、密钥引用、限额、Worker 超时/幂等/取消/租约;本轮未声称做完 P1 所有基础设施 | 所有旧测试继续通过;回归建站、授权和任务接口 | 正式密钥轮换/吊销、完整可观测性及告警、数据库迁移注册表完备性与多 Worker 故障演练 |
|
||
| P2 | WordPress 额外识别 `img srcset/data-src/data-srcset`、`picture source srcset`、懒加载与视频 poster;仅安全同源图片自动下载;保留响应式尺寸描述、远端 CDI/跨域资源待复核 | 响应式媒体 URL 发现、重写保真、剩余 CDN 识别、既有迁移用例 | CSS `background-image`、私有附件、Elementor/ACF/WooCommerce 任意复杂结构、经授权真实 WP 站点全量迁移 |
|
||
| P3 | 构建器对产品品牌/分类预构建索引;商业就绪与静态 QA 流式扫描;真正用 5,000 条车型分 10 批提交及构建 | 5,000 条记录 10×500 完整提交(14.34s);静态构建产生 5,043 个 HTML(26.01s);优化后的独立质量扫描(6.5s,错误 0) | 多种数据形状压测(如 5000 个同分类页面)、真实 MySQL TLS/外部 API、并发导入及断点故障注入、商业 SEO 数据清洗 |
|
||
| P4 | 维持现有手机/平板独立列、草稿和整站模板发布;新增构建器索引缓存防止模板渲染多次遍历全库,静态 QA 防路径穿越 | 原有页面设计、事务、草稿/正式隔离测试持续通过 | 实际 360/390/1024/1440 浏览器截图/键盘操作/视觉回归,任意设备自由画布与全站历史撤销 |
|
||
|
||
## 5,000 条测试的注意事项
|
||
|
||
- 测试数据是**本地虚构车型数据**,并未连接真实 MySQL,也没有在 Docker 容器中执行。
|
||
- 用 10 批各 500 条执行真正的 `stage → commit`,不是只把测试数据插进数据库。合计 5,000 条记录。
|
||
- 静态构建成功生成 5,043 个 HTML 文件。质量扫描 `errors=0`,但原始测试数据有 **5,039 条 SEO/描述等 warning**;这意味着技术上可生成,不代表可以直接商业上线。
|
||
- **本轮后续修复**:新增每页 100 条的静态分页,包括同一分类和默认 `/products/` 产品中心。5,000 条同一分类的隔离数据库构建生成了 50 个分类分页、50 个产品中心分页,构建约 29.59 秒;该构建的独立 QA 约 6.67 秒,扫描 5,191 个 HTML,错误为 0,但保留 5,039 条内容/SEO 警告。未经正式内容清洗不得对外上线。
|
||
- 可复现的程序:`python scripts/pilot_5000.py --report pilot.json`。默认只执行 5,000 条导入,使用临时数据库,不覆盖现有数据;在独立大内存测试机加 `--build` 执行全部构建/QA,需单独验收耗时、资源峰值与 Worker 超时。
|
||
|
||
## 新代码位置
|
||
|
||
- `app/wp_migration_v82.py` — 图片候选、响应式 URL 改写与待复核。
|
||
- `app/theme_pro.py`、`app/builder.py` — 站点级商品/品牌/分类预计算。
|
||
- `app/commercial_readiness.py`、`app/quality.py` — 线性读取与静态 QA 路径索引。
|
||
- `scripts/restore_backup.py` — 离线预检、目录恢复及保留原目录。
|
||
- `scripts/pilot_5000.py` — 5,000 条独立验收脚本。
|
||
- `tests/test_p0_p4_completion_v89.py` — 回归测试。
|
||
|
||
## 发布门禁与运维限制
|
||
|
||
- **尚不能标记 P0–P4 生产验收全部完成**。开发代码没有目标服务器镜像摘要、跨浏览器体验、授权客户 CMS 全量迁移及故障恢复证据,不能代替这些检查。
|
||
- 生产恢复必须事先停止 Web/Worker。新恢复脚本仅适用于 SQLite 的单机卷;如果使用 PostgreSQL,需要独立 pg_dump / 迁移/恢复方案。
|
||
- 不应提前启用 P5 远程自动发布生产域名;必须先完成 P0–P4 的上线门禁并验证旧网址和 SEO。
|
||
|
||
## 实际验证步骤
|
||
|
||
```bash
|
||
python -m pytest -q
|
||
python scripts/verify_release.py
|
||
python -m compileall -q app scripts
|
||
bash scripts/check.sh
|
||
python scripts/pilot_5000.py --report pilot.json
|
||
# 仅在有 Docker Engine 的服务器执行:
|
||
docker compose up -d --build
|
||
curl -fsS http://127.0.0.1:8787/api/health
|
||
```
|
||
|
||
以上 Docker、真机浏览器及真实外部 WordPress/MySQL 步骤在本次执行环境**未完成**。
|