diff --git a/docs/maintenance/EDITORIAL_INDEXNOW.md b/docs/maintenance/EDITORIAL_INDEXNOW.md index 2c672963..f30222e7 100644 --- a/docs/maintenance/EDITORIAL_INDEXNOW.md +++ b/docs/maintenance/EDITORIAL_INDEXNOW.md @@ -9,4 +9,14 @@ # 编辑文章 IndexNow - 内容未变、已撤下、不再允许索引时跳过;旧版本中没有IndexNow状态的历史发布回执不自动补推。暂时禁用不会丢弃已pending状态。 - 仅推送同一站点的规范文章地址;app.url、editorial.base_url、app.site_code必须一致,不跟随重定向,不从文章输入指定外部推送目标。 -状态:本地专项测试及回归已通过,正在准备生产部署;最终提交和服务器实测证据将在本次任务收尾更新。普通文章发布继续通过[白色机发布封装](EDITORIAL_RELEASE.md),公网编辑API保持关闭。 +## 2026-10-31已部署与验证 + +功能提交`574812438338755b160453c4a574557365903506`已Git推送并部署正式cfn,独立分支`codex/editorial-indexnow-publish-20261031`,基线`d981a2aa4fa21abe4512ddd287a2f51f87b11197`。同名旧候选分支另有包含sitemap改动的并行提交415b5f8,保留未覆盖;本任务只部署IndexNow范围,没有捆绑其他SEO工作。 + +专项4项测试/52断言通过:新增/更新通知、同UUID去重、无变化跳过、429退避后202成功、旧回执不补推、禁用环境/域名错配拒发、撤下后停止重试。本地相关业务回归合计36项/344断言通过;其中共享工作区的sitemap测试未作为本次部署范围。 + +正式站现有188篇文章的核心内容与日期、所有旧编辑发布回执保持;生成标签模板哈希和data.ms并行目录保留。新重试命令以nginx实际运行,空队列返回processed=0/pending=0,已登记每5分钟调度;未为演练制造失败队列,也未宣称已观察到一笔真实失败的自动恢复。公网编辑API仍关闭,首页HTTP200。 + +2026-10-31 14:20:55北京时间,通过本机SSH→白色机→业务服务器,由新组件对现有`/a/system-proxy-vs-tun.html`执行一次真实通知验收,HTTP200,密钥文件HTTP200且内容匹配;未改正文、未重新发布、未改旧回执、未批量补推。只证明通知被接收,不代表已收录。已完成服务器侧验收,未做线上页面验收。精确证据见[回执](EDITORIAL_INDEXNOW_2026-10-31.json)。 + +私有恢复点:VPS-003 `/root/backups/cfn-indexnow-20261031/`,包含Git bundle、原HEAD/工作区状态、标签模板、文章核心字段与旧回执快照、真实提交事件和部署记录。回滚可检出基线,保留已有effects状态和内容;单独停推可设`EDITORIAL_INDEXNOW_ENABLED=false`,不要删除pending回执。普通发布继续通过[白色机发布封装](EDITORIAL_RELEASE.md)。 diff --git a/docs/maintenance/EDITORIAL_INDEXNOW_2026-10-31.json b/docs/maintenance/EDITORIAL_INDEXNOW_2026-10-31.json new file mode 100644 index 00000000..e334ac74 --- /dev/null +++ b/docs/maintenance/EDITORIAL_INDEXNOW_2026-10-31.json @@ -0,0 +1,56 @@ +{ + "base": "d981a2aa4fa21abe4512ddd287a2f51f87b11197", + "commit": "574812438338755b160453c4a574557365903506", + "branch": "codex/editorial-indexnow-publish-20261031", + "files": [ + "app/Console/Commands/RetryEditorialIndexNow.php", + "app/Services/Editorial/IndexNowNotification.php", + "app/Services/Editorial/PublicationEffects.php", + "app/Services/Editorial/Publisher.php", + "app/Services/Editorial/ReleaseRunner.php", + "config/editorial.php", + "docs/maintenance/EDITORIAL_API.md", + "docs/maintenance/EDITORIAL_INDEXNOW.md", + "docs/maintenance/EDITORIAL_RELEASE.md", + "routes/console.php", + "tests/Feature/EditorialApiTest.php" + ], + "checks": { + "enabled": true, + "public_api_enabled": false, + "key_valid": true, + "retry_scheduled": true, + "retry_command": { + "processed": 0, + "pending": 0 + }, + "existing_articles_and_receipts_unchanged": true, + "tags_preserved": true, + "homepage_http": 200 + }, + "backup_directory": "/root/backups/cfn-indexnow-20261031", + "status": "M resources/views/components/generated-tags-cloud.blade.php\n?? data.ms/", + "live_verification": { + "ok": true, + "key_file_http_matches": true, + "notification": { + "status": "done", + "attempts": 1, + "http_status": 200, + "urls": [ + "https://clashfreenode.com/a/system-proxy-vs-tun.html" + ], + "submitted_at": "2026-10-31T06:20:55+00:00", + "result": "received" + }, + "verification_only": true, + "article_modified": false + }, + "tests": { + "indexnow_tests": 4, + "indexnow_assertions": 52, + "local_regression_tests": 36, + "local_regression_assertions": 344 + }, + "parallel_branch_preserved": "codex/editorial-indexnow-20261031 (415b5f8ab57432ff238b6d83b83d1bee75c95c7b); sitemap changes not deployed in this task" +}