From 2222df31d5df44b40a159ab318a78ab546ff2485 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 5 Aug 2026 17:05:34 +0000 Subject: [PATCH] CI: gate lance-graph-callcenter under --features query (close the blind gate) Nothing in CI ran this crate, and `default = []` means even a bare `cargo test -p lance-graph-callcenter` would compile almost none of it and report a green it had not earned. Two defects rode through that gap on 2026-08-05: - clippy EXIT=0 over `vsa_udfs` and `transcode::ontology_table`, which were never compiled (both behind `query` / `query-lite`); - 2 genuinely failing tests -- the `graph_table` fixture minted rows with the V1 `CLASSID_OSINT` while `OSINT_GOTHAM.classid` resolves to `CLASSID_OSINT_V3` under the default `guid-v3-tail`, so the class filter matched zero of two rows and every assertion ran against an empty snapshot (fixed in #897). Two steps, both mandatory, matching the deepnsm posture: gate it WHILE it is clean so it cannot regress. Verified locally on this tree before adding them -- clippy 0 errors, tests 211/211 -- so neither step lands red. Advisory was considered and rejected: the advisory tier exists for crates carrying pre-existing debt to be paid down (lance-graph core, bgz-tensor). This crate has none under this feature today. A green run that never compiled the module is not coverage. Same shape the repo has already closed for deepnsm, supervisor, ogar and bgz-tensor -- this one is subtler only because the missing coverage was a FEATURE, not a crate. --- .github/workflows/rust-test.yml | 18 ++++++++++++++++++ .github/workflows/style.yml | 16 ++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/.github/workflows/rust-test.yml b/.github/workflows/rust-test.yml index 773ab60a3..4e58c5615 100644 --- a/.github/workflows/rust-test.yml +++ b/.github/workflows/rust-test.yml @@ -150,6 +150,24 @@ jobs: # (deepnsm / supervisor / ogar above). One scoped step arms it. Gating. - name: Run bgz-tensor tests (workspace-excluded, ndarray sibling) run: cargo test --manifest-path crates/bgz-tensor/Cargo.toml --lib + # lance-graph-callcenter UNDER `--features query` — the same blind gate as + # supervisor above, but one level subtler: the crate was not merely + # untested, it has `default = []`, so even a bare `cargo test` on it would + # compile almost nothing and report a green it had not earned. + # + # Measured, not hypothetical. Running this combination by hand on + # 2026-08-05 found 209 passed / 2 FAILED: the `graph_table` fixture minted + # rows with the V1 `CLASSID_OSINT` while `OSINT_GOTHAM.classid` resolves to + # `CLASSID_OSINT_V3` under the default `guid-v3-tail`, so + # `project_snapshot`'s class filter matched zero of two rows and every + # assertion ran against an empty snapshot (fixed in #897; recorded as + # E-A-FEATURE-CONDITIONAL-CLASSID-SILENTLY-EMPTIED-A-FIXTURE-1). The same + # feature gap had already produced a clippy EXIT=0 over never-compiled + # `vsa_udfs` / `transcode::ontology_table` earlier the same day. + # + # 211 tests, ~2 min incremental. Gating. + - name: Run callcenter tests --features query (blind-gate closure) + run: cargo test --manifest-path crates/lance-graph-callcenter/Cargo.toml --features query --lib # Codex P2 (PR #861): the two self-asserting probe examples validate # their fixtures via assert! inside example main() — cargo test never # executes an example's main(), so those asserts only ever ran on a diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index 58e1da70f..822030aa8 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -102,6 +102,22 @@ jobs: - name: Clippy bgz-tensor (advisory) continue-on-error: true run: cargo clippy --manifest-path crates/bgz-tensor/Cargo.toml --all-targets -- -D warnings + # Tier A (mandatory, gating): lance-graph-callcenter UNDER `--features query`. + # + # The feature matters more than the crate. `default = []` here, so a bare + # clippy run on this crate compiles almost none of it and exits 0 while + # `vsa_udfs` and `transcode::ontology_table` — both behind + # `query` / `query-lite` — are never seen. That false green is measured, + # not hypothetical: it happened twice in one session (2026-08-05), and the + # second time it hid two genuinely failing tests as well + # (E-A-FEATURE-CONDITIONAL-CLASSID-SILENTLY-EMPTIED-A-FIXTURE-1). + # + # A green run that never compiled the module is not coverage. Gated + # mandatory rather than advisory because the crate is clean TODAY + # (0 errors under this feature) — same posture as deepnsm: gate it while + # it is clean so it cannot silently regress. + - name: Clippy callcenter --features query (mandatory) + run: cargo clippy --manifest-path crates/lance-graph-callcenter/Cargo.toml --features query --lib --tests -- -D warnings format: runs-on: ubuntu-24.04