feat(panel): surface dev-build version in UI, bot, and CLI

A dev build now shows its `dev+<commit>` identity instead of a misleading stable-looking version in the sidebar badge, dashboard card, update modal, Telegram status report, startup log, and `x-ui -v`. Adds a shared formatPanelVersion helper (single v prefix; dev labels shown verbatim) and fixes the mobile-tag double-v.

Renames the version getters for clarity: config.GetVersion to GetBaseVersion (raw embedded version), config.GetReportedVersion to GetPanelVersion (advertised/displayed), and the xray process GetVersion to GetXrayVersion.
This commit is contained in:
MHSanaei
2026-06-25 02:36:41 +02:00
parent 2adb59bd64
commit e4b881e58a
14 changed files with 75 additions and 36 deletions
+1 -1
View File
@@ -112,7 +112,7 @@ func serveDistPage(c *gin.Context, name string) {
}
script := `<script` + nonceAttr + `>window.X_UI_BASE_PATH="` + escapedBase + `"`
if name != "login.html" {
escapedVer := jsEscape.Replace(config.GetVersion())
escapedVer := jsEscape.Replace(config.GetPanelVersion())
script += `;window.X_UI_CUR_VER="` + escapedVer + `"`
script += `;window.X_UI_DB_TYPE="` + config.GetDBKind() + `"`
}
+2 -2
View File
@@ -80,7 +80,7 @@ func (s *PanelService) GetUpdateInfo() (*PanelUpdateInfo, error) {
if err != nil {
return nil, err
}
current := config.GetVersion()
current := config.GetBaseVersion()
return &PanelUpdateInfo{
Channel: "stable",
CurrentVersion: current,
@@ -114,7 +114,7 @@ func getDevUpdateInfo() (*PanelUpdateInfo, error) {
currentCommit := config.GetBuildCommit()
return &PanelUpdateInfo{
Channel: "dev",
CurrentVersion: config.GetVersion(),
CurrentVersion: config.GetPanelVersion(),
CurrentCommit: shortCommit(currentCommit),
LatestCommit: shortCommit(latestCommit),
LatestVersion: "dev+" + shortCommit(latestCommit),
+1 -1
View File
@@ -604,7 +604,7 @@ func (s *ServerService) GetStatus(lastStatus *Status) *Status {
status.Xray.ErrorMsg = s.xrayService.GetXrayResult()
}
status.Xray.Version = s.xrayService.GetXrayVersion()
status.PanelVersion = config.GetReportedVersion()
status.PanelVersion = config.GetPanelVersion()
if guid, err := s.settingService.GetPanelGuid(); err == nil {
status.PanelGuid = guid
}
+1 -1
View File
@@ -108,7 +108,7 @@ func (t *Tgbot) prepareServerUsageInfo() string {
onlines := service.XrayProcess().GetOnlineClients()
info += t.I18nBot("tgbot.messages.hostname", "Hostname=="+hostname)
info += t.I18nBot("tgbot.messages.version", "Version=="+config.GetVersion())
info += t.I18nBot("tgbot.messages.version", "Version=="+config.GetPanelVersion())
info += t.I18nBot("tgbot.messages.xrayVersion", "XrayVersion=="+fmt.Sprint(t.lastStatus.Xray.Version))
// get ip address
+1 -1
View File
@@ -96,7 +96,7 @@ func (s *XrayService) GetXrayVersion() string {
if p == nil {
return "Unknown"
}
return p.GetVersion()
return p.GetXrayVersion()
}
// RemoveIndex removes an element at the specified index from a slice.