From 43361552836fb4bcb11684b401cb3806c64a931b Mon Sep 17 00:00:00 2001 From: jimcody1995 Date: Sun, 5 Jul 2026 03:30:29 +0200 Subject: [PATCH] feat(signals): recognize CMake/Meson/Bazel files as config Classify CMakeLists.txt, meson.build, BUILD.bazel, and MODULE.bazel as build config in path-matchers so native-build-only diffs are not miscounted as substantive source effort in slop signals. Co-authored-by: Cursor --- src/signals/path-matchers.ts | 5 +++++ test/unit/path-matchers.test.ts | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/signals/path-matchers.ts b/src/signals/path-matchers.ts index cb9fc8da54..9a5c17951c 100644 --- a/src/signals/path-matchers.ts +++ b/src/signals/path-matchers.ts @@ -264,6 +264,11 @@ const CONFIG_FILE_NAMES: ReadonlySet = new Set([ "azure-pipelines.yml", "buf.yaml", "buf.gen.yaml", + // Native/C++ build system definitions (siblings to Makefile/Dockerfile above). + "cmakelists.txt", + "meson.build", + "build.bazel", + "module.bazel", ]); // Filename prefixes that identify build, lint, test-runner, and environment config files. diff --git a/test/unit/path-matchers.test.ts b/test/unit/path-matchers.test.ts index d71cac2492..0b728d6e70 100644 --- a/test/unit/path-matchers.test.ts +++ b/test/unit/path-matchers.test.ts @@ -320,6 +320,10 @@ describe("isConfigFile", () => { ".github/workflows/ci.yml", ".github/workflows/release.yaml", ".circleci/config.yml", + "native/CMakeLists.txt", + "libs/core/meson.build", + "services/api/BUILD.bazel", + "MODULE.bazel", ]) { expect(isConfigFile(path)).toBe(true); } @@ -410,6 +414,10 @@ describe("classifyChangedFile", () => { ["skaffold.yaml", "config"], ["Earthfile", "config"], ["Procfile", "config"], + ["native/CMakeLists.txt", "config"], + ["libs/meson.build", "config"], + ["services/BUILD.bazel", "config"], + ["MODULE.bazel", "config"], [".codecov.yml", "config"], ["codecov.yml", "config"], ["codecov.yaml", "config"],