Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
dc9cd93
fix(bg): unregister DefaultNetworkListener with the service key; use …
hawkff Jul 3, 2026
4dcab91
fix(bg): null-guard proxy in selector_OnProxySelected (teardown race)
hawkff Jul 3, 2026
ba5d136
fix(db): scope selectedProxy reset to the affected group
hawkff Jul 3, 2026
5ad3d66
fix(group): route shadowed duplicate-name rows to delete on subscript…
hawkff Jul 3, 2026
27eed08
fix(group): return instead of cancel() in executeUpdate; rethrow canc…
hawkff Jul 3, 2026
0ff0b00
fix(group): fall back to default group instead of !! on missing ungro…
hawkff Jul 3, 2026
d4ca557
fix(utils): swap PackageCache uidMap by reference; fix awaitLoadSync …
hawkff Jul 3, 2026
740aa77
fix(bg): assign TrafficLooper synchronously to close the launch/close…
hawkff Jul 3, 2026
9c304d3
fix(group): resume update dialogs safely when the Activity is gone
hawkff Jul 3, 2026
0649315
fix(bg): make TestInstance.doTest cancellable and close on cancel
hawkff Jul 3, 2026
18c78b3
fix(bg): address CR — always unlock PackageCache.loaded; rethrow canc…
hawkff Jul 3, 2026
1a495ac
fix(bg): use CancellableContinuation resume (avoid internal tryResume…
hawkff Jul 3, 2026
6a8e6de
style(bg): fix import ordering in TestInstance (ktlint)
hawkff Jul 3, 2026
41dfe22
style(bg): match ktlint import order in TestInstance (kotlin.* last)
hawkff Jul 3, 2026
4609c29
fix(bg): make TestInstance.close idempotent (avoid double-close on ca…
hawkff Jul 3, 2026
ab171dc
perf(bg): derive selector group id without building a temp config
hawkff Jul 3, 2026
856206d
perf(ui): batch connection-test result writes
hawkff Jul 3, 2026
e55efdc
perf(bg): batch per-tick traffic updates into one callback
hawkff Jul 3, 2026
3d7a84a
security(ci): pin third-party GitHub/Depot Actions to commit SHAs
hawkff Jul 3, 2026
7d88e61
security(build): pin gomobile branch and mieru tag to commit SHAs
hawkff Jul 3, 2026
8c98adf
security(plugin): resolve bundled sidecar binaries before external pr…
hawkff Jul 3, 2026
45b46ea
security(config): require a per-install token for the Clash API
hawkff Jul 3, 2026
e66c3bd
security(build): address CR — fresh gomobile checkout dir and fail-fa…
hawkff Jul 3, 2026
d225538
security(config): build dashboard URL via Uri — exact host:port, quer…
hawkff Jul 3, 2026
722a1ea
security(config): use String.toUri KTX extension (lint UseKtx)
hawkff Jul 3, 2026
1a1140f
security(config): omit the local API token from exported configs
hawkff Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .depot/workflows/android-instrumented.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,16 @@ jobs:
runs-on: depot-ubuntu-24.04-8
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5

- name: Setup Java
uses: actions/setup-java@v5
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
with:
distribution: 'temurin'
java-version: '17'

- name: Setup Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3

- name: Install SDK platform + NDK
run: |
Expand Down Expand Up @@ -71,14 +71,14 @@ jobs:

- name: libcore cache
id: libcore-cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: app/libs/libcore.aar
key: depot-libcore-${{ env.GO_VERSION }}-${{ env.NDK_VERSION }}-${{ hashFiles('libcore_status') }}

- name: Install Go
if: steps.libcore-cache.outputs.cache-hit != 'true'
uses: actions/setup-go@v6
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
go-version: ${{ env.GO_VERSION }}

Expand All @@ -98,7 +98,7 @@ jobs:
echo "KVM present"

- name: Run migration test on emulator
uses: reactivecircus/android-emulator-runner@v2
uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2
with:
api-level: 33
arch: x86_64
Expand Down
16 changes: 8 additions & 8 deletions .depot/workflows/build-apk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ jobs:
runs-on: depot-ubuntu-24.04-8
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5

- name: Setup Java
uses: actions/setup-java@v5
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
with:
distribution: 'temurin'
java-version: '17'

- name: Setup Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3

- name: Install SDK platform + NDK
run: sdkmanager --install "platforms;android-35" "build-tools;35.0.0" "ndk;${NDK_VERSION}"
Expand All @@ -51,7 +51,7 @@ jobs:

- name: libcore cache
id: libcore-cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: app/libs/libcore.aar
key: depot-libcore-${{ env.GO_VERSION }}-${{ env.NDK_VERSION }}-${{ hashFiles('libcore_status') }}
Expand All @@ -72,14 +72,14 @@ jobs:

- name: sidecars cache
id: sidecars-cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: app/executableSo
key: depot-sidecars-${{ env.GO_VERSION }}-${{ env.NDK_VERSION }}-${{ env.MIERU_VERSION }}-${{ env.MDVPN_COMMIT }}-${{ env.NAIVE_VERSION }}-${{ env.OLCRTC_COMMIT }}-${{ hashFiles('sidecars_status') }}

- name: Install Go
if: steps.libcore-cache.outputs.cache-hit != 'true' || steps.sidecars-cache.outputs.cache-hit != 'true'
uses: actions/setup-go@v6
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
go-version: ${{ env.GO_VERSION }}

Expand Down Expand Up @@ -108,7 +108,7 @@ jobs:
done

- name: Gradle cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ~/.gradle
key: depot-gradle-oss-${{ hashFiles('**/*.gradle.kts') }}
Expand Down Expand Up @@ -145,7 +145,7 @@ jobs:
echo "Built APK: $APK_FILE"

- name: Upload APK
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: NekoBox-debug-arm64-v8a-apk
path: ${{ env.APK_FILE }}
Expand Down
2 changes: 1 addition & 1 deletion .depot/workflows/guard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: depot-ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Guard - AGENTS.md must stay untracked
run: bash ./scripts/check-agents-untracked.sh
- name: Guard - no backed-up SharedPreferences
Expand Down
12 changes: 6 additions & 6 deletions .depot/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ jobs:
runs-on: depot-ubuntu-24.04-4
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup Java
uses: actions/setup-java@v5
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
with:
distribution: 'temurin'
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3
- name: Install SDK platform + NDK
run: sdkmanager --install "platforms;android-35" "build-tools;35.0.0" "ndk;${NDK_VERSION}"
- name: local.properties
Expand All @@ -55,13 +55,13 @@ jobs:
| awk '{print $1}' > libcore_status
- name: libcore cache
id: libcore-cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: app/libs/libcore.aar
key: depot-libcore-${{ env.GO_VERSION }}-${{ env.NDK_VERSION }}-${{ hashFiles('libcore_status') }}
- name: Install Go
if: steps.libcore-cache.outputs.cache-hit != 'true'
uses: actions/setup-go@v6
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
go-version: ${{ env.GO_VERSION }}
- name: Build libcore (Go + gomobile)
Expand All @@ -75,7 +75,7 @@ jobs:
# If lint just created the baseline (first run), surface it so it can be committed.
- name: Upload lint baseline (if generated)
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: lint-baseline
path: app/lint-baseline.xml
Expand Down
10 changes: 5 additions & 5 deletions .depot/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@ jobs:
runs-on: depot-ubuntu-24.04-4
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup Java
uses: actions/setup-java@v5
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
with:
distribution: 'temurin'
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3
- name: Install SDK platform + NDK
run: sdkmanager --install "platforms;android-35" "build-tools;35.0.0" "ndk;${NDK_VERSION}"
- name: local.properties
Expand All @@ -57,13 +57,13 @@ jobs:
| awk '{print $1}' > libcore_status
- name: libcore cache
id: libcore-cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: app/libs/libcore.aar
key: depot-libcore-${{ env.GO_VERSION }}-${{ env.NDK_VERSION }}-${{ hashFiles('libcore_status') }}
- name: Install Go
if: steps.libcore-cache.outputs.cache-hit != 'true'
uses: actions/setup-go@v6
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
go-version: ${{ env.GO_VERSION }}
- name: Build libcore (Go + gomobile)
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: namespace-profile-nekoyay
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Golang Status
run: find buildScript libcore/*.sh | xargs cat | sha1sum > golang_status
- name: Libcore Status
Expand All @@ -33,7 +33,7 @@ jobs:
key: ${{ hashFiles('.github/workflows/*', 'golang_status', 'libcore_status') }}
- name: Install Golang
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/setup-go@v6
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
go-version: '1.26.4'
- name: Native Build
Expand Down Expand Up @@ -77,7 +77,7 @@ jobs:
rm -rf "$tmp"
exit "$fail"
- name: Upload LibCore
uses: namespace-actions/upload-artifact@v1
uses: namespace-actions/upload-artifact@f6ccaacc655aec41b93af180d1d7eef21af862d2 # v1
with:
name: libcore-aar-build
path: app/libs/libcore.aar
Expand All @@ -88,7 +88,7 @@ jobs:
runs-on: namespace-profile-nekoyay
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Sidecars Status
run: cat buildScript/lib/mieru.sh buildScript/lib/masterdnsvpn.sh buildScript/lib/naive.sh buildScript/init/env.sh buildScript/init/env_ndk.sh | sha1sum > sidecars_status
- name: Sidecars Cache
Expand All @@ -100,7 +100,7 @@ jobs:
key: ${{ hashFiles('.github/workflows/*', 'sidecars_status') }}-${{ env.MIERU_VERSION }}-${{ env.MDVPN_COMMIT }}-${{ env.NAIVE_VERSION }}-sidecars
- name: Install Golang
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/setup-go@v6
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
go-version: '1.26.4'
- name: Mieru Build
Expand All @@ -113,7 +113,7 @@ jobs:
if: steps.cache.outputs.cache-hit != 'true'
run: ./run lib naive
- name: Upload Sidecars
uses: namespace-actions/upload-artifact@v1
uses: namespace-actions/upload-artifact@f6ccaacc655aec41b93af180d1d7eef21af862d2 # v1
with:
name: sidecars-so-build
path: app/executableSo
Expand All @@ -127,14 +127,14 @@ jobs:
- sidecars
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Download LibCore
uses: namespace-actions/download-artifact@v1
uses: namespace-actions/download-artifact@5c070f7d7ebdc47682b04aa736c76e46ff5f6e1e # v1
with:
name: libcore-aar-build
path: app/libs
- name: Download Sidecars
uses: namespace-actions/download-artifact@v1
uses: namespace-actions/download-artifact@5c070f7d7ebdc47682b04aa736c76e46ff5f6e1e # v1
with:
name: sidecars-so-build
path: app/executableSo
Expand Down Expand Up @@ -174,7 +174,7 @@ jobs:
APK=$(dirname "$APK")
echo "APK=$APK" >> $GITHUB_ENV
- name: Upload Artifacts
uses: namespace-actions/upload-artifact@v1
uses: namespace-actions/upload-artifact@f6ccaacc655aec41b93af180d1d7eef21af862d2 # v1
with:
name: NekoBoxs
path: ${{ env.APK }}
Loading