docs(audit): track qr-gate post as Batch-10 approved
Deploy / build (push) Successful in 36s

This commit is contained in:
hoelee committed 2026-11-10 09:33:26 +08:00
1 parent b7a53af943
commit a50b82eb69
1 file changed
+169 -156
+169 -156
View File
@@ -38,6 +38,32 @@
"en_chars": 12512,
"zh_chars": 7237
},
"apple-icloud-smtp-port-465-timeout-starttls-587-trap": {
"slug": "apple-icloud-smtp-port-465-timeout-starttls-587-trap",
"title": "Apple iCloud SMTP Times Out on Port 465: The 587 STARTTLS-Only Trap",
"zh_title": "Apple iCloud 邮箱发信 465 超时:仅支持 587 STARTTLS 的协议陷阱",
"category": "notes",
"pub_date": "2026-06-18",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:明确 Windows Winsock 10060 运行环境、校准 RFC 6409/3207 与 RFC 8314 演进史、中文标签去个人化、details 标注 11 行。",
"en_chars": 5070,
"zh_chars": 3550
},
"architecting-sea-payment-and-offline-licensing-pipelines": {
"slug": "architecting-sea-payment-and-offline-licensing-pipelines",
"title": "Delivering Commercial Desktop Software in Southeast Asia: Multi-Gateway Billing with toyyibPay and Keygate Fulfillment",
"zh_title": "在东南亚交付桌面商业软件:对接 toyyibPay 本地网银与 Keygate 机器码离线授权",
"category": "case-studies",
"pub_date": "2026-10-27",
"status": "pending",
"batch_id": null,
"approved_at": null,
"notes": "",
"en_chars": 9252,
"zh_chars": 5620
},
"authentik-css-greater-than-bug": {
"slug": "authentik-css-greater-than-bug",
"title": "The Character That Silently Broke My authentik CSS",
@@ -77,6 +103,19 @@
"en_chars": 11710,
"zh_chars": 6147
},
"authentik-oidc-redirect-loop-node-set-header-overwrite": {
"slug": "authentik-oidc-redirect-loop-node-set-header-overwrite",
"title": "The Authentik OIDC Redirect Loop: Why Node.js res.setHeader Overwrites Rather Than Appends",
"zh_title": "Authentik OIDC 重定向死循环:Node.js res.setHeader 整头覆盖机制与会话丢失排障",
"category": "engineering",
"pub_date": "2025-02-14",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:修正 Bento 卡片行数与摘要对齐、中文标题去个人化、details 标注 12 行。Playwright 真实测试通过。",
"en_chars": 6367,
"zh_chars": 3970
},
"automating-cyberpanel-without-the-ui": {
"slug": "automating-cyberpanel-without-the-ui",
"title": "Automating CyberPanel Without the UI: Reverse-Engineering an Undocumented v2 API",
@@ -90,6 +129,19 @@
"en_chars": 8474,
"zh_chars": 5205
},
"batch-generating-80-technical-covers-with-comfyui": {
"slug": "batch-generating-80-technical-covers-with-comfyui",
"title": "Batch Generating 80+ Technical Covers with ComfyUI: Constraining Style, Space, and Typography",
"zh_title": "用 ComfyUI 批量闭环 80+ 张技术图文封面:设计规范约束、留白控制与批处理工作流",
"category": "ai",
"pub_date": "2026-10-27",
"status": "pending",
"batch_id": null,
"approved_at": null,
"notes": "",
"en_chars": 10963,
"zh_chars": 7049
},
"best-ai-video-generators-2026": {
"slug": "best-ai-video-generators-2026",
"title": "Best AI Video Generators in 2026: Free vs Paid, and My LTX-2.3 Test",
@@ -116,6 +168,19 @@
"en_chars": 10968,
"zh_chars": 5968
},
"cascading-docker-failures-nocodb-heap-limit-starved-n8n": {
"slug": "cascading-docker-failures-nocodb-heap-limit-starved-n8n",
"title": "Cascading Docker Failures: When a Node.js Heap Limit in NocoDB Starved an n8n Automation Stack",
"zh_title": "Docker 级联故障复盘:NocoDB 内存溢出如何拖垮整套 n8n 自动化栈",
"category": "devops",
"pub_date": "2025-04-12",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:校准 V8 堆内存与 cgroup 启发式机制描述、修正 details 为 17 行、对齐 Compose 语法。",
"en_chars": 5885,
"zh_chars": 3834
},
"chainlink-vrf-v2-lottery-contract": {
"slug": "chainlink-vrf-v2-lottery-contract",
"title": "An Automated Lottery Contract on Chainlink VRF v2.5 and Automation",
@@ -298,6 +363,19 @@
"en_chars": 1938,
"zh_chars": 1074
},
"home-assistant-container-upgrade-ladder-four-hops": {
"slug": "home-assistant-container-upgrade-ladder-four-hops",
"title": "Home Assistant Container: Upgrading Thirteen Releases Across a Four-Hop Ladder",
"zh_title": "Home Assistant 容器版跨版本升级:四阶安全平跳十三期迭代",
"category": "devops",
"pub_date": "2026-07-22",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:将智能家居升维为机房物联网动环监控、平滑 2026.8 反代表述、修正 details 为 14 行。",
"en_chars": 5593,
"zh_chars": 3422
},
"how-i-built-an-automated-music-video-pipeline": {
"slug": "how-i-built-an-automated-music-video-pipeline",
"title": "How I Built an Automated Music Video Pipeline with Remotion and Dockerized YouTube CDP",
@@ -571,6 +649,19 @@
"en_chars": 13927,
"zh_chars": 7415
},
"qr-gate-that-decodes-before-the-download": {
"slug": "qr-gate-that-decodes-before-the-download",
"title": "Why Printed QR Codes Fail to Scan: Building a Pre-Download Verification Gate",
"zh_title": "为什么印出来的二维码扫不出:在下载前建一道解码与物理校验闸门",
"category": "engineering",
"pub_date": "2026-11-10",
"status": "approved",
"batch_id": "Batch-10",
"approved_at": "2026-11-10 09:40",
"notes": "外部顾问审阅 94/96/88/100;采纳 10 项、拒绝 2 项,理由见 report-batch-10.md",
"en_chars": 18971,
"zh_chars": 10400
},
"read-only-nocodb-dashboard-for-a-remote-database": {
"slug": "read-only-nocodb-dashboard-for-a-remote-database",
"title": "A Read-Only NocoDB Dashboard for a Database on Another Machine",
@@ -727,6 +818,19 @@
"en_chars": 13879,
"zh_chars": 6861
},
"six-chrome-containers-locked-my-nas-btrfs-d-state-igpu-offload": {
"slug": "six-chrome-containers-locked-my-nas-btrfs-d-state-igpu-offload",
"title": "Why Six Desktop Chrome Containers Locked a Production NAS: CPU WebGL Emulation, Btrfs D-State, and Offloading to iGPU",
"zh_title": "六个 Chrome 容器打崩存储 NAS:CPU 软解 WebGL、Btrfs D 状态死锁与核显架构迁移",
"category": "devops",
"pub_date": "2025-03-20",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:修正 7.5GB 提交内存空间、折叠 docker-compose 配置(17行)、正文对齐 unRaid 宿主、英文标题去个人化。",
"en_chars": 6351,
"zh_chars": 3892
},
"slashing-agent-context-with-a-code-graph": {
"slug": "slashing-agent-context-with-a-code-graph",
"title": "Slashing Agent Context and Token Churn With a Code Graph",
@@ -883,6 +987,19 @@
"en_chars": 11636,
"zh_chars": 5229
},
"traefik-yaegi-plugin-package-name-trap": {
"slug": "traefik-yaegi-plugin-package-name-trap",
"title": "Why Your Traefik Yaegi Plugin Fails on Boot: The Module Hyphen to Underscore Trap",
"zh_title": "Traefik 自定义插件启动崩溃:Yaegi 解释器的连字符与下划线陷阱",
"category": "notes",
"pub_date": "2026-10-27",
"status": "pending",
"batch_id": null,
"approved_at": null,
"notes": "",
"en_chars": 6896,
"zh_chars": 4766
},
"two-ways-a-javascript-file-stops-working-and-looks-fine": {
"slug": "two-ways-a-javascript-file-stops-working-and-looks-fine",
"title": "Two Ways a JavaScript File Stops Working and Looks Fine",
@@ -974,6 +1091,45 @@
"en_chars": 8512,
"zh_chars": 4201
},
"when-a-proxy-timeout-returns-html-instead-of-json": {
"slug": "when-a-proxy-timeout-returns-html-instead-of-json",
"title": "When a Proxy Timeout Returns HTML Instead of JSON: A 499 Post-Mortem",
"zh_title": "反代超时返回 HTML,前端报 SyntaxError:一次 499 事故复盘",
"category": "engineering",
"pub_date": "2026-10-28",
"status": "approved",
"batch_id": "Batch-07",
"approved_at": "2026-10-28 09:32",
"notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md",
"en_chars": 15742,
"zh_chars": 8940
},
"when-a-self-hosted-model-router-tripped-trust-and-safety": {
"slug": "when-a-self-hosted-model-router-tripped-trust-and-safety",
"title": "When a Self-Hosted Model Gateway Tripped Trust & Safety: Six Seats, Nine Seconds",
"zh_title": "自建模型网关触发风控复盘:九秒之内,六个席位全部熔断",
"category": "ai",
"pub_date": "2026-11-06",
"status": "approved",
"batch_id": "Ad-hoc-2026-11-06",
"approved_at": "2026-11-06 08:05",
"notes": "Argon 两轮审阅(博客正文 + LinkedIn/dev.to 分发稿)完成并全量采纳:时间戳去具体化、席位watch流重定性、403->502 错误契约修复、双档成本可复算、wrapper 改称 task dispatcher",
"en_chars": 13600,
"zh_chars": 6639
},
"when-lowering-crf-does-nothing-maxrate-deadlock": {
"slug": "when-lowering-crf-does-nothing-maxrate-deadlock",
"title": "When Lowering CRF Does Nothing: The -maxrate Ceiling and the SSIM Quality Deadlock",
"zh_title": "当降低 CRF 毫无效果:视频转码中 -maxrate 封顶与 SSIM 质量门禁的死锁",
"category": "devops",
"pub_date": "2026-10-27",
"status": "approved",
"batch_id": "Batch-07",
"approved_at": "2026-10-28 09:32",
"notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md",
"en_chars": 8970,
"zh_chars": 5317
},
"when-smart-says-healthy-but-your-raid-is-corrupting-data": {
"slug": "when-smart-says-healthy-but-your-raid-is-corrupting-data",
"title": "When SMART Says Healthy and Your RAID Is Silently Corrupting Data",
@@ -1026,6 +1182,19 @@
"en_chars": 15430,
"zh_chars": 9234
},
"why-ffmpeg-map-0-breaks-your-mp4-and-mkv-remux": {
"slug": "why-ffmpeg-map-0-breaks-your-mp4-and-mkv-remux",
"title": "Why ffmpeg -map 0 Breaks Your Remux: The Hidden Matrix of Multi-Track MP4 and Matroska",
"zh_title": "为什么 ffmpeg -map 0 会搞崩混流:跨容器多音轨、字幕与字体的深水区",
"category": "engineering",
"pub_date": "2026-10-27",
"status": "approved",
"batch_id": "Batch-07",
"approved_at": "2026-10-28 09:32",
"notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md",
"en_chars": 11008,
"zh_chars": 7574
},
"why-i-built-a-video-knowledge-base": {
"slug": "why-i-built-a-video-knowledge-base",
"title": "Why I Built a Video Knowledge Base: Turning Saved Short Videos into Searchable Notes",
@@ -1181,161 +1350,5 @@
"notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含GPU/Token成本算账、Gemini净化、双语CTA、代码折叠与简繁转换)",
"en_chars": 28955,
"zh_chars": 24414
},
"when-lowering-crf-does-nothing-maxrate-deadlock": {
"slug": "when-lowering-crf-does-nothing-maxrate-deadlock",
"title": "When Lowering CRF Does Nothing: The -maxrate Ceiling and the SSIM Quality Deadlock",
"zh_title": "当降低 CRF 毫无效果:视频转码中 -maxrate 封顶与 SSIM 质量门禁的死锁",
"category": "devops",
"pub_date": "2026-10-27",
"status": "approved",
"batch_id": "Batch-07",
"approved_at": "2026-10-28 09:32",
"notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md",
"en_chars": 8970,
"zh_chars": 5317
},
"why-ffmpeg-map-0-breaks-your-mp4-and-mkv-remux": {
"slug": "why-ffmpeg-map-0-breaks-your-mp4-and-mkv-remux",
"title": "Why ffmpeg -map 0 Breaks Your Remux: The Hidden Matrix of Multi-Track MP4 and Matroska",
"zh_title": "为什么 ffmpeg -map 0 会搞崩混流:跨容器多音轨、字幕与字体的深水区",
"category": "engineering",
"pub_date": "2026-10-27",
"status": "approved",
"batch_id": "Batch-07",
"approved_at": "2026-10-28 09:32",
"notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md",
"en_chars": 11008,
"zh_chars": 7574
},
"when-a-proxy-timeout-returns-html-instead-of-json": {
"slug": "when-a-proxy-timeout-returns-html-instead-of-json",
"title": "When a Proxy Timeout Returns HTML Instead of JSON: A 499 Post-Mortem",
"zh_title": "反代超时返回 HTML,前端报 SyntaxError:一次 499 事故复盘",
"category": "engineering",
"pub_date": "2026-10-28",
"status": "approved",
"batch_id": "Batch-07",
"approved_at": "2026-10-28 09:32",
"notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md",
"en_chars": 15742,
"zh_chars": 8940
},
"architecting-sea-payment-and-offline-licensing-pipelines": {
"slug": "architecting-sea-payment-and-offline-licensing-pipelines",
"title": "Delivering Commercial Desktop Software in Southeast Asia: Multi-Gateway Billing with toyyibPay and Keygate Fulfillment",
"zh_title": "在东南亚交付桌面商业软件:对接 toyyibPay 本地网银与 Keygate 机器码离线授权",
"category": "case-studies",
"pub_date": "2026-10-27",
"status": "pending",
"batch_id": null,
"approved_at": null,
"notes": "",
"en_chars": 9252,
"zh_chars": 5620
},
"batch-generating-80-technical-covers-with-comfyui": {
"slug": "batch-generating-80-technical-covers-with-comfyui",
"title": "Batch Generating 80+ Technical Covers with ComfyUI: Constraining Style, Space, and Typography",
"zh_title": "用 ComfyUI 批量闭环 80+ 张技术图文封面:设计规范约束、留白控制与批处理工作流",
"category": "ai",
"pub_date": "2026-10-27",
"status": "pending",
"batch_id": null,
"approved_at": null,
"notes": "",
"en_chars": 10963,
"zh_chars": 7049
},
"traefik-yaegi-plugin-package-name-trap": {
"slug": "traefik-yaegi-plugin-package-name-trap",
"title": "Why Your Traefik Yaegi Plugin Fails on Boot: The Module Hyphen to Underscore Trap",
"zh_title": "Traefik 自定义插件启动崩溃:Yaegi 解释器的连字符与下划线陷阱",
"category": "notes",
"pub_date": "2026-10-27",
"status": "pending",
"batch_id": null,
"approved_at": null,
"notes": "",
"en_chars": 6896,
"zh_chars": 4766
},
"authentik-oidc-redirect-loop-node-set-header-overwrite": {
"slug": "authentik-oidc-redirect-loop-node-set-header-overwrite",
"title": "The Authentik OIDC Redirect Loop: Why Node.js res.setHeader Overwrites Rather Than Appends",
"zh_title": "Authentik OIDC 重定向死循环:Node.js res.setHeader 整头覆盖机制与会话丢失排障",
"category": "engineering",
"pub_date": "2025-02-14",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:修正 Bento 卡片行数与摘要对齐、中文标题去个人化、details 标注 12 行。Playwright 真实测试通过。",
"en_chars": 6367,
"zh_chars": 3970
},
"six-chrome-containers-locked-my-nas-btrfs-d-state-igpu-offload": {
"slug": "six-chrome-containers-locked-my-nas-btrfs-d-state-igpu-offload",
"title": "Why Six Desktop Chrome Containers Locked a Production NAS: CPU WebGL Emulation, Btrfs D-State, and Offloading to iGPU",
"zh_title": "六个 Chrome 容器打崩存储 NAS:CPU 软解 WebGL、Btrfs D 状态死锁与核显架构迁移",
"category": "devops",
"pub_date": "2025-03-20",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:修正 7.5GB 提交内存空间、折叠 docker-compose 配置(17行)、正文对齐 unRaid 宿主、英文标题去个人化。",
"en_chars": 6351,
"zh_chars": 3892
},
"cascading-docker-failures-nocodb-heap-limit-starved-n8n": {
"slug": "cascading-docker-failures-nocodb-heap-limit-starved-n8n",
"title": "Cascading Docker Failures: When a Node.js Heap Limit in NocoDB Starved an n8n Automation Stack",
"zh_title": "Docker 级联故障复盘:NocoDB 内存溢出如何拖垮整套 n8n 自动化栈",
"category": "devops",
"pub_date": "2025-04-12",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:校准 V8 堆内存与 cgroup 启发式机制描述、修正 details 为 17 行、对齐 Compose 语法。",
"en_chars": 5885,
"zh_chars": 3834
},
"apple-icloud-smtp-port-465-timeout-starttls-587-trap": {
"slug": "apple-icloud-smtp-port-465-timeout-starttls-587-trap",
"title": "Apple iCloud SMTP Times Out on Port 465: The 587 STARTTLS-Only Trap",
"zh_title": "Apple iCloud 邮箱发信 465 超时:仅支持 587 STARTTLS 的协议陷阱",
"category": "notes",
"pub_date": "2026-06-18",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:明确 Windows Winsock 10060 运行环境、校准 RFC 6409/3207 与 RFC 8314 演进史、中文标签去个人化、details 标注 11 行。",
"en_chars": 5070,
"zh_chars": 3550
},
"home-assistant-container-upgrade-ladder-four-hops": {
"slug": "home-assistant-container-upgrade-ladder-four-hops",
"title": "Home Assistant Container: Upgrading Thirteen Releases Across a Four-Hop Ladder",
"zh_title": "Home Assistant 容器版跨版本升级:四阶安全平跳十三期迭代",
"category": "devops",
"pub_date": "2026-07-22",
"status": "approved",
"batch_id": "Batch-08",
"approved_at": "2026-11-01 14:55",
"notes": "Batch-08 顾问审阅「通过」:将智能家居升维为机房物联网动环监控、平滑 2026.8 反代表述、修正 details 为 14 行。",
"en_chars": 5593,
"zh_chars": 3422
},
"when-a-self-hosted-model-router-tripped-trust-and-safety": {
"slug": "when-a-self-hosted-model-router-tripped-trust-and-safety",
"title": "When a Self-Hosted Model Gateway Tripped Trust & Safety: Six Seats, Nine Seconds",
"zh_title": "自建模型网关触发风控复盘:九秒之内,六个席位全部熔断",
"category": "ai",
"pub_date": "2026-11-06",
"status": "approved",
"batch_id": "Ad-hoc-2026-11-06",
"approved_at": "2026-11-06 08:05",
"notes": "Argon 两轮审阅(博客正文 + LinkedIn/dev.to 分发稿)完成并全量采纳:时间戳去具体化、席位watch流重定性、403->502 错误契约修复、双档成本可复算、wrapper 改称 task dispatcher",
"en_chars": 13600,
"zh_chars": 6639
}
}