diff --git a/.github/workflows/ci-lite.yml b/.github/workflows/ci-lite.yml index dd737809e7..9955126487 100644 --- a/.github/workflows/ci-lite.yml +++ b/.github/workflows/ci-lite.yml @@ -154,8 +154,16 @@ jobs: - 'scripts/check-linux-tls-dependencies.sh' - 'scripts/test-rust-e2e.sh' - 'scripts/test-rust-with-mock.sh' - - 'vendor/motosan-ai-oauth/**' - - 'vendor/tinychannels' + # Every vendored crate, not an enumeration. `[patch.crates-io]` + # force-resolves all ten submodules by path, so ANY pointer bump + # changes what this crate compiles against. The previous list + # named two of them, so a bump to the other eight ran no openhuman + # Rust lane at all while PR CI Gate still reported success. + # Enumerating here failed the same way the release Docker + # submodule list did three times before #5596 replaced it with + # `--init --recursive`. Do not go back to a list. + - '.gitmodules' + - 'vendor/**' # Changes here invalidate per-module test scoping → full suite. rust-core-full: - '.github/workflows/ci-lite.yml' @@ -167,8 +175,11 @@ jobs: - 'rust-toolchain.toml' - 'scripts/ci-cancel-aware.sh' - 'scripts/check-linux-tls-dependencies.sh' - - 'vendor/motosan-ai-oauth/**' - - 'vendor/tinychannels' + # A vendored-crate bump invalidates per-module test scoping for the + # same reason a Cargo.lock change does: it moves the dependency + # graph under every module. Full suite, not scoped. + - '.gitmodules' + - 'vendor/**' rust-core-src: - 'src/**' - 'tests/**' @@ -185,6 +196,11 @@ jobs: - 'rust-toolchain.toml' - 'app/src-tauri/**' - 'scripts/ci-cancel-aware.sh' + # The shell is a second Cargo world with its own duplicate + # `[patch.crates-io]` table pointing at the same submodules, so it + # is affected by a bump exactly as the core is. It named none. + - '.gitmodules' + - 'vendor/**' # Shared mock backend + script self-tests. The mock backend every # E2E suite depends on had zero PR-lane coverage before this (its # own socket-auth tests never ran in CI) — arm the scripts