release: panel V2.5.0 / agent line A2.4.0 (agent code changed in P3); install-agent RELEASE_BASE -> V2.5.0 (ps1 frozen at V2.4.0)
CI / go-test (push) Waiting to run
CI / postgres-durable-first (push) Waiting to run
CI / codegen (push) Waiting to run
CI / govulncheck (push) Waiting to run
CI / race (push) Waiting to run
CI / fuzz-smoke (push) Waiting to run
CI / golangci (push) Waiting to run
CI / frontend (push) Waiting to run
Docs CI / build (push) Waiting to run
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (amd64) (push) Waiting to run
Release 3X-UI / Publish rolling dev release (push) Blocked by required conditions
CodeQL Advanced / Analyze (go) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Docs Deploy (GitHub Pages) / build (push) Canceled after 0s
Docs Deploy (GitHub Pages) / deploy (push) Canceled after 0s

This commit is contained in:
Muse
2026-10-24 02:16:33 +00:00
parent 6f4a4379d9
commit 6842da3c7e
3 changed files with 14 additions and 13 deletions
+1 -1
View File
@@ -86,7 +86,7 @@ esac
# (独立入口 cmd/xui-agent,不再是主控双模式二进制)。该资产自拆分版 # (独立入口 cmd/xui-agent,不再是主控双模式二进制)。该资产自拆分版
# 发行起才有——RELEASE_BASE 的升版由发版步完成,指向拆分版即可用; # 发行起才有——RELEASE_BASE 的升版由发版步完成,指向拆分版即可用;
# 若需装拆分前的旧版节点,显式 XUI_URL 指回 x-ui-linux-<arch> 即可。 # 若需装拆分前的旧版节点,显式 XUI_URL 指回 x-ui-linux-<arch> 即可。
RELEASE_BASE="https://git.881218.xyz/rogue/3x-ui-agent/releases/download/V2.4.0" RELEASE_BASE="https://git.881218.xyz/rogue/3x-ui-agent/releases/download/V2.5.0"
XUI_URL="${XUI_URL:-${RELEASE_BASE}/x-ui-agent-linux-${BIN_ARCH}}" XUI_URL="${XUI_URL:-${RELEASE_BASE}/x-ui-agent-linux-${BIN_ARCH}}"
ROOT="${XUI_ROOT:-}" ROOT="${XUI_ROOT:-}"
+5 -4
View File
@@ -156,13 +156,14 @@ func GetMasterDisplayVersion() string {
// defaultAgentDisplayVersion is the agent line's version when a build // defaultAgentDisplayVersion is the agent line's version when a build
// does not inject one. It names the last release in which agent code // does not inject one. It names the last release in which agent code
// actually changed (A2.3.0 — agent code has been untouched since, even // actually changed (A2.4.0 — the P3 memory-tuning cycle touched agent
// though the panel line advanced to V2.4.0). Bump it ONLY together // code, shipped with panel V2.5.0; before that the line stood at
// A2.3.0 while the panel line advanced alone). Bump it ONLY together
// with a real agent-code change, in the same commit; panel releases // with a real agent-code change, in the same commit; panel releases
// must never move it. // must never move it.
const defaultAgentDisplayVersion = "2.3.0" const defaultAgentDisplayVersion = "2.4.0"
// GetAgentDisplayVersion is the agent's display version ("A2.3.0"), // GetAgentDisplayVersion is the agent's display version ("A2.4.0"),
// reported in agent telemetry and shown on agent node rows. It reads // reported in agent telemetry and shown on agent node rows. It reads
// ONLY the agent line's own injected version (falling back to the // ONLY the agent line's own injected version (falling back to the
// agent-line default): changing the panel's displayVersion injection // agent-line default): changing the panel's displayVersion injection
+8 -8
View File
@@ -67,10 +67,10 @@ func TestDisplayVersionDefaultsAndOverride(t *testing.T) {
t.Fatalf("default master display version = %q, want V2.0.0", got) t.Fatalf("default master display version = %q, want V2.0.0", got)
} }
// The two lines have independent defaults since the decoupling: // The two lines have independent defaults since the decoupling:
// the panel default (2.0.0) and the agent line's frozen version // the panel default (2.0.0) and the agent line's own version
// (2.3.0, the last real agent change) deliberately differ. // (2.4.0, its last real change) deliberately differ.
if got := GetAgentDisplayVersion(); got != "A2.3.0" { if got := GetAgentDisplayVersion(); got != "A2.4.0" {
t.Fatalf("default agent display version = %q, want A2.3.0", got) t.Fatalf("default agent display version = %q, want A2.4.0", got)
} }
displayVersion = "1.0.1" displayVersion = "1.0.1"
@@ -78,8 +78,8 @@ func TestDisplayVersionDefaultsAndOverride(t *testing.T) {
t.Fatalf("injected master display version = %q, want V1.0.1", got) t.Fatalf("injected master display version = %q, want V1.0.1", got)
} }
// Panel injection must NOT move the agent line (decoupling lock). // Panel injection must NOT move the agent line (decoupling lock).
if got := GetAgentDisplayVersion(); got != "A2.3.0" { if got := GetAgentDisplayVersion(); got != "A2.4.0" {
t.Fatalf("agent display version after panel injection = %q, want A2.3.0 (unchanged)", got) t.Fatalf("agent display version after panel injection = %q, want A2.4.0 (unchanged)", got)
} }
// A release build may inject the number in the master's V-form: // A release build may inject the number in the master's V-form:
@@ -88,8 +88,8 @@ func TestDisplayVersionDefaultsAndOverride(t *testing.T) {
if got := GetMasterDisplayVersion(); got != "V1.0.2" { if got := GetMasterDisplayVersion(); got != "V1.0.2" {
t.Fatalf("V-injected master display version = %q, want V1.0.2", got) t.Fatalf("V-injected master display version = %q, want V1.0.2", got)
} }
if got := GetAgentDisplayVersion(); got != "A2.3.0" { if got := GetAgentDisplayVersion(); got != "A2.4.0" {
t.Fatalf("agent display version after V-form panel injection = %q, want A2.3.0 (unchanged)", got) t.Fatalf("agent display version after V-form panel injection = %q, want A2.4.0 (unchanged)", got)
} }
} }