diff --git a/cmd/arcrun-app/changelog-section.sh b/cmd/arcrun-app/changelog-section.sh index 89f82d6..da75bd4 100755 --- a/cmd/arcrun-app/changelog-section.sh +++ b/cmd/arcrun-app/changelog-section.sh @@ -55,8 +55,20 @@ fi [ "$CHECK_ONLY" = "--check" ] && { echo " ✅ changelog 有 ${VERSION} 的段落"; exit 0; } -# 給 manifest.notes 用:去掉 markdown 記號、壓成單段純文字。 -printf '%s' "$SECTION" \ - | sed -e 's/\*\*//g' -e 's/^[[:space:]]*[-*][[:space:]]*//' -e 's/`//g' \ - | tr '\n' ' ' \ - | sed -e 's/ */ /g' -e 's/^ //' -e 's/ $//' +# 給 manifest.daemon.notes 用的投影——**只有一個投影器**:installer/scripts/daemon-notes.mjs +# +# 🔴 2026-08-08 修(leo 真機看到 v0.18.24 的更新畫面): +# leo 原話「**不要這麼長的散文,簡短講改了什麼,細節去 docs 讀。**」 +# +# 本檔原本這一段是 `tr '\n' ' '`——**把整段散文壓成一大坨**。而畫面那個欄位是純文字 +# (`main.js:215` 是 `esc(u.notes)`,且 `.d` 沒有 white-space:pre) +# ⇒ 既不分行、markdown 符號還會原樣露出來 ⇒ 使用者看到一整面文字牆。 +# +# 更根本的問題:**grep 全 repo,沒有任何東西呼叫這段投影**(build-*.sh 只用 --check)。 +# ⇒ 出貨當下都是有人臨時寫一段 python 折行塞進 manifest,每次重寫一次、沒人檢查結果。 +# ⇒ 這正是「機制存在但沒被接上=等於不存在」的又一例。 +# +# 現在改成委派給那唯一的投影器(只取每條的粗體標題、串成一行、超長就截並導去 docs), +# 而 `installer/scripts/ship.mjs` 的 notes 步驟會在每次出貨時自動套用它。 +# ⇒ 兩邊同一份規則,不會漂移。上面的 --check 閘原樣保留(build-*.sh 仍靠它)。 +exec node "$REPO_ROOT/installer/scripts/daemon-notes.mjs" "$VERSION"