feat(t72): daemon 加版本編號(leo 07-27:沒版本號=只能靠 shasum 對帳)
病根:在此之前無法從畫面看出裝的是哪一版。07-27 花大半天對帳 「leo 手上/鏡像上/剛編的」是否同一顆,只能 shasum 比對 binary; 使用者更做不到這件事,回報問題時我們也不知道他跑的是哪版(t63 三層落差)。 做法: - main.go 加 version/buildTime 變數,build 時 -ldflags -X 注入,未注入顯示 dev - 托盤選單「結束」正上方加停用態版本列(回報問題時眼睛已在那一區) - build-mac.sh / build-windows.sh 同一套:VERSION 環境變數 > git describe > dev 實測(兩平台各實跑一次 VERSION=v0.9.0): Mac 托盤 21.1MB/zip 12.43MB/v0.9.0 命中 3/版本列 1/結束 1/連上知識庫 1 Win zip 13.27MB/PE32+ GUI/v0.9.0 命中 3/版本列 1/結束 1/連上知識庫 1 兩包皆 < jsDelivr 20MB 上限 未驗:選單版本列的實際顯示(Mac 需 leo 點選單、Windows 需真機)。
This commit is contained in:
@@ -38,6 +38,27 @@ import (
|
||||
"fyne.io/fyne/v2/widget"
|
||||
)
|
||||
|
||||
// 版本資訊(leo 2026-07-27:「daemon 要加上版本編號」)。
|
||||
//
|
||||
// 為什麼需要:在此之前**沒有任何辦法從畫面看出裝的是哪一版**——07-27 花了大半天在對帳
|
||||
// 「leo 手上/鏡像上/剛編的」是不是同一顆,只能靠 shasum 比對 binary。使用者更不可能做這件事,
|
||||
// 回報問題時我們也無法確認他跑的是哪版(修好的東西他可能根本沒拿到,見 t63 三層落差)。
|
||||
//
|
||||
// 怎麼帶值:build 時用 -ldflags "-X main.version=… -X main.buildTime=…" 注入(見 build-mac.sh/
|
||||
// build-windows.sh)。沒注入時顯示 dev,代表「本機隨手編的、非發佈品」——這本身就是有用的資訊。
|
||||
var (
|
||||
version = "dev"
|
||||
buildTime = ""
|
||||
)
|
||||
|
||||
// versionLabel 給托盤選單顯示用:正式版顯示「v1.2.3」,開發版額外標出建置時間好辨識。
|
||||
func versionLabel() string {
|
||||
if version == "dev" && buildTime != "" {
|
||||
return "dev (" + buildTime + ")"
|
||||
}
|
||||
return version
|
||||
}
|
||||
|
||||
// directConfig 是 collector direct 的設定(與 collector/direct.go 的 DirectConfig 同結構;
|
||||
// 這裡只需讀寫 watch_folder,其餘由安裝器帶入)。
|
||||
type directConfig struct {
|
||||
@@ -540,6 +561,8 @@ func main() {
|
||||
// 有 cypher_url 時再加一行縮短的 host(fyne MenuItem 無 tooltip,取捨見 shortCypherHost 注解)。
|
||||
connItem := fyne.NewMenuItem(connectionStatusLabel(cfg.InstanceName, cfg.Email), nil)
|
||||
connItem.Disabled = true
|
||||
versionItem := fyne.NewMenuItem("版本 "+versionLabel(), nil)
|
||||
versionItem.Disabled = true
|
||||
items := []*fyne.MenuItem{connItem}
|
||||
if host := shortCypherHost(cfg.CypherURL); host != "" {
|
||||
hostItem := fyne.NewMenuItem("→ "+host, nil)
|
||||
@@ -573,6 +596,9 @@ func main() {
|
||||
fyne.NewMenuItem("🔗 連上知識庫…(換帳號/重新連線)", func() { showConnectWizard() }), // t54
|
||||
fyne.NewMenuItemSeparator(),
|
||||
pauseItem,
|
||||
// 版本列(leo 2026-07-27:「daemon 要加上版本編號」):停用態=純顯示不可點。
|
||||
// 放在「結束」正上方——使用者要回報問題時,眼睛已經在選單底部這一區。
|
||||
versionItem,
|
||||
// t55(leo 2026-07-26 實撞:「沒有 exit 的選項,我無法關閉它」):
|
||||
// 沒有出口的 app 是設計缺陷——用戶只剩「強制結束」可用,而托盤 app 連 Dock 都沒有
|
||||
// (LSUIElement),右鍵結束那條路也不存在。這裡給一條明確的出路:
|
||||
|
||||
Reference in New Issue
Block a user