fix(drift-narrator): 砍 spec.template.spec. 前綴 — 修 Telegram 自動換行醜陋排版
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m1s
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m1s
2026-04-18 下午(台北時區)— ogt + Claude Opus 4.7 統帥實彈三輪視覺回報: 字段名 'spec.template.spec.volumes' 共 24 字元, 加上 emoji+': '+summary 超過 Telegram <pre> 視覺寬度,自動換行 造成 emoji 與 field name 斷開、單獨成行的醜狀。 修復: _shorten_field_path() 砍 3 種常見前綴: - 'spec.template.spec.' → '' - 'spec.template.' → '' (後備) - 'spec.' → '' (後備) 效果對比: 前: '🟡 spec.template.spec.affinity.podAntiAffinity.preferredDuringS: [清單 3 項]' 後: '🟡 affinity.podAntiAffinity.preferredDuringS: [清單 3 項]' Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -577,6 +577,18 @@ class DriftNarratorService:
|
||||
n += 1
|
||||
return n
|
||||
|
||||
def _shorten_field_path(self, field: str) -> str:
|
||||
"""
|
||||
砍掉常見冗長前綴,讓 Telegram 排版不換行
|
||||
spec.template.spec.volumes → volumes
|
||||
spec.template.metadata.labels → metadata.labels
|
||||
spec.internalTrafficPolicy → internalTrafficPolicy
|
||||
"""
|
||||
for prefix in ("spec.template.spec.", "spec.template.", "spec."):
|
||||
if field.startswith(prefix):
|
||||
return field[len(prefix):]
|
||||
return field
|
||||
|
||||
def _render_telegram_body(
|
||||
self,
|
||||
report: "DriftReport",
|
||||
@@ -607,7 +619,8 @@ class DriftNarratorService:
|
||||
else:
|
||||
for it in items:
|
||||
emoji = "🔴" if it.get("level") == "high" else "🟡"
|
||||
lines.append(f"{emoji} {it['field']}: {it['summary']}")
|
||||
short_field = self._shorten_field_path(it['field'])
|
||||
lines.append(f"{emoji} {short_field}: {it['summary']}")
|
||||
|
||||
shown = len(items)
|
||||
if actionable > shown:
|
||||
|
||||
Reference in New Issue
Block a user