2721 Commits

Author SHA1 Message Date
2dust 460a674ebc Add 'Check Only' update action
Introduce a new "Check Only" feature: add CheckOnlyCmd to CheckUpdateViewModel with CheckOnlyTask that queries updates (via UpdateService.CheckHasUpdateOnly) for selected cores and reports results without performing updates. Wire up a new btnCheckOnly in both Desktop and Avalonia views and bind the command. Add localized menuCheckOnly entries to multiple .resx files and update ResUI.Designer. Also shorten the pre-release label to "Check for pre-release" in resource files.
2026-05-17 19:15:57 +08:00
DHR60 e2428f2500 Add tun inbound rule (#9327) 2026-05-17 18:54:12 +08:00
DHR60 bc3cbb4277 Fix (#9325)
* Fix

* Rename tun tag
2026-05-17 18:52:42 +08:00
2dust ac9d0a0193 Add periodic update checks and core support 2026-05-17 17:09:34 +08:00
2dust 2291214b6f up 7.22.1 7.22.1 2026-05-16 19:00:46 +08:00
Miheichev Aleksandr Sergeevich 5b47d8ba05 i18n(ru): translate untranslated PreSharedKey label and Export menu (#9309)
Two strings in ResUI.ru.resx were left with their English (or identifier) values and surfaced as untranslated text on a Russian UI culture. This commit translates both, keeping the existing translation style and the existing technical vocabulary established earlier in this file.

Changes:

1. TbPreSharedKey: 'PreSharedKey' -> 'Общий ключ (PSK)'

   The label is the WireGuard pre-shared-key field. The sibling WireGuard fields are already translated in the same file (TbPublicKey -> 'Открытый ключ', TbPrivateKey -> 'Приватный ключ'), so leaving this one as the raw identifier was inconsistent. 'Общий ключ' matches the wording used in Russian-localized network UIs for this concept (NetworkManager, MikroTik, OpenVPN GUIs); the '(PSK)' suffix preserves the technical abbreviation so users familiar with the WireGuard documentation immediately recognize the field.

2. menuExport2InnerUri: 'Export v2rayN Internal Share Link to Clipboard' -> 'Экспорт внутренней ссылки v2rayN в буфер обмена'

   This context-menu item was added recently and the Russian resource kept the English string verbatim. The translation follows the convention of the sibling export-to-clipboard items (menuExport2ShareUrlBase64 uses 'Экспорт ... в буфер обмена'), and 'внутренней ссылки v2rayN' preserves the 'internal' qualifier because this share-link format is specific to v2rayN's own importer and not interchangeable with the standard VMess/VLESS/Trojan/etc. URI schemes.

Verified:

- Diff scope: only ResUI.ru.resx, only the two <value> elements; the .resx XML schema headers and all other keys are untouched.

- Full audit of ResUI.ru.resx vs ResUI.resx: every other key is present and translated; these were the only two strings still surfacing in English on a Russian UI culture.

- 'dotnet build v2rayN/v2rayN.sln -c Release' passes with 0 errors and 0 warnings.
2026-05-15 15:09:17 +08:00
JieXu b193c39ad7 Remove patch for riscv (#9310)
* Delete .github/workflows/update-riscv-depand.yml

* Update package-rhel-riscv.sh

* Update package-debian-riscv.sh

* Create package-debian-loong.sh

* Update build-linux.yml

* Update build-linux.yml

* Update package-debian-loong.sh

* Update build-linux.yml

* Update Directory.Packages.props
2026-05-15 15:09:04 +08:00
2dust e68842bb78 Add SkiaSharp Linux native assets package
Add SkiaSharp.NativeAssets.Linux (v3.119.1) to Directory.Packages.props and add a PackageReference in v2rayN.Desktop.csproj so the Linux native SkiaSharp binaries are included for the desktop build/runtime.
2026-05-14 20:34:42 +08:00
JieXu 6c06c8a00a Update (#9303)
* Update DOTNET_RISCV_VERSION to 10.0.108

* Update DOTNET_RISCV_VERSION to 10.0.108
2026-05-14 19:27:31 +08:00
Miheichev Aleksandr Sergeevich 58d2641559 chore: remove NoWarn and fix .NET 10 build warnings across platforms (#9301)
* deps: bump ZXing.Net.Bindings.SkiaSharp from 0.16.14 to 0.16.22

Patch update to the latest stable release on the 0.16.x line. No breaking changes, no public API changes - purely internal fixes.

Verified by a full Release build of v2rayN.sln on .NET 10; no new warnings or errors are introduced.

* chore: remove NoWarn and fix .NET 10 build warnings

Removes the repository-level NoWarn suppression from Directory.Build.props and addresses the warnings that surface on top of the .NET 10 migration in #9179, keeping Debug, Release, and cross-platform publishes warning-free without suppressing warnings globally.

Changes:

- Removes <NoWarn>CA1031;CS1591;NU1507;CA1416;IDE0058;IDE0053;IDE0200</NoWarn> from Directory.Build.props.

- Annotates Windows-only APIs with [SupportedOSPlatform] and [SupportedOSPlatformGuard] so CA1416 accepts that the Windows surface is gated behind Utils.IsWindows() / Utils.IsNonWindows().

- Splits Utils.SetUnixFileMode into a cross-platform wrapper and a private [UnsupportedOSPlatform("windows")] implementation so File.SetUnixFileMode never reaches the analyzer on Windows builds.

- Adds a parameterless constructor to MessageBoxDialog so Avalonia's runtime XAML loader (AVLN3001) can instantiate the dialog.

- Moves the WPF high-DPI configuration from app.manifest to <ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode> in v2rayN.csproj, fixing WFO0003.

- Adds global using System.Runtime.Versioning; to ServiceLib and v2rayN.Desktop so the platform attributes are usable project-wide.

* test: make cycle dependency tests locale-independent

Accept the localized Russian cycle dependency diagnostic in CoreConfigContextBuilderTests so the assertions pass when tests run under a Russian UI culture.

* fix: tighten Unix platform handling

Adds Linux and macOS platform guards so the analyzer can narrow calls through Utils.IsLinux() and Utils.IsMacOS().

Marks the Linux/macOS autostart and system proxy helpers with explicit platform attributes.

Updates Utils.GetSystemHosts() to read /etc/hosts on Linux and macOS while keeping the existing Windows hosts and hosts.ics merge behavior.
2026-05-14 19:25:07 +08:00
2dust 780777068d up 7.22.0 7.22.0 2026-05-13 09:34:18 +08:00
2dust 8446b4df8b Bump package versions in Directory.Packages.props 2026-05-13 09:32:05 +08:00
dependabot[bot] 3778d2058e Bump actions/checkout from 5 to 6 (#9288)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:08:58 +08:00
2dust 5c85598cfa Update GlobalHotKeys 2026-05-13 09:07:38 +08:00
2dust 51b384e119 Bug fix
https://github.com/2dust/v2rayN/issues/9277
2026-05-12 09:10:22 +08:00
JieXu d1c9c0b536 Update .NET 10 (#9239)
* Update dotnet to 10

* Update .NET version in build workflow

* Update build-osx.yml

* Update package-zip.yml

* Update package-rhel.sh

* Update print statement from 'Hello' to 'Goodbye'

* Update package-rhel-riscv.sh

* Create package-debian-riscv.sh

* Update build-linux.yml

* Create update-riscv-depand.yml

* Update update-riscv-depand.yml

* Update ServiceLib.csproj

* Update Directory.Packages.props

* Update UpdateService.cs

* Update UpdateService.cs

* Update Directory.Packages.props

* Update ServiceLib.csproj

* Replace SourceGear.sqlite3 with Repobot.SQLite.Unofficial

* Replace SourceGear.sqlite3 with Repobot.SQLite.Unofficial

* Update Repobot.SQLite.Unofficial version to 3.53.1.1

* Update package-zip.yml

* Update build-osx.yml

Adjust sleep duration to reduce race condition likelihood.

* Update Directory.Packages.props

* Update Directory.Packages.props

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: DHR60 <dehongren60@gmail.com>
Co-authored-by: xujie86 <167618598+xujie86@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 17:56:35 +08:00
DHR60 cc57f952db Update dotnet to 10 (#9179) 2026-05-11 16:35:26 +08:00
2dust 8090799ccc Refactor models into sub-namespaces
Move many model classes into new sub-namespaces (ServiceLib.Models.CoreConfigs, ServiceLib.Models.Configs, ServiceLib.Models.Dto, ServiceLib.Models.Entities). Update GlobalUsings in ServiceLib, v2rayN.Desktop, v2rayN and add a tests GlobalUsings file to reference the new namespaces. Adjust static using directives in ClashApiManager and ClashProxiesViewModel to use ServiceLib.Models.Dto. This is a reorganization/rename of files and namespaces with no functional changes.
2026-05-11 11:00:19 +08:00
DHR60 700f98193a Fix (#9274) 2026-05-11 09:57:16 +08:00
2dust eee43288a4 up 7.21.3 7.21.3 2026-05-10 17:58:35 +08:00
2dust 61ff871dd2 Update GlobalHotKeys 2026-05-10 17:54:50 +08:00
DHR60 f8bc706cda Fix (#9271)
* Fix

* Fix res and uri

* Fix core config
2026-05-10 14:21:51 +08:00
2dust e7973840ce up 7.21.2 7.21.2 2026-05-08 20:11:01 +08:00
VinnyTheFemboy 212071681d Fix bind interface handling in desktop and sing-box (#9258)
* Fix desktop bind interface setting

* Fix sing-box bind interface config

* Update CoreConfigSingboxServiceTests.cs

---------

Co-authored-by: 2dust <31833384+2dust@users.noreply.github.com>
2026-05-08 19:34:25 +08:00
tt2563 0f9bfeb275 Update Traditional Chinese translation (#9253)
* Update traditional Chinese translations in ResUI

 Update Traditional Chinese translation

* Update binding interface tip for clarity
2026-05-08 19:13:05 +08:00
VinnyTheFemboy f5059f1165 Fix sing-box TUN custom config inbound (#9259) 2026-05-08 19:12:09 +08:00
DHR60 2dc967bc04 Fix (#9251) 2026-05-07 10:11:41 +08:00
DHR60 75ea81dd69 Inner uri (#9245)
* Inner uri import and export

* Add tests

* Fix

* Compress export length
2026-05-06 20:33:35 +08:00
DHR60 d13f7a4db6 Fix json compact (#9246) 2026-05-06 15:36:26 +08:00
DHR60 f073b14fcc Add PR test (#9244)
* Add pr test

* Fix
2026-05-06 15:35:53 +08:00
DHR60 1a44af33d0 Wireguard (#9241)
* Adjust mtu

* Add Wireguard PresharedKey

* WireGuard config import

* AI opt

* Opt
2026-05-06 15:35:10 +08:00
DHR60 8450f2e420 Add bind interface (#9222) 2026-05-04 14:38:32 +08:00
DHR60 37ef25cbfe Fix (#9235)
* Perf routing

* GeoPrefix move to Global

* Fix negative rules

* Fix
2026-05-03 16:09:47 +08:00
DHR60 0fac18ba95 Fix (#9230) 2026-05-02 19:01:51 +08:00
DHR60 3ccd59d1dc Fix (#9224) 2026-05-02 19:01:31 +08:00
2dust 6c38a08f12 up 7.21.1 7.21.1 2026-04-30 20:13:34 +08:00
2dust f8f7fee461 Disable auto-adjust main list column width desktop 2026-04-30 10:03:10 +08:00
2dust 3e157b0d62 Update 'CheckServerSettings' message 2026-04-29 20:23:08 +08:00
Miheichev Aleksandr Sergeevich 49d197e37f i18n(ru): translate new strings and fix terminology casing (#9207)
Translate 11 new strings introduced in upstream and fix casing of
several technical terms in ResUI.ru.resx.

New translations (9 existing + 2 added):
- TbAllowInsecureCertFetch, TbAllowInsecureCertFetchTips — insecure
  certificate fetch checkbox and MITM warning tooltip
- TbHost — host field label
- TbSettingsDefUserAgentTips — updated transport list
  (raw/http, ws, gRPC, xhttp)
- TbSettingsSendThrough, TbSettingsSendThroughTip,
  FillCorrectSendThroughIPv4 — local outbound IPv4 setting
- TbSettingsUdpTestUrl, menuUdpTestServer — UDP test URL and menu item
- TransportExtra, TransportExtraTip — XHTTP Extra raw JSON

Terminology fixes:
- "V2ray" → "v2ray" (core name is lowercase by convention)
- "[Anytls]" → "[AnyTLS]" (canonical protocol spelling)
- "LAN порт" → "LAN-порт" (hyphen per Russian grammar)

All translations use canonical casing for protocols (VMess, VLESS,
Shadowsocks, Trojan, WireGuard, Hysteria, TUIC, AnyTLS), cores
(Xray, sing-box, mihomo, v2ray) and abbreviations (TLS, DNS, UUID,
HTTP, IPv4, MTU, TUN, PAC, SOCKS, gRPC, XHTTP).
2026-04-29 14:43:35 +08:00
DHR60 b6f2912f29 Remove EchForceQuery (#9214) 2026-04-29 14:43:13 +08:00
2dust 05e349e45c Code clean 2026-04-26 19:24:57 +08:00
2dust ae662a628d Remove TbSettingsRemoteDNS and update DNS doc 2026-04-26 17:50:10 +08:00
2dust 6e85f79852 Preserve complex profile items during deduplication
https://github.com/2dust/v2rayN/issues/9184
2026-04-25 10:55:51 +08:00
DHR60 0af29f50c0 UDP Test (#8999)
* UDP Test

Increases UDP test timeout

Pref exception

Fix

Add Minecraft Bedrock Edition Test

* Optimization

* Refactor

* Rename
2026-04-25 10:45:45 +08:00
DHR60 ee6ae3d91d Add kcp mtu (#9178)
* Add kcp mtu

* Typo
2026-04-25 10:39:39 +08:00
2dust c4e071cac3 up 7.21.0 7.21.0 2026-04-24 14:39:38 +08:00
2dust 798831128a Update Directory.Packages.props 2026-04-24 14:34:05 +08:00
DHR60 a2de087aef Fix (#9171) 2026-04-21 17:17:25 +08:00
DHR60 89bc012c95 Fix (#9166) 2026-04-21 09:51:28 +08:00
2dust 39ef5d8174 Default to first sub; update SubIndexId on delete
https://github.com/2dust/v2rayN/issues/9151
2026-04-20 19:23:45 +08:00