{
  "sha": "8452d4415b1af6d16d8ffc8ad40e7e4e4244d8e6",
  "message": "tidy homepage flash rail layout",
  "author": {
    "login": "nnneeeooo-nnneeeooo",
    "name": "",
    "email": ""
  },
  "committer": {
    "login": "nnneeeooo-nnneeeooo",
    "name": "",
    "email": ""
  },
  "created_at": "2026-09-18T05:57:17Z",
  "files": [
    {
      "filename": "static/site.css",
      "previous_filename": "",
      "status": "modified",
      "additions": 13,
      "deletions": 3,
      "changes": 16
    },
    {
      "filename": "templates/home.html",
      "previous_filename": "",
      "status": "modified",
      "additions": 8,
      "deletions": 4,
      "changes": 12
    },
    {
      "filename": "tests/test_mobile_layout.py",
      "previous_filename": "",
      "status": "modified",
      "additions": 5,
      "deletions": 0,
      "changes": 5
    }
  ],
  "diff": "@@ -210,16 +210,26 @@ a.seg-btn.active:hover { color: var(--color-bg); }\\n .rail-right { border-left: 2px solid var(--color-divider); padding: 20px; }\\n \\n .flash-row {\\n-  padding: 9px 0; border-bottom: 1px solid var(--color-divider);\\n-  display: flex; gap: 10px; align-items: baseline;\\n+  padding: 10px 0; border-bottom: 1px solid var(--color-divider);\\n+  display: grid; grid-template-columns: 56px minmax(0, 1fr);\\n+  column-gap: 9px; align-items: start;\\n   color: inherit; text-decoration: none;\\n }\\n a.flash-row:hover { color: inherit; }\\n .flash-time {\\n-  font-size: 12px; font-weight: 800; flex-shrink: 0;\\n+  padding-top: 2px; font-size: 11.5px; font-weight: 800;\\n+  font-variant-numeric: tabular-nums; white-space: nowrap;\\n   color: color-mix(in srgb, var(--color-text) 55%, transparent);\\n }\\n .flash-time.hot { color: var(--color-accent); }\\n+.flash-copy {\\n+  min-width: 0; max-height: 3.1em; overflow: hidden;\\n+  font-size: 12.5px; line-height: 1.55;\\n+  overflow-wrap: anywhere;\\n+  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;\\n+  line-clamp: 2;\\n+}\\n+a.flash-row:hover .flash-text { color: var(--color-accent); }\\n .flash-pin,\\n .ticker-pin {\\n   display: inline-block;\\n@@ -18,14 +18,18 @@ <h6 style=\"display:flex;justify-content:space-between;align-items:baseline;margi\\n       {% if f.url %}\\n       <a class=\"flash-row\" href=\"{{ f.url }}\"{% if f.external %} target=\"_blank\" rel=\"noopener\"{% endif %}>\\n         <span class=\"flash-time{% if f.hot %} hot{% endif %}\">{{ f.time }}</span>\\n-        {% if f.priority|default(false) %}<span class=\"flash-pin\">{{ t.priorityLabel }}</span>{% endif %}\\n-        <span style=\"font-size:12.5px;line-height:1.6;\">{{ f.text }}</span>\\n+        <span class=\"flash-copy\">\\n+          {% if f.priority|default(false) %}<span class=\"flash-pin\">{{ t.priorityLabel }}</span>{% endif %}\\n+          <span class=\"flash-text\">{{ f.text }}</span>\\n+        </span>\\n       </a>\\n       {% else %}\\n       <div class=\"flash-row\">\\n         <span class=\"flash-time{% if f.hot %} hot{% endif %}\">{{ f.time }}</span>\\n-        {% if f.priority|default(false) %}<span class=\"flash-pin\">{{ t.priorityLabel }}</span>{% endif %}\\n-        <span style=\"font-size:12.5px;line-height:1.6;\">{{ f.text }}</span>\\n+        <span class=\"flash-copy\">\\n+          {% if f.priority|default(false) %}<span class=\"flash-pin\">{{ t.priorityLabel }}</span>{% endif %}\\n+          <span class=\"flash-text\">{{ f.text }}</span>\\n+        </span>\\n       </div>\\n       {% endif %}\\n       {% else %}\\n@@ -38,6 +38,8 @@ def main() -> None:\\n     assert 'class=\"utility-row\"' in home\\n     assert 'class=\"ticker-window\"' in home\\n     assert 'class=\"ticker-pass\"' in home\\n+    assert 'class=\"flash-copy\"' in home\\n+    assert 'class=\"flash-text\"' in home\\n     assert 'class=\"feed-copy\"' in home\\n     assert 'class=\"summary-preview summary-preview--hero\"' in home\\n     assert 'class=\"summary-preview summary-preview--feed\"' in home\\n@@ -96,6 +98,9 @@ def main() -> None:\\n     assert \"grid-template-columns: repeat(3, minmax(0, 1fr))\" in css\\n     assert \".js .site-nav.is-open { display: grid; }\" in css\\n     assert \"grid-template-columns: repeat(2, minmax(0, 1fr))\" in css\\n+    assert \"grid-template-columns: 56px minmax(0, 1fr)\" in css\\n+    assert \".flash-copy\" in css\\n+    assert \"max-height: 3.1em\" in css\\n     assert \".center-col { order: 1;\" in css\\n     assert \".radar-layout { grid-template-columns: minmax(0, 1fr); min-height: 0; }\" in css\\n     assert '\". . summary summary\"' in css"
}
