Skip to content

v0.9.5

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Oct 09:35

[v0.9.5] - 2026-10-26

馃殌 Features & Enhancements

  • Telegram Bot Multi-Protocol & Core Management Overhaul:

    • Full Protocol Credential Support: Upgraded Telegram Bot client addition in internal/web/service/tgbot.go and inbound.go to support automated Curve25519 keypair generation and subnet IP allocation for AmneziaWG (AWG 3.1) and WireGuard, FakeTLS secret generation for MTProto (mtg), cipher-compliant Shadowsocks 2022 key generation, Trojan passwords, Hysteria auth credentials (Auth), and Masque passwords (MasquePass).
    • Direct .conf Profile Delivery: Automatically decodes AmneziaWG vpn:// configuration share links and delivers native .conf profile files directly to Telegram users as document attachments.
    • Interactive Core Control & Rollback: Added /rollback administrative command with status checks and confirmation handling, added quick-action buttons for Restart Xray and Rollback Config in the Telegram bot admin keyboard, and relaxed /restart to support both /restart and /restart force.
    • Multi-Protocol Telegram ID Linking: Upgraded SetClientTelegramUserID to resolve clientId across all protocols (Trojan, Shadowsocks, Hysteria, WireGuard, AmneziaWG, MTProto, Masque) and synchronize tgId between inbounds and the node_clients database.
    • Resilient Traffic Queries: Enhanced GetClientTrafficTgBot to parse both JSON spacing variants ("tgId": %d and "tgId":%d) as well as node_clients database records.
    • Nil-Safety & Process Stability: Added safeguards against nil-pointer dereferences in server usage reporting, online client statistics, and client status lookups when Xray core is restarting, uninitialized, or stopped.
  • Comprehensive Internationalization & Translation Synchronization:

    • Full 13-Locale Key Parity: Completed all missing translation keys across all 13 supported languages (en_US, fa_IR, ar_EG, es_ES, id_ID, ja_JP, pt_BR, ru_RU, tr_TR, uk_UA, vi_VN, zh_CN, zh_TW), achieving 100% key parity with 1,156 keys per language.
    • MTProto Proxy Localization: Translated [pages.xray.mtproto] parameters (secret, adTag, routeThroughXray, routeXrayPort, preferIp, proxyProtocolListener, throttleMaxConnections, pendingHandshakesMaxPerIP) across all 13 locales.
    • AmneziaWG Obfuscation Localization: Added complete AWG 3.1 obfuscation parameter translations for Traditional Chinese (zh_TW).
    • Telegram Bot Control Localization: Added localized labels for quick-action buttons (restartXray, rollbackConfig, confirmRestart, confirmRollback) and updated administrative command documentation.
    • Client Protocol Badges: Added forMtprotoProtocol and forAmneziawgProtocol across all language translation files.
  • XTLS/Xray-Examples Parity & Core Configuration Fixes:

    • SplitHTTP (splithttp) Alias Parity: Full bidirectional compatibility for splithttp and xhttp transport identifiers and settings across JSON import/export, subscription generators (subService.go), and JSON subscription services (subJsonService.go).
    • xHTTP Transport Advanced Features: Added UI and model support for noGRPCHeader (disabling gRPC headers in stream-up and stream-one modes) and scMinPostsIntervalMs (configurable minimum interval for POST uploads in packet-up mode), as well as downloadSettings parsing in outbound configurations.
    • Tunnel Protocol & Modern Xray Migration: Standardized protocol identifier as native "tunnel" across configuration generation, models, and UI (migrating legacy dokodemo-door), and prevented emission of empty address: "" during transparent proxy / followRedirect mode.
    • REALITY target & dest Compatibility: Dual-key synchronization for target (Xray >= 24.10.31) and dest (backwards compatibility), and preserved user-configured custom spiderX paths across subscription and client link generators.
    • TLS OCSP Stapling: Added configurable ocspStapling duration support for certificate file configurations in TlsStreamSettings and UI.
    • Sniffing & ALPN Options: Added fakedns+others to destOverride sniffing options and fromMitm to ALPN options for domain fronting and MITM forwarding configurations.
    • Reverse Proxy Section: Added reverse section (bridges & portals) to top-level xray.Config model and equality comparator.
    • Shadowsocks Single-User Omission Fix: Omitted empty clients: [] array on single-user Shadowsocks inbounds to prevent Xray-core from discarding the primary password.
    • Outbound TLS Peer Verification: Added array parsing support for verifyPeerCertInNames matching Xray v25.2.21+ MITM and domain fronting configurations.
  • Core Lifecycle Synchronization & API Port Readiness:

    • Eliminated Transient Connection Refusals: Resolved transport: Error while dialing: dial tcp 127.0.0.1:62789: connect: connection refused debug errors during Xray restarts by verifying that the gRPC API port is actively accepting TCP connections before Process.Start() returns.
    • Graceful Termination Wait in Process.Stop(): Added process exit tracking via doneChan and isStopping flag, ensuring the terminated Xray core fully exits and releases all network ports/sockets before a new instance is spawned.
    • Atomic Restart Lifecycle Tracking: Added isRestarting state tracking in XrayService to prevent concurrent XrayTrafficJob executions from dialing unready endpoints and guard CheckXrayRunningJob from diagnosing normal restarts as process crashes.
    • Duplicate Log Suppression: Removed redundant Failed to fetch Xray traffic debug logging in GetXrayTraffic to eliminate identical duplicate error logs alongside xrayAPI.GetTraffic.
  • Auto-Delete Depleted Clients Setting Enforcement:

    • Immediate Exit on Disabled State: Updated AutoDeleteDepletedClientsJob to check autoDeleteDay <= 0 at the very entry point before emitting debug start/finish logs or executing database queries, ensuring the job does not run or log when disabled (autoDeleteDay = 0) in the panel.
  • UI, Typo & Inbound API Robustness Fixes:

    • Login Secret Reactivity & Clean Page Load: Initialized loginSecret in the User class constructor (login.html) to guarantee Vue reactivity, and removed button loading state toggling during background /getSecretStatus requests to eliminate button spinner flickering on page load.
    • Comprehensive Xray Process Nil-Guards: Added nil-safe checks to *xray.Process methods (IsRunning(), GetAPIPort(), GetConfig(), GetOnlineClients(), GetUptime()) and guarded all live Xray API invocations across InboundService (AddInbound, UpdateInbound, AddInboundClient, DelInboundClient, UpdateInboundClient, DelInboundClientByEmail, autoRenewClients, disableInvalidInbounds) with p != nil && p.IsRunning() to prevent nil pointer dereferences and connection errors when Xray core is not running.
    • Xray API Timeout Contexts & Typo Fix: Added 5-second timeout contexts to AddInbound, DelInbound, and AddUser gRPC calls in XrayAPI, and fixed typo Detur -> Detour in debug logs.
    • Translation & Constant Typo Fixes: Corrected Turkish strings erroneously placed in Brazilian Portuguese (translate.pt_BR.toml) for autoDeleteDay and autoDeleteDayDesc, added correctly spelled UTLS_RANDOMIZEDNOALPN to UTLS_FINGERPRINT in inbound.js and outbound.js, and removed obsolete commented-out code blocks in setting.html and login.html.