Record article like rollout, backfill and scheduler verification
This commit is contained in:
parent
ea39498706
commit
f315215f6f
@ -39,7 +39,7 @@ ### AI 新文章的点赞参数(2026-10-29)
|
||||
|
||||
新文章可省略`like_settings`使用上述默认值,也可在创建草稿时显式提交`{"seven_day":12,"yearly":50,"one_year":200}`;0表示关闭对应机制。保存后检查草稿响应的`like_settings`,发布后从鉴权的`source-articles/{id}`响应`like_growth`回读确认。旧文章编辑不传此对象;API拒绝通过普通改稿重置额度。设置与进度只属于内部发布数据,不写进公开正文、摘要、图注或封面。
|
||||
|
||||
具体字段、迁移、任务、测试与回退见[文章自动点赞维护](../maintenance/ARTICLE_LIKES.md)。这些默认值已落到本地代码及迁移,不代表已启用本机调度或已部署线上。
|
||||
具体字段、迁移、任务、测试与回退见[文章自动点赞维护](../maintenance/ARTICLE_LIKES.md)。这些默认值已于2026-10-29部署正式cfn,原每5分钟点赞任务已接入新增年度额度;本机仍未启动调度。按用户本次明确授权,正式10篇教程已补齐缺项:3篇全0新文补全部默认值,另外7篇仅补一次性年度额度并保留原参数。后续不自动重置已有文章,补配结果见上述维护记录。
|
||||
|
||||
## 2 当前文章登记
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# 文章自动点赞维护
|
||||
|
||||
适用FNA_V3;2026-10-29用户要求新增“一年内增加指定额度,完成后停止”,并为后续AI新文章配置默认参数。AI写作默认值与业务口径的唯一正文为[写作规范](../content/WRITING.md#ai-新文章的点赞参数2026-10-29),发布调用入口为[独立文章API](EDITORIAL_API.md)。本次仅本地实现,未修改已部署test或正式站,未启动本机调度,也未对现有文章补额度。
|
||||
适用FNA_V3;2026-10-29用户要求新增“一年内增加指定额度,完成后停止”,并为后续AI新文章配置默认参数。AI写作默认值与业务口径的唯一正文为[写作规范](../content/WRITING.md#ai-新文章的点赞参数2026-10-29),发布调用入口为[独立文章API](EDITORIAL_API.md)。2026-10-29已按用户“上线,把之前没处理的文章也处理”授权发布正式cfn并补齐10篇教程,test未更新,本机调度未启动。部署与回退记录见本文末尾。
|
||||
|
||||
## 三项独立机制
|
||||
|
||||
@ -34,8 +34,24 @@ ## 迁移、验证与回退
|
||||
|
||||
2026-10-29已在本地`fna_v3`执行此迁移;迁移前后170篇原有行字段SHA256一致,现有启用新计划数为0。证据为`output/article-like-growth-20261029/local-before.json`、`local-after.json`。正常命令依赖现有系统调度器;本次没有手工运行真实数据的加赞任务或安装cron。
|
||||
|
||||
测试位于`tests/Feature/OneYearArticleLikesTest.php`、`tests/Feature/EditorialApiTest.php`,使用SQLite内存数据库。覆盖渐进增加、满额停止、重复执行、真实赞独立、原年度机制独立继续、停机补进度、禁用/未来开始时间、闰日、空起点、CLI任务接入、草稿随机默认值稳定、发布映射、编辑保留和非法输入;结果为22项测试、207次断言全部通过,回执见输出目录tests.xml。原项目存在命令类文件名与类名不一致的遗留注册问题,测试沿用原编辑API测试的独立进程模式避免重复注册,不修改无关遗留命令。
|
||||
测试位于`tests/Feature/OneYearArticleLikesTest.php`、`tests/Feature/EditorialApiTest.php`,使用SQLite内存数据库。覆盖渐进增加、满额停止、重复执行、真实赞独立、原年度机制独立继续、停机补进度、禁用/未来开始时间、闰日、空起点、CLI任务接入、草稿随机默认值稳定、发布映射、编辑保留和非法输入;结果为23项测试、225次断言全部通过,回执见输出目录tests.xml。原项目存在命令类文件名与类名不一致的遗留注册问题,测试沿用原编辑API测试的独立进程模式避免重复注册,不修改无关遗留命令。
|
||||
|
||||
回退功能时先停用调用新service的任务代码及新版发布代码,保留新字段和历史进度。不要在仍有新版写入者时drop列;需要撤销迁移时先备份新字段、确认没有活动计划和依赖调用方,再在独立维护窗口执行其down。已有文章总点赞数不会自动减回,避免删除真实/其他来源的赞。
|
||||
|
||||
本地鉴权`source-articles/365`只读HTTP回读200,新进度字段返回正确的0/0/null,原有文章字段哈希保持一致;证据为输出目录source-check.json。未发布临时文章、未触发真实文章加赞。
|
||||
|
||||
## 已有编辑文章补配命令
|
||||
|
||||
`article:backfill-editorial-likes`默认只预览;显式`--apply`才写入。仅处理editorial_documents已绑定且已发布的文章,不处理日更资源。目标额、已支付量均为0且开始时间为空时才补一次性年度额度;短期和持续年度参数同时为0的,另补默认值。已有年度参数和短期余额保留,已过短期窗口的文章不重启短期计划。使用事务行锁,重复执行候选数为0,不重抽、不覆盖进度,也不修改正文、总点赞数和内容日期。
|
||||
|
||||
## 正式部署与补齐(2026-10-29)
|
||||
|
||||
- 生产目录`/www/wwwroot/clashfreenode-new.com`经白色机SSH更新到已推送Git提交`ea394987069cc0e7a980c60ebe2dc845c03b5fbe`,分支`codex/article-like-growth-20261029`,父提交`cbb847aed89f5452fdbd351968cc2b9c993d9f66`。后续如有仅文档提交,应用代码仍以上述提交为准。
|
||||
- 服务器私有恢复点`VPS-003:/root/backups/cfn-likes-20261029/`:生产数据库一致性快照、Git bundle、原生成模板、补配前公开文章快照、补配预览和回执。秘密与数据库备份未导出本机。
|
||||
- 只执行本次指定迁移。10篇教程全部补新增年度额度:原7篇ID206~212分别253/204/137/492/194/297/274,原短期余额0及持续年度30/30/40/30/30/30/50保持。3篇新文:DNS ID375短期30/持续年度50/一次性444;系统代理TUN ID376为34/50/106;Windows ID377为23/50/165。一次性额度从本次补配时计时。
|
||||
- 生产184篇文章完整保留;补配阶段总点赞数、正文、创建/更新时间、标签和其他元数据不改,174篇资源文章逐行不变。命令重复执行候选数为0;任务正常执行后的短期赞数可持续变化,不能把初始额度当作当前剩余。
|
||||
- 验证任务时发现原root调度创建的文件缓存目录造成nginx无权刷新,且发布前已有同类真实点赞报错。仅将该站现有每分钟schedule:run条目的PHP执行用户改为nginx,原调度频率、工作目录、日志重定向和其他cron条目保留;业务命令仍由Laravel每5分钟调度。修复该站file cache下6个root所有项的归属,权限模式不扩大;原cron和权限元数据已私有备份。随后以nginx执行命令成功,新增额度与短期原逻辑均接入。
|
||||
- 2026-10-29 13:32:52 UTC服务器侧首页、综合栏目及系统代理TUN文章HTTP200;编辑API维持关闭,生产环境和原生成模板保留。没有修改广告、Resource、test、DNS、Nginx或其他站点。未做线上页面验收。
|
||||
- 非秘密发布回执:[ARTICLE_LIKES_RELEASE_2026-10-29.json](ARTICLE_LIKES_RELEASE_2026-10-29.json)。已观察13:35:01 UTC(北京时间21:35:01)自动刷新,缓存写入用户nginx;手动验收后另有4次新调度唤起,证据在回执`automatic_schedule`字段,未为观察再次手动加赞。
|
||||
|
||||
回退本次代码可检出上述父提交,但保留新增列、已支付进度及增加的总赞,不自动扣赞或覆盖整库。需要撤销某个额度时先依据本次精确回执、当前已支付量及并行配置生成定点方案;不得把原始快照整行回灌。已修复的调度用户与缓存权限默认保留,不能为回退代码重新引入root缓存写入问题;其原始状态仍留恢复点供审计。
|
||||
|
||||
110
docs/maintenance/ARTICLE_LIKES_RELEASE_2026-10-29.json
Normal file
110
docs/maintenance/ARTICLE_LIKES_RELEASE_2026-10-29.json
Normal file
@ -0,0 +1,110 @@
|
||||
{
|
||||
"commit": "ea394987069cc0e7a980c60ebe2dc845c03b5fbe",
|
||||
"backup": "/root/backups/cfn-likes-20261029",
|
||||
"backfill_articles": 10,
|
||||
"new_default_articles": 3,
|
||||
"idempotent_backfill": true,
|
||||
"task_output": "ID [375] 爆发:注入 1 个赞,剩余库存 28\nID [376] 爆发:注入 2 个赞,剩余库存 32\nID [377] 爆发:注入 1 个赞,剩余库存 22\n本次任务结束:3 篇爆发增长,0 篇全年喜提。\n一次性年度额度本次增加 0 赞,额度用完后停止。",
|
||||
"cron_service": "active",
|
||||
"scheduler_user": "nginx",
|
||||
"scheduler_frequency": [
|
||||
"*",
|
||||
"*",
|
||||
"*",
|
||||
"*",
|
||||
"*"
|
||||
],
|
||||
"cache_entries_reowned": 6,
|
||||
"articles": 184,
|
||||
"resource_articles_unchanged": 174,
|
||||
"content_identity_preserved": true,
|
||||
"editorial_enabled": false,
|
||||
"environment": "production",
|
||||
"configured": [
|
||||
{
|
||||
"id": 206,
|
||||
"slug": "m169",
|
||||
"seven_day_initial": 0,
|
||||
"yearly": 30,
|
||||
"one_year": 253
|
||||
},
|
||||
{
|
||||
"id": 207,
|
||||
"slug": "m170",
|
||||
"seven_day_initial": 0,
|
||||
"yearly": 30,
|
||||
"one_year": 204
|
||||
},
|
||||
{
|
||||
"id": 208,
|
||||
"slug": "m171",
|
||||
"seven_day_initial": 0,
|
||||
"yearly": 40,
|
||||
"one_year": 137
|
||||
},
|
||||
{
|
||||
"id": 209,
|
||||
"slug": "m172",
|
||||
"seven_day_initial": 0,
|
||||
"yearly": 30,
|
||||
"one_year": 492
|
||||
},
|
||||
{
|
||||
"id": 210,
|
||||
"slug": "m173",
|
||||
"seven_day_initial": 0,
|
||||
"yearly": 30,
|
||||
"one_year": 194
|
||||
},
|
||||
{
|
||||
"id": 211,
|
||||
"slug": "m174",
|
||||
"seven_day_initial": 0,
|
||||
"yearly": 30,
|
||||
"one_year": 297
|
||||
},
|
||||
{
|
||||
"id": 212,
|
||||
"slug": "m167",
|
||||
"seven_day_initial": 0,
|
||||
"yearly": 50,
|
||||
"one_year": 274
|
||||
},
|
||||
{
|
||||
"id": 375,
|
||||
"slug": "mihomo-dns-leak",
|
||||
"seven_day_initial": 30,
|
||||
"yearly": 50,
|
||||
"one_year": 444
|
||||
},
|
||||
{
|
||||
"id": 376,
|
||||
"slug": "system-proxy-vs-tun",
|
||||
"seven_day_initial": 34,
|
||||
"yearly": 50,
|
||||
"one_year": 106
|
||||
},
|
||||
{
|
||||
"id": 377,
|
||||
"slug": "clash-verge-rev-windows",
|
||||
"seven_day_initial": 23,
|
||||
"yearly": 50,
|
||||
"one_year": 165
|
||||
}
|
||||
],
|
||||
"http": {
|
||||
"/": 200,
|
||||
"/advanced": 200,
|
||||
"/a/system-proxy-vs-tun.html": 200
|
||||
},
|
||||
"generated_tags_preserved": true,
|
||||
"verified_at_utc": "2026-10-29T13:32:52Z",
|
||||
"automatic_schedule": {
|
||||
"checked_at_utc": "2026-10-29T13:36:11Z",
|
||||
"cache_modified_at_utc": "2026-10-29T13:35:01Z",
|
||||
"cache_writer_owner": "nginx",
|
||||
"cache_refreshed_after_manual_verification": true,
|
||||
"new_scheduler_invocations": 4,
|
||||
"observed": true
|
||||
}
|
||||
}
|
||||
@ -6,7 +6,7 @@ ## 正式切换(2026-10-29)
|
||||
|
||||
用户已在test页面确认后明确授权切正式。本次复用原生产目录、数据库、域名及Nginx块,不将test数据库、会话或密钥替代生产;其他同代码正式实例不在范围。
|
||||
|
||||
- cfn:/www/wwwroot/clashfreenode-new.com,检出已推送且经过test确认的76141453bbdbd14b13c69647c14226bae7250afc,功能代码固定为此提交,后续仅AGENTS/docs维护提交可推进部署HEAD,不改变已验收应用代码。现有生产仓库为tom/fn_b.git,发布分支codex/fna-v3-release-20261029;本地复制历史不直接推送。Resource V2:/www/wwwroot/resource-v2/app,检出0d9e71a0cdbf9b6e298dc28b28ccc38879a5808e。两者沿先前codex/fna-v3-release-20261029推送提交发布,不通过源码包覆盖。原generated-tags-cloud未提交模板逐字保留;既有cron没有Git自动更新命令,未改计划。
|
||||
- cfn:/www/wwwroot/clashfreenode-new.com,检出已推送且经过test确认的76141453bbdbd14b13c69647c14226bae7250afc,这是首次正式切换的功能提交;后续点赞功能增量见本文“文章点赞增量发布”。现有生产仓库为tom/fn_b.git,发布分支codex/fna-v3-release-20261029;本地复制历史不直接推送。Resource V2:/www/wwwroot/resource-v2/app,检出0d9e71a0cdbf9b6e298dc28b28ccc38879a5808e。两者沿先前codex/fna-v3-release-20261029推送提交发布,不通过源码包覆盖。原generated-tags-cloud未提交模板逐字保留;既有cron没有Git自动更新命令,未改计划。
|
||||
- 已在原库上追加指定5张editorial表,限定更新client/advanced/shadowrocketids元数据。10篇教程从用户确认的test实际公开正文冻结,经生产临时凭据完成草稿→逐篇签名预览→同hash发布→回执核对;原7篇ID/slug/创建时间保留,新增3篇。当前184篇文章、9分类;原181篇全部保留,174篇非本次编辑文章的标题/摘要/正文/原始封面字段/分类/状态/日期全部逐项不变,原账号行一致。
|
||||
- 原生产APP_ENV=local、DEBUG开启,现限定修正production/DEBUG=false;原DB、APP_KEY、会话、通知和其他配置保留。资源绑定https://resource-v2.gemcook.net,搜索改用专属cfn_articles_v3并完整初始化,原articles索引不删除。正式站原统计恢复,首页index/follow、正式canonical/robots/sitemap均通过;没有将test的全站noindex、API封闭或独立会话配置复制到正式。
|
||||
- Resource仅追加已验证的图池代码/表,37张审核展示图按API上传/发布/授权;从test已确认状态恢复213条池/固定选择/游标引用,22猫/15狗,84篇免费节点/90篇免费苹果ID。所有已确认固定配图按SHA逐项保留;毛线球猫继续排除。原Resource的5个资产及20个历史客户端记录全部不变。
|
||||
@ -122,3 +122,9 @@ ### 白色机连接复核(2026-10-29 10:12 UTC)
|
||||
按用户要求只读排查:本机到白色机经utun6/Clash TUN,运行时为global、当前GLOBAL选择日本JP-07;这是当前链路证据,不能单凭它认定代理故障。随后已收到正常OpenSSH横幅,真实登录白色机成功,并通过登记跳转真实登录VPS-003成功。
|
||||
|
||||
白色机ssh服务active,ActiveEnterTimestamp为2026-10-15,NRestarts=0;MaxStartups=10:30:100。近期服务日志未找到MaxStartups丢弃/限流记录。此前失败发生在认证前,目前仅能定性为间歇断连,具体根因未定位,不能归因于密码错误、服务器封禁或代理节点。全程没有切换节点、关闭TUN、重启SSH或修改防火墙。连接阻塞已解除;本次连接诊断没有执行新的发布或数据库写入,完整发布仍未完成。
|
||||
|
||||
## 文章点赞增量发布(2026-10-29)
|
||||
|
||||
用户随后授权上线新增一次性年度额度,并补齐未配置教程。正式cfn应用提交更新为`ea394987069cc0e7a980c60ebe2dc845c03b5fbe`(已推送`codex/article-like-growth-20261029`);本次仅点赞功能、指定三列迁移及关联规范,不携带广告、其他本地修改或Resource变更。10篇教程已补缺项,原7篇既有参数保留,3篇全0新文补全默认值,184篇文章及174篇非编辑资源数据保留。现有调度仍每分钟唤起Laravel、业务任务每5分钟运行;为修复已存在的文件缓存权限问题,只有该站调度PHP改由nginx用户执行,并恢复6个root缓存项归属。以nginx运行已成功。
|
||||
|
||||
恢复点为VPS-003:/root/backups/cfn-likes-20261029/;精确额度、验证、当前文档提交及回退唯一正文见[文章自动点赞维护](ARTICLE_LIKES.md)和[发布回执](ARTICLE_LIKES_RELEASE_2026-10-29.json)。服务器侧HTTP通过,未做线上页面验收。test保持原部署,本次没有重新启用编辑API或改动统计、广告、配图授权。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user