3x-ui/internal/web
PathGao ad5f2a28cb
fix(xray): synchronize lifecycle state (#6138)
* fix(xray): synchronize lifecycle snapshots

Protect process replacement and result caching with a lifecycle state object, so read paths keep one process snapshot while restarts swap state safely. Bound version probing to prevent a stalled binary from holding the restart lock.

* test(xray): cover concurrent lifecycle reads

Exercise status, result, and traffic reads while the managed process is replaced, so the race detector guards the lifecycle snapshot boundary.

* fix(xray): guard process config snapshots

Synchronize hot-applied config snapshots, keep Telegram reads on one lifecycle snapshot, and strengthen lifecycle timeout and concurrency regression coverage.

---------

Co-authored-by: PathGao <gaoyanbo@gaoyanbodeMacBook-Air.local>
2026-07-29 21:00:29 +02:00
..
controller feat(ui): tag settings that sit at their shipped default value (#6128) 2026-07-29 08:03:21 +02:00
entity feat(sub): allow identity tokens on every subscription link (#5935) 2026-07-28 22:12:52 +02:00
global refactor: focused service files, leaf subpackages, and an internal/ layout (#5167) 2026-06-10 15:19:22 +02:00
job inbounds: allow custom monthly traffic reset days (#6071) 2026-07-28 23:27:09 +02:00
locale style: adopt golangci-lint v2 and resolve all findings 2026-06-27 15:42:22 +02:00
middleware fix(web): tighten database restore body-cap exemption (#5609) 2026-06-28 15:00:55 +02:00
network style: adopt golangci-lint v2 and resolve all findings 2026-06-27 15:42:22 +02:00
runtime inbounds: allow custom monthly traffic reset days (#6071) 2026-07-28 23:27:09 +02:00
service fix(xray): synchronize lifecycle state (#6138) 2026-07-29 21:00:29 +02:00
session refactor: focused service files, leaf subpackages, and an internal/ layout (#5167) 2026-06-10 15:19:22 +02:00
translation feat(ui): redesign the overview page as a trend-first command deck 2026-07-29 20:17:37 +02:00
websocket fix(nodes): keep the credential-presence flag on the node heartbeat push 2026-07-28 17:38:46 +02:00
cadence_test.go refactor(web): centralize background job cadences (#5269) 2026-06-14 22:50:24 +02:00
routes_contract_test.go fix(api): authenticate GET /panel/api/openapi.json + pin the route registry to the router (#6133) 2026-07-29 08:00:05 +02:00
web.go fix(api): authenticate GET /panel/api/openapi.json + pin the route registry to the router (#6133) 2026-07-29 08:00:05 +02:00
web_mtls.go feat(node): node hardening — mTLS, hashed+zstd reconcile transport, per-node net metrics (#5382) 2026-06-16 12:19:33 +02:00
web_mtls_test.go feat(node): node hardening — mTLS, hashed+zstd reconcile transport, per-node net metrics (#5382) 2026-06-16 12:19:33 +02:00