From cf27d3e6bfb31865d950d79f602888b3154c14b3 Mon Sep 17 00:00:00 2001 From: Bryant Date: Thu, 2 Jul 2026 14:37:59 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20(ci):=20Ignore=20agent=5Fassembl?= =?UTF-8?q?y/proto/**=20in=20codecov=20to=20match=20Sonar=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit protoc-generated agent_assembly/proto/** is dropped from SonarCloud analysis via sonar.exclusions, but Codecov still counted its near-zero generated-code coverage. Add it to codecov.yml ignore (alongside the existing types.py) so Codecov measures the same file set as sonar.sources, converging the headline coverage % without touching the shared coverage_*.xml or Sonar's Quality Gate. Closes AAASM-4002 Refs AAASM-4001, AAASM-3999 --- codecov.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/codecov.yml b/codecov.yml index 4e40441..f00a0fe 100644 --- a/codecov.yml +++ b/codecov.yml @@ -10,9 +10,14 @@ coverage: target: 90% threshold: 5% -# Mirror sonar.coverage.exclusions (sonar-project.properties): exclude the same -# path from Codecov's coverage denominator so both tools measure the identical -# scope. Without this, Codecov counts agent_assembly/types.py while SonarCloud -# does not, producing a spurious cross-tool coverage delta (AAASM-3962). +# Mirror SonarCloud's excluded set (sonar-project.properties) so Codecov measures +# the identical scope; a differing file set is the residual cross-tool coverage +# delta (AAASM-3999). +# - agent_assembly/types.py mirrors sonar.coverage.exclusions (AAASM-3962). +# - agent_assembly/proto/** mirrors sonar.exclusions: the protoc-generated +# *_pb2.py / *_pb2_grpc.py tree is not hand-maintained and Sonar drops it +# from analysis entirely; without this Codecov still counts its near-zero +# generated-code coverage, dragging the headline % ~1.5pt below Sonar. ignore: - "agent_assembly/types.py" + - "agent_assembly/proto/**"