{
  "sha": "4c1f36e611f33434da1ca2561375e9b4ab37606d",
  "message": "顯示新聞實際使用模型 (#55)\n\n恢復 B-MBU 新聞的 Laguna S 2.1 生成模型紀錄，並讓所有現行設定模型均能顯示公開署名。",
  "author": {
    "login": "nnneeeooo-nnneeeooo",
    "name": "",
    "email": ""
  },
  "committer": {
    "login": "web-flow",
    "name": "",
    "email": ""
  },
  "created_at": "2026-08-09T20:31:12Z",
  "files": [
    {
      "filename": "data/articles/2026-08-09T14.json",
      "previous_filename": "",
      "status": "modified",
      "additions": 1,
      "deletions": 1,
      "changes": 2
    },
    {
      "filename": "pipeline/build.py",
      "previous_filename": "",
      "status": "modified",
      "additions": 3,
      "deletions": 0,
      "changes": 3
    },
    {
      "filename": "tests/test_radar.py",
      "previous_filename": "",
      "status": "modified",
      "additions": 4,
      "deletions": 0,
      "changes": 4
    }
  ],
  "diff": "@@ -59,7 +59,7 @@\\n       ],\\n       \"articleFormat\": \"full\",\\n       \"sourcePublishedUtc\": \"2026-08-09T13:08Z\",\\n-      \"writer\": \"Codex editorial correction\",\\n+      \"writer\": \"openrouter:poolside/laguna-s-2.1:free\",\\n       \"facts\": [\\n         {\\n           \"factId\": \"f1\",\\n@@ -814,6 +814,9 @@ def writer_model(writer, writer_models=None):\\n     for needle, model in _WRITER_MODELS:\\n         if needle in model_id:\\n             return model\\n+    configured_name = MODEL_DISPLAY_NAMES.get(writer)\\n+    if configured_name:\\n+        return configured_name.removeprefix(\"OpenRouter · \")\\n     return None\\n \\n \\n@@ -25,6 +25,10 @@ def main() -> None:\\n     assert build.writer_model(\\n         \"openai:gpt-5.6-sol\"\\n     ) == \"GPT-5.6 Sol\"\\n+    assert build.writer_model(\\n+        \"openrouter:poolside/laguna-s-2.1:free\"\\n+    ) == \"Poolside Laguna S 2.1\"\\n+    assert all(build.writer_model(model) for model in build.MODEL_ORDER)\\n     assert build.writer_model(\"unknown:model\") is None\\n \\n     assert build.main() == 0"
}
