Record editorial release verification and schedule policy
This commit is contained in:
parent
3a62bccbcd
commit
d981a2aa4f
66
docs/maintenance/EDITORIAL_RELEASE_2026-10-31.json
Normal file
66
docs/maintenance/EDITORIAL_RELEASE_2026-10-31.json
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"base": "4fb57e494de1796d314698c6317eb58bc1acbed1",
|
||||||
|
"commit": "3a62bccbcdb2da0630e8c192b5b758c264624514",
|
||||||
|
"branch": "codex/editorial-release-20261031",
|
||||||
|
"files": [
|
||||||
|
"AGENTS.md",
|
||||||
|
"app/Console/Commands/EditorialRelease.php",
|
||||||
|
"app/Http/Controllers/Api/Editorial/EditorialController.php",
|
||||||
|
"app/Http/Middleware/EditorialAuthentication.php",
|
||||||
|
"app/Models/Articles.php",
|
||||||
|
"app/Services/Editorial/ProcessApi.php",
|
||||||
|
"app/Services/Editorial/Publisher.php",
|
||||||
|
"app/Services/Editorial/ReleaseRunner.php",
|
||||||
|
"database/migrations/2026_10_31_150000_add_article_display_timestamp.php",
|
||||||
|
"docs/content/WRITING.md",
|
||||||
|
"docs/maintenance/EDITORIAL_API.md",
|
||||||
|
"docs/maintenance/EDITORIAL_RELEASE.md",
|
||||||
|
"docs/maintenance/EDITORIAL_RELEASE_2026-10-31.md",
|
||||||
|
"docs/maintenance/WEEKLY_TUTORIALS.md",
|
||||||
|
"tests/Feature/EditorialApiTest.php",
|
||||||
|
"tests/Feature/EditorialReleaseTest.php",
|
||||||
|
"tools/editorial/release.py",
|
||||||
|
"tools/editorial/ssh_askpass.py",
|
||||||
|
"tools/editorial/test_weekly.py",
|
||||||
|
"tools/editorial/weekly.py"
|
||||||
|
],
|
||||||
|
"backup_directory": "/root/backups/cfn-editorial-release-20261031",
|
||||||
|
"backup": {
|
||||||
|
"articles": 188,
|
||||||
|
"tables": 23,
|
||||||
|
"backup_sha256": "b1ccc19cdc5e43a85ad85cf9b656ef2da97cbb07b23d49283078004e85d292ac"
|
||||||
|
},
|
||||||
|
"checks": {
|
||||||
|
"environment": "production",
|
||||||
|
"editorial_base": "https://clashfreenode.com",
|
||||||
|
"public_api_enabled": false,
|
||||||
|
"credential_file_exists": false,
|
||||||
|
"articles": 188,
|
||||||
|
"article_core_preserved": true,
|
||||||
|
"display_values": 0,
|
||||||
|
"process_api_catalog": true,
|
||||||
|
"editorial_articles": 10,
|
||||||
|
"tags_preserved": true,
|
||||||
|
"http": {
|
||||||
|
"/": 200,
|
||||||
|
"/advanced": 200,
|
||||||
|
"/a/system-proxy-vs-tun.html": 200,
|
||||||
|
"/api/editorial/v1/catalog": 503
|
||||||
|
},
|
||||||
|
"local_wrapper_through_white_host": true
|
||||||
|
},
|
||||||
|
"head": "3a62bccbcdb2da0630e8c192b5b758c264624514",
|
||||||
|
"status": "M resources/views/components/generated-tags-cloud.blade.php\n?? data.ms/",
|
||||||
|
"tested_new_production_publication": false,
|
||||||
|
"tests": {
|
||||||
|
"php_tests": 30,
|
||||||
|
"php_assertions": 268,
|
||||||
|
"python_tests": 5
|
||||||
|
},
|
||||||
|
"automation": {
|
||||||
|
"id": "fna",
|
||||||
|
"check": "15:00 Asia/Shanghai daily",
|
||||||
|
"weekly_target": 3,
|
||||||
|
"starts_on": "2026-11-02"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,5 +1,22 @@
|
|||||||
# 文章发布封装实施记录(2026-10-31)
|
# 文章发布封装实施记录(2026-10-31)
|
||||||
|
|
||||||
范围:经白色机的固定SSH传输、服务器进程内API调用、可恢复发布台账、发布回读、三篇/周且每日15:00检查的本机写作计划,以及新文独立展示时间。保留已有数据、图池、广告、并行改动和现行调度。不在正式站发布演练文章,不恢复test。
|
已通过Git提交、推送并部署正式cfn。功能HEAD `3a62bccbcdb2da0630e8c192b5b758c264624514`,基线 `4fb57e494de1796d314698c6317eb58bc1acbed1`,分支 `codex/editorial-release-20261031`。后续仅记录文档的提交不改变此功能版本。
|
||||||
|
|
||||||
当前阶段:本地实现及隔离验证进行中,尚未部署。最终提交、备份和服务器验收结果在本任务完成时追加。
|
范围:固定本机SSH→白色机VPS-001→业务服务器VPS-003,服务器进程内调用原有文章API,恢复台账/发布回读,新文独立展示时间,以及本机每周三篇、每日15:00检查的计划工具。没有部署白色机写作任务,没有修改SSH/网络/原定时器,没有恢复test。
|
||||||
|
|
||||||
|
## 验证
|
||||||
|
|
||||||
|
- 隔离SQLite业务测试30项、268断言通过,覆盖原API、点赞、发布封装:冻结草稿、图片上传和SHA、真实模板渲染、未review拒发、并行版本冲突、锁互斥、过期权限拒绝、失败后配置恢复、已提交但响应丢失后按原UUID恢复、搜索pending只重试同步、正文回读检测外部改动。新文随机展示偏移冻结、0~21600秒范围、真实创建/年度点赞时间不改、旧文修改保留展示日期均通过。
|
||||||
|
- Python5项测试通过:三篇随机不同日期/每日15:00、漏跑回补、同日不连发、未决任务恢复和真实时间计数、跨周不积累未开始欠稿、固定白色机转发及主机核验。
|
||||||
|
- 本地指定可空字段迁移已完成;第一次沙箱连接MySQL被拒,按授权提升后执行成功。
|
||||||
|
- 正式站188篇文章的ID、slug、标题、正文、封面、栏目、创建/更新日期逐项保持;新增展示字段均为空,旧文显示不变。既有生成标签模板哈希和`data.ms/`并行目录保留。
|
||||||
|
- 真实业务服务器命令以nginx读取10篇编辑文章目录通过;本机新release.py经固定白色机链路调用同一目录也通过,未访问本机线上HTTP。
|
||||||
|
- 服务器侧HTTP:首页、/advanced、系统代理/TUN文章200;公网编辑目录503(保持关闭),公用编辑密钥文件不存在。进程内认证没有写入.env或凭据文件。
|
||||||
|
|
||||||
|
部署首次迁移因Git检出采用私有备份umask导致新代码文件不可被nginx读取,已自动回退;随后仅修正本次代码文件及路径的正常读取权限,沿原恢复点重试成功,私有配置/备份权限未放宽。未重置数据库或数据。
|
||||||
|
|
||||||
|
## 回滚与边界
|
||||||
|
|
||||||
|
私有恢复点位于VPS-003 `/root/backups/cfn-editorial-release-20261031/`:Git bundle、原HEAD/工作区状态、标签模板原件、23表一致性数据库备份、文章核心字段快照、提交及验收回执。正常代码回退检出上述基线并清响应缓存,保留新增可空列与既有文章/发布历史;不执行drop列或整库覆盖。暂停周期任务使用automation_update ID `fna`。
|
||||||
|
|
||||||
|
调度已更新为每周三篇、北京时间每天15:00,自2026-11-02当周开始;首轮自动写作未执行。为避免污染正式内容,本次没有在生产发布演练文章;端到端写入/恢复在隔离测试验证,生产验证为真实SSH、命令、API目录和服务器HTTP。已完成服务器侧验收,未做线上页面验收。精确回执见[JSON](EDITORIAL_RELEASE_2026-10-31.json)。
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user