From 739c18ce486992e8329792b3d818ba00cee9dae0 Mon Sep 17 00:00:00 2001 From: Muse Date: Sat, 24 Oct 2026 20:53:51 +0800 Subject: [PATCH] release: panel V2.7.0 / agent line A2.6.0 Agent code changed in the rename batch (lui-agent binary, LUI_ env prefix, /etc/l-ui paths and services), so the agent line moves 2.5.0 -> 2.6.0 and its default-expectation tests move with it; panel version is injected at build time (V2.7.0). install-agent.sh RELEASE_BASE and install-master.sh LUI_URL move V2.6.0 -> V2.7.0. Repo name settled as rogue/l-ui (user decision 2026-10-24); the rename-batch placeholder warnings in docs/release.md, selfupdate.go and install-master.sh are closed by the Gitea rename that precedes publishing this release. --- docs/release.md | 14 +++++--------- install-agent.sh | 2 +- install-master.sh | 6 +++--- internal/config/config.go | 14 +++++++------- internal/config/config_test.go | 14 +++++++------- internal/selfupdate/selfupdate.go | 11 ++++------- 6 files changed, 27 insertions(+), 34 deletions(-) diff --git a/docs/release.md b/docs/release.md index 1343fe2..a6fc59d 100644 --- a/docs/release.md +++ b/docs/release.md @@ -1,15 +1,11 @@ # Release process (L-UI fork) -> PLACEHOLDER REPO — rename batch: `rogue/l-ui` in this document, -> in `internal/selfupdate/selfupdate.go`, in `panel.go`, in -> `scripts/release-build.sh` and in the install scripts is a -> placeholder, NOT yet the real Gitea repo name. The Gitea -> repository has not been renamed in this batch. Do not publish -> any release from this branch until the user confirms the exact -> repo spelling and every placeholder is updated to it. -> See RENAMING.md (pending items). +> Repo name settled 2026-10-24: `rogue/l-ui`. The Gitea repository +> `rogue/3x-ui-agent` is renamed to `rogue/l-ui` before this +> release is published; the placeholder warnings from the rename +> batch are closed by that rename. -Releases are published on the self-hosted Gitea (`rogue/l-ui` — placeholder, see above). +Releases are published on the self-hosted Gitea (`rogue/l-ui`). Build with `scripts/release-build.sh`; this document is the rules that script encodes. Read it before cutting a release — several rules exist because violating them already caused a production incident once. diff --git a/install-agent.sh b/install-agent.sh index 6dc65e4..b8cd844 100755 --- a/install-agent.sh +++ b/install-agent.sh @@ -86,7 +86,7 @@ esac # (独立入口 cmd/lui-agent,不再是主控双模式二进制)。该资产自拆分版 # 发行起才有——RELEASE_BASE 的升版由发版步完成,指向拆分版即可用; # 若需装拆分前的旧版节点,显式 LUI_URL 指回 l-ui-linux- 即可。 -RELEASE_BASE="https://git.881218.xyz/rogue/l-ui/releases/download/V2.6.0" +RELEASE_BASE="https://git.881218.xyz/rogue/l-ui/releases/download/V2.7.0" LUI_URL="${LUI_URL:-${RELEASE_BASE}/lui-agent-linux-${BIN_ARCH}}" ROOT="${LUI_ROOT:-}" diff --git a/install-master.sh b/install-master.sh index 7440a1c..ef65537 100755 --- a/install-master.sh +++ b/install-master.sh @@ -20,9 +20,9 @@ esac # 二进制下载地址(本仓 Gitea Releases) # 改名对齐:旧 tag v3.7.0-agent.1 从未携带改名后的 l-ui-linux 资产,沿用它 -# 会指向不存在的发行;此处改指当前已发版的 V2.6.0(面板版本本身未动, -# 不是升版)。仓库名 rogue/l-ui 为改名占位,Gitea 真改名前须最后确认。 -LUI_URL="${LUI_URL:-https://git.881218.xyz/rogue/l-ui/releases/download/V2.6.0/l-ui-linux-${BIN_ARCH}}" +# 会指向不存在的发行;此处改指本批发版 V2.7.0。仓库名定为 rogue/l-ui, +# Gitea 改名在发版前完成,占位警告随之销账。 +LUI_URL="${LUI_URL:-https://git.881218.xyz/rogue/l-ui/releases/download/V2.7.0/l-ui-linux-${BIN_ARCH}}" XRAY_VER="26.6.27" info "创建目录..." diff --git a/internal/config/config.go b/internal/config/config.go index 2e38444..1caec1e 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -156,14 +156,14 @@ func GetMasterDisplayVersion() string { // defaultAgentDisplayVersion is the agent line's version when a build // does not inject one. It names the last release in which agent code -// actually changed (A2.5.0 — the V2.6.0 batch touched agent code: -// orphan-core handle recovery and the v4 beacon; before that the line -// stood at A2.4.0 while the panel line advanced alone). Bump it ONLY -// together with a real agent-code change, in the same commit; panel -// releases must never move it. -const defaultAgentDisplayVersion = "2.5.0" +// actually changed (A2.6.0 — the V2.7.0 rename batch touched agent code: +// lui-agent binary, LUI_ env prefix, /etc/l-ui paths and services; +// before that the line stood at A2.5.0 while the panel line advanced +// alone). Bump it ONLY together with a real agent-code change, in the +// same commit; panel releases must never move it. +const defaultAgentDisplayVersion = "2.6.0" -// GetAgentDisplayVersion is the agent's display version ("A2.5.0"), +// GetAgentDisplayVersion is the agent's display version ("A2.6.0"), // reported in agent telemetry and shown on agent node rows. It reads // ONLY the agent line's own injected version (falling back to the // agent-line default): changing the panel's displayVersion injection diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 36563aa..0dfcbf1 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -68,9 +68,9 @@ func TestDisplayVersionDefaultsAndOverride(t *testing.T) { } // The two lines have independent defaults since the decoupling: // the panel default (2.0.0) and the agent line's own version - // (2.5.0, its last real change) deliberately differ. - if got := GetAgentDisplayVersion(); got != "A2.5.0" { - t.Fatalf("default agent display version = %q, want A2.5.0", got) + // (2.6.0, its last real change) deliberately differ. + if got := GetAgentDisplayVersion(); got != "A2.6.0" { + t.Fatalf("default agent display version = %q, want A2.6.0", got) } 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) } // Panel injection must NOT move the agent line (decoupling lock). - if got := GetAgentDisplayVersion(); got != "A2.5.0" { - t.Fatalf("agent display version after panel injection = %q, want A2.5.0 (unchanged)", got) + if got := GetAgentDisplayVersion(); got != "A2.6.0" { + t.Fatalf("agent display version after panel injection = %q, want A2.6.0 (unchanged)", got) } // 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" { t.Fatalf("V-injected master display version = %q, want V1.0.2", got) } - if got := GetAgentDisplayVersion(); got != "A2.5.0" { - t.Fatalf("agent display version after V-form panel injection = %q, want A2.5.0 (unchanged)", got) + if got := GetAgentDisplayVersion(); got != "A2.6.0" { + t.Fatalf("agent display version after V-form panel injection = %q, want A2.6.0 (unchanged)", got) } } diff --git a/internal/selfupdate/selfupdate.go b/internal/selfupdate/selfupdate.go index 1587b72..a57b0f3 100644 --- a/internal/selfupdate/selfupdate.go +++ b/internal/selfupdate/selfupdate.go @@ -21,13 +21,10 @@ import ( "github.com/mhsanaei/3x-ui/v3/internal/config" ) -// PLACEHOLDER REPO — rename batch, NOT yet the real Gitea repo name: -// "rogue/l-ui" below is a placeholder chosen for the rename diff. -// The Gitea repository has NOT been renamed in this batch, and no -// release may be published from this code until the user confirms -// the exact repo spelling and these two constants (plus the same -// placeholder in panel.go, scripts/release-build.sh, the install -// scripts and docs/release.md) are updated to it. See RENAMING.md. +// Repo name settled 2026-10-24: rogue/l-ui. The Gitea repository +// rogue/3x-ui-agent is renamed to rogue/l-ui before the V2.7.0 +// release is published; these constants already point at the +// settled name. See RENAMING.md. // // DefaultBaseURL is the release download base of the fork's own Gitea. // A release tag directory hangs directly below it, holding the panel