Repository navigation
Sync upstream: Xray-core v26.10.21, API v3, Go 1.27.3 - #1
Merged
Merged
Conversation
* Document layered invoke env behavior * Remove Invoke env support * Return ping delay sentinel on failure * Restore invoke env and desktop wrapper * Make geo data invoke test self contained * Clarify invoke env documentation * Harden desktop wrapper errors
* Remove invoke env and desktop wrapper * Limit Invoke JSON size * Document Invoke size limit * Clarify Invoke size and env behavior
* Harden Xray lifecycle and C ABI builds * Use latest gomobile for builds * Use stable toolchains in workflows
* add /proc/net UID fallback for Android < API 30 * fix matching: split hex and port per PCAPdroid logic
* Add concurrent batch ping support * Remove ping batch config IDs * Update Xray-core to v26.7.28 * Support SIP002 plain user info * Harden runtime error handling
* Refactor Xray JSON invoke APIs * Add age-encrypted subscription support * Document hybrid age key generation
* Document single Go runtime limitation * Generalize Go runtime warning across platforms
Solves the annoying problem when first time building binary, cc @yiguodev
* Remove deprecated AllowInsecure share handling * Keep only outbounds from Xray JSON imports * Remove KCP seed and header share handling * Stop generating empty KCP share settings * Add share config JSON projection * Update libXray build workflow * Update workflow action versions
* Restore protected desktop DNS resolver * Fix protected DNS resolver lifecycle * Preflight desktop DNS interface binding
* Use outbound tags for share names * feat: add isolated route checking and build-only validation * feat: persist managed Xray session traffic snapshots * feat: report share parsing counts and probe server locations * feat: probe full routing configurations without binding listeners * build: record effective native build inputs and gomobile version * feat: expose saved runtime statistics over loopback HTTP * refactor: return raw ping location responses * refactor: simplify managed runtime accounting * refactor: make runtime snapshots internal * fix: address probe review feedback * refactor: unify share conversion API * chore: require Go 1.27.1 * refactor: simplify configuration validation API * build: remove build input metadata * refactor: simplify share parsing and runtime accounting
…S#151) * refactor: remove cross-process runtime file locking * refactor: remove managed runtime traffic accounting * refactor: return share outbounds without parsing statistics * docs: keep pull requests scoped to their repository
* Update Xray-core to v26.9.9 * refactor(share): remove Clash and Hysteria2 URI support
* Validate Xray configurations through instance construction * docs: configure engineering skills
* Add bug report and feature request issue forms * Simplify agent guidance and remove obsolete skill docs * Remove legacy VMessQrCode share-link support * Complete VMessAEAD and VLESS share field support
* chore: update Xray-core to v26.9.30 and refresh dependencies * build: allow rebuilding Go modules without snapshots
* ci: refresh workflow dependencies and pin Ubuntu 24.04 * ci: track action dependencies by major version
strip symbol and DWARF tables from Android artifacts
…TLS#165) * feat: decode subscription text and remove exit location probes * test: retain forced outbound isolation coverage
Upstream brings Xray-core v26.10.21, Invoke API v3 (runXray takes the config as xrayJson, a top-level env is ignored), the core lifecycle lock, cgo_bridge in place of the source template, stripped smaller binaries and the validate workflow. Ours carried onto it: Smart failover and the latency probe with their Invoke methods. runXray and stopXray now run end to end under one lock, so the failover controller always matches the core; a duplicate runXray (ErrAlreadyRunning) leaves the running tunnel and its controller alone. Dropped: runXrayFromJson, the macOS dylib target, and the Windows/Linux ARM64 and Apple legs from the build matrix (Cloakify ships Android, Windows x64 and Linux x64).
…env reaches geodata
Xray-core v26.10.21's certificate fix needs the binaries built with Go 1.27.3. go.mod's go line is now that floor and every setup-go reads it (setup-go sets GOTOOLCHAIN=local, so the go command refuses an older toolchain). Each build leg also checks its own artifacts with `go version -m` - the Go version and the xray-core version go.mod requires - and the Windows DLL must import no C++ runtime. Android's gomobile comes from go.mod instead of @latest.
…dable import table
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings upstream libXray (XTLS/libXray
dbe9512) into our fork: Xray-core v26.10.21, the emergency certificate release, built with Go 1.27.3.From upstream
runXraytakes the config asxrayJson; a top-levelenvis ignored — runtime keys go in the config's rootenv.runXrayFromJsonandpingare gone.RunXrayrefuses a second start withErrAlreadyRunning, a failed start is closed).cgo_bridgereplaces the source template (sameCGoInvoke/CGoFreeexports), stripped binaries, thevalidateworkflow.tag); legacyvmess://base64links are no longer parsed.Ours, carried onto it
getFailoverState,setFailoverOrder,startProbe,probeResults,stopProbe,closeProbeHost).runXrayandstopXrayrun end to end under one lock, so the failover controller always matches the core; a refused duplicaterunXrayleaves the running tunnel and its controller alone.xray.Instance()reads the core under its lock.Build
go.modgo 1.27.3; everysetup-goreads it. Each leg checks its artifacts withgo version -m(Go ≥ 1.27.3, the v26.10.21 core) and the DLL must import no C++ runtime. gomobile comes fromgo.mod.Tests added
runXraywith failover settings starts the controller; a refused duplicate keeps it; concurrent run/run/stop leaves the controller running exactly when the core is.envlocates geodata (ageosite:rule that only the env resolves).Instance()raced against run/stop (-race).build/test_verify_core.pyfor the artifact checks.Merge with a merge commit (keeps upstream's history).