upgrade: adopt V8.32.0-dev.1 (theme preview iframe fix, editor simple mode)
Overlay 46 upstream items; full patch set re-applied (all patched files reset by overlay regardless of upstream change status — lesson recorded). Verified: theme suites 35/35; dual-baseline 418 passed vs pristine 389+29 ours, FAILED-set diff EMPTY (same 10 Windows env fails). Live: container 8.32.0-dev.1 healthy, hesupipe 192 entries intact, trade-pro build 203 pages 0 errors. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,204 @@
|
||||
{
|
||||
"version": "8.31.1-dev.1",
|
||||
"generated_utc": "2026-10-26T02:28:20.128766+00:00",
|
||||
"groups": [
|
||||
{
|
||||
"batch": 1,
|
||||
"files": [
|
||||
"test_commercial_v5.py",
|
||||
"test_connectors_v84.py",
|
||||
"test_connectors_v85.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 5.72,
|
||||
"summary": "................................... [100%]\n35 passed in 3.42s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 2,
|
||||
"files": [
|
||||
"test_console_v819.py",
|
||||
"test_core_v4.py",
|
||||
"test_deep_nested_v824.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 6.1,
|
||||
"summary": "........................... [100%]\n27 passed in 3.88s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 3,
|
||||
"files": [
|
||||
"test_editor_easy_v8212.py",
|
||||
"test_editor_ux_v8211.py",
|
||||
"test_enterprise.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 4.48,
|
||||
"summary": "........... [100%]\n11 passed in 2.12s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 4,
|
||||
"files": [
|
||||
"test_enterprise_v7.py",
|
||||
"test_factory.py",
|
||||
"test_factory_v2.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 8.45,
|
||||
"summary": "................................... [100%]\n35 passed in 6.18s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 5,
|
||||
"files": [
|
||||
"test_mobile_tabs_v8213.py",
|
||||
"test_multilingual_v815.py",
|
||||
"test_nested_v823.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 5.45,
|
||||
"summary": "........................ [100%]\n24 passed in 3.23s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 6,
|
||||
"files": [
|
||||
"test_p0_71.py",
|
||||
"test_p0_backup.py",
|
||||
"test_p0_p4_completion_v88.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 4.38,
|
||||
"summary": "....................... [100%]\n23 passed in 2.12s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 7,
|
||||
"files": [
|
||||
"test_p0_p4_completion_v89.py",
|
||||
"test_p1_platform.py",
|
||||
"test_production_v816.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 6.61,
|
||||
"summary": "..................... [100%]\n21 passed in 4.30s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 8,
|
||||
"files": [
|
||||
"test_professional_ui_v811.py",
|
||||
"test_regression_runner_v817.py",
|
||||
"test_release_native_v814.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 4.75,
|
||||
"summary": "................... [100%]\n19 passed in 2.36s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 9,
|
||||
"files": [
|
||||
"test_release_reviews_v7.py",
|
||||
"test_release_v813.py",
|
||||
"test_site_design_v87.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 6.22,
|
||||
"summary": "........................... [100%]\n27 passed in 3.92s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 10,
|
||||
"files": [
|
||||
"test_siteforge_v817_audit.py",
|
||||
"test_studio_v86.py",
|
||||
"test_theme_pro_v3.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 7.3,
|
||||
"summary": "...................................... [100%]\n38 passed in 4.91s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 11,
|
||||
"files": [
|
||||
"test_v818_pg_recovery.py",
|
||||
"test_v818_sqlite_pg_transfer.py",
|
||||
"test_v821_editor_history_and_mapping.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 3.81,
|
||||
"summary": "................. [100%]\n17 passed in 1.43s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 12,
|
||||
"files": [
|
||||
"test_v822_canvas.py",
|
||||
"test_v825_shared_components.py",
|
||||
"test_v826_global_design.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 5.22,
|
||||
"summary": ".................. [100%]\n18 passed in 2.47s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 13,
|
||||
"files": [
|
||||
"test_v827_guided_workspace.py",
|
||||
"test_v828_launch_center.py",
|
||||
"test_v829_theme_studio.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 7.84,
|
||||
"summary": "........... [100%]\n11 passed in 5.04s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 14,
|
||||
"files": [
|
||||
"test_v830_real_pages.py",
|
||||
"test_v8311_performance_icons.py",
|
||||
"test_v831_automotive_ref.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 7.86,
|
||||
"summary": ".......... [100%]\n10 passed in 5.72s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 15,
|
||||
"files": [
|
||||
"test_v832_preview_easy_editor.py",
|
||||
"test_v8_art_installer.py",
|
||||
"test_v8_workflows.py"
|
||||
],
|
||||
"status": "failed",
|
||||
"seconds": 3.99,
|
||||
"summary": "_gallery_and_studio_show_useful_fallback_and_easy_buttons - assert '选择图片素材' in '\\'use strict\\';\\nconst $=id=>document.querySelector(id);\\nconst html=s=>String(s??\\'\\').replace(/[&<>\"\\']/g,c=>({\\'&\\...ault();event.shiftKey?Studio.redo():Studio.undo()}\\n else if(key===\\'y\\'){event.preventDefault();Studio.redo()}\\n});\\n'\n1 failed, 16 passed in 1.67s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 16,
|
||||
"files": [
|
||||
"test_wordpress_baseline.py",
|
||||
"test_worker_queue_v6.py",
|
||||
"test_workspace_v810.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 7.24,
|
||||
"summary": "................ [100%]\n16 passed in 4.77s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 17,
|
||||
"files": [
|
||||
"test_workspace_v812.py",
|
||||
"test_wp_complex_v820.py",
|
||||
"test_wp_migration_v81.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 4.78,
|
||||
"summary": "............................... [100%]\n31 passed in 2.53s\n\n"
|
||||
},
|
||||
{
|
||||
"batch": 18,
|
||||
"files": [
|
||||
"test_wp_migration_v82.py",
|
||||
"test_wp_migration_v83.py"
|
||||
],
|
||||
"status": "passed",
|
||||
"seconds": 5.82,
|
||||
"summary": ".................... [100%]\n20 passed in 3.54s\n\n"
|
||||
}
|
||||
],
|
||||
"all_passed": false
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>SiteForge V8.32 验收报告</title><style>body{margin:0;background:#f6f7fa;color:#243347;font:15px/1.7 system-ui,-apple-system,"Microsoft YaHei",sans-serif}main{max-width:980px;margin:30px auto;padding:0 24px}h1{font-size:30px;letter-spacing:-.02em}h2{font-size:19px;margin-top:30px}.lead{font-size:16px;color:#627185}.panel{border:1px solid #e1e5ed;border-radius:14px;background:white;padding:24px;margin:18px 0}table{width:100%;border-collapse:collapse}td,th{padding:12px;border-bottom:1px solid #eef0f5;text-align:left}th{font-size:12px;color:#6b7a8b}.good{color:#157a55}.warn{color:#a16624}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.num{font-size:30px;font-weight:800}small{color:#68798a}a{color:#21628f}img{max-width:100%;border:1px solid #dfe6ee;border-radius:11px}@media(max-width:700px){.grid{grid-template-columns:1fr}main{padding:0 16px}}</style></head><body><main><h1>V8.32 · 主题预览修复与易用编辑器</h1><p class="lead">SiteForge Enterprise 8.32.0-dev.1 · 实际源码修改和集成验证</p><section class="grid"><div class="panel"><div class="num good">400</div><small>Python 测试,独立隔离批次 18 组</small></div><div class="panel"><div class="num good">39</div><small>JavaScript 历史测试</small></div><div class="panel"><div class="num good">0</div><small>隔离 Chromium 浏览器脚本错误</small></div></section><h2>故障根因</h2><div class="panel"><strong>全局 X-Frame-Options: DENY 阻断了内嵌主题页面。</strong><p>后端只对明确的只读主题预览接口允许 SAMEORIGIN,并同时使用 frame-ancestors 'self'。其他后台页面仍然 DENY。编辑器采用受限、非同源沙箱 srcdoc 渲染以保留原先的安全约束。</p></div><h2>编辑器改进</h2><table><tr><th>使用环节</th><th>修改内容</th></tr><tr><td>新手编辑</td><td>默认只显示文字与内容,复杂设置收起</td></tr><tr><td>图片</td><td>内容区域直接选择/上传图片</td></tr><tr><td>主题浏览</td><td>按主题/页面/设备切换,错误状态清晰</td></tr><tr><td>手机</td><td>390px 可用、无水平溢出,编辑面板能关闭</td></tr><tr><td>版本兼容</td><td>四套主题及已有数据/API/旧版本继续保留</td></tr></table><h2>隔离测试与限制</h2><div class="panel"><p class="good">HTTP + Worker 构建、ZIP 下载与预览链路通过。</p><p>首次集中回归完成 400 个测试但有两项禁止放宽 iframe 同源权限的安全断言失败;针对这两项改为 srcdoc 沙箱后已复测通过。第二次全集中运行在约 72% 处停滞,随后拆分运行 18 组;第 15 组因新增文案的测试预期不一致修正后重测 17 项通过。保留首次失败和停滞日志,不宣称单进程全量稳定。</p><p class="warn">Chromium 运行时不能直接访问本地 HTTP 后台,浏览器验证为真实 HTML/CSS/JS + 模拟 API 的隔离测试,非正式登录后的全链路浏览器验收;生产级 Art Design Pro、PostgreSQL/Redis 和远程部署仍待验证。</p></div><h2>实际编辑器浏览器截图</h2><img alt="V8.32 编辑器桌面端(模拟数据)" src="editor-desktop.png"><p><a href="../../README_V8_32.md">版本说明与使用流程</a> · <a href="V8_32_验收数据.json">机器可读验收数据</a></p></main></body></html>
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"version": "8.32.0-dev.1",
|
||||
"generated_utc": "2026-10-26T02:31:24.270437+00:00",
|
||||
"python": {
|
||||
"count": 400,
|
||||
"batches": 18,
|
||||
"batch_pass_after_retest": 18,
|
||||
"initial_failed_batch": 15,
|
||||
"initial_cause": "test wording assertion outdated after UI label changed",
|
||||
"retested_batch_passed": 17,
|
||||
"single_process_stalled": true
|
||||
},
|
||||
"javascript": {
|
||||
"passed": 39
|
||||
},
|
||||
"http_worker": "passed",
|
||||
"browser_isolated": {
|
||||
"editor_desktop": true,
|
||||
"editor_mobile_390": true,
|
||||
"theme_preview_success_and_failure": true,
|
||||
"gallery_error_retry": true,
|
||||
"script_errors": 0
|
||||
},
|
||||
"production_verified": false,
|
||||
"limitations": [
|
||||
"real authenticated full Chromium against backend not verified: container policy blocks localhost",
|
||||
"official Art Design Pro build and production PG/Redis not verified"
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 301 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 105 KiB |
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
Reference in New Issue
Block a user