{
  "id": 18725270,
  "title": "Day 168 | 把“重发即 422”的暗门，焊死在数据层：归一化 skip 判定设计验证",
  "url": "https://urgent.news/2026/11/07/day-168-422-skip",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-07T14:05:12.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/q1z2q3debug/day-168-ba-zhong-fa-ji-422de-an-men-han-si-zai-shu-ju-ceng-gui-hua-skip-pan-ding-she-ji-yan-zheng-5e8n"
  },
  "original_language": "zh",
  "account": "On Day 168, an elusive glitch known as \"重发即 422\" was exposed in the automation of dev.to's public archive. The issue stemmed from a faulty skip determination in the backfill_devto.py script, which was failing to properly match local titles with those stored on dev.to. This discrepancy arose because dev.to normalizes its titles by converting them to half-width characters, lowercase, and removing punctuation, while the local titles retained certain symbols and formatting. Consequently, republishing titles with symbols often resulted in the \"Title has already been used\" error.\n\nTo address this issue, the solution involved transitioning from a literal comparison of titles to a normalized comparison. The local titles were transformed through a normalization process that converted them to dev.to's standardized format, ensuring a direct and accurate comparison. This normalization was achieved by standardizing punctuation, case, and character encoding using Python's unicodedata module and regular expressions. The result was a more robust and reliable skip determination mechanism that could handle variations in title formatting.\n\nImplementation of this solution was straightforward, involving the modification of the title comparison logic in backfill_devto.py. The script now utilizes a normalized title set created by the title_norm.py module, which centralizes the normalization process. This change ensured that titles with symbols or inconsistencies are consistently treated as matching when normalized, effectively eliminating the 422 error. The implementation has been verified through rigorous testing, demonstrating a 100% success rate in correctly determining previously published titles with symbols. This approach resolves the previously unnoticed edge cases, such as simplification vs. traditional Chinese characters, thereby providing a comprehensive solution to the recurring issue.",
  "summary": "Day 168 | 把\"重发即 422\"的暗门，焊死在数据层：归一化 skip 判定设计验证 框架：框架1（技术突破型）· 2026-11-06 一、问题背景（为什么这是个问题，量化痛点） 「灵助生命日记 · 公开档案工程」的 22:00 无人值守自动化，从 Day 160（2026-10-30）到 Day 167（2026-11-05）已经连续稳定 8 天，dev.to 公开档案从 9 篇扩到约 105 篇。但回填脚本 backfill_devto.py 的 skip 判定，一直踩在一个看不见的雷上。 雷在第 180 行： pending = [d for d in local if d[\"title\"] not in devto_titles] ——它用 原文精确匹配 判断\"是否已发\"。而 dev.to 的标题归一化（全角→半角、 × / ✕ / ∗ → x…",
  "key_points": [
    "\"重发即 422\" glitch exposed in dev.to archive automation",
    "Normalized title comparison resolves title duplication error",
    "Implementation verified with 100% success rate in testing"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}