Skip to content

ci: add codecov.yml with informational patch coverage#729

Merged
intel352 merged 1 commit into
mainfrom
ci/codecov-config-1779222321
May 19, 2026
Merged

ci: add codecov.yml with informational patch coverage#729
intel352 merged 1 commit into
mainfrom
ci/codecov-config-1779222321

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Switches codecov patch check to informational mode and sets project threshold to 1%. Eliminates the admin-override pattern that surfaced 3 times in the past week (workflow#715, #720, #725) without sacrificing coverage signal in PR comments.

Workflow main has many operator-facing CLI surfaces that get exercised
by manual operators or downstream integration tests, not by unit tests.
Codecov's default "auto" patch target blocks PRs whose helper functions
can't be cheaply unit-tested without a full integration harness —
admin-override is forced 3 times in the past week (workflow#715,
workflow#720, workflow#725).

Switch patch coverage to informational mode (report posted but status
check passes) and set project threshold to 1% (protects against
gradual rot without blocking noise). Reviewers continue to call out
genuinely under-tested paths in review.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 19, 2026 20:25
@intel352 intel352 merged commit 631345f into main May 19, 2026
12 checks passed
@intel352 intel352 deleted the ci/codecov-config-1779222321 branch May 19, 2026 20:26
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a repository-level Codecov configuration to reduce PR friction from patch-coverage failures while keeping a lightweight project-level regression signal for the workflow engine’s large Go codebase.

Changes:

  • Add codecov.yml to set patch coverage status to informational-only (non-blocking).
  • Configure project coverage status to allow a 1 percentage-point drop before failing.

Comment thread codecov.yml
Comment on lines +18 to +19
# directly rather than relying on a hard codecov threshold. This matches
# the manual-review tier in CONTRIBUTING.md.
@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions
Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:274: parsing iteration count: invalid syntax
baseline-bench.txt:262133: parsing iteration count: invalid syntax
baseline-bench.txt:586584: parsing iteration count: invalid syntax
baseline-bench.txt:908560: parsing iteration count: invalid syntax
baseline-bench.txt:1190435: parsing iteration count: invalid syntax
baseline-bench.txt:1494180: parsing iteration count: invalid syntax
benchmark-results.txt:274: parsing iteration count: invalid syntax
benchmark-results.txt:322736: parsing iteration count: invalid syntax
benchmark-results.txt:609708: parsing iteration count: invalid syntax
benchmark-results.txt:909916: parsing iteration count: invalid syntax
benchmark-results.txt:1231091: parsing iteration count: invalid syntax
benchmark-results.txt:1571829: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ baseline-bench.txt │       benchmark-results.txt        │
                            │       sec/op       │    sec/op     vs base              │
InterpreterCreation-4               8.356m ± 63%   7.948m ± 60%       ~ (p=0.818 n=6)
ComponentLoad-4                     3.617m ±  4%   3.714m ±  9%       ~ (p=0.240 n=6)
ComponentExecute-4                  1.963µ ±  1%   1.987µ ±  2%  +1.22% (p=0.002 n=6)
PoolContention/workers-1-4          1.097µ ±  3%   1.138µ ±  7%  +3.69% (p=0.009 n=6)
PoolContention/workers-2-4          1.082µ ±  1%   1.104µ ±  2%  +1.99% (p=0.004 n=6)
PoolContention/workers-4-4          1.082µ ±  0%   1.108µ ±  1%  +2.40% (p=0.002 n=6)
PoolContention/workers-8-4          1.089µ ±  1%   1.094µ ±  1%       ~ (p=0.368 n=6)
PoolContention/workers-16-4         1.092µ ±  2%   1.103µ ±  1%       ~ (p=0.234 n=6)
ComponentLifecycle-4                3.601m ±  1%   3.726m ±  2%  +3.46% (p=0.002 n=6)
SourceValidation-4                  2.313µ ±  1%   2.349µ ±  1%  +1.53% (p=0.004 n=6)
RegistryConcurrent-4                784.3n ±  3%   805.5n ±  3%       ~ (p=0.132 n=6)
LoaderLoadFromString-4              3.620m ±  0%   3.701m ±  1%  +2.25% (p=0.002 n=6)
geomean                             18.95µ         19.24µ        +1.52%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               2.027Mi ± 0%   2.027Mi ± 0%       ~ (p=0.818 n=6)
ComponentLoad-4                     2.180Mi ± 0%   2.180Mi ± 0%       ~ (p=0.452 n=6)
ComponentExecute-4                  1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4         1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                2.183Mi ± 0%   2.183Mi ± 0%       ~ (p=0.515 n=6)
SourceValidation-4                  1.984Ki ± 0%   1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                1.133Ki ± 0%   1.133Ki ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4              2.182Mi ± 0%   2.182Mi ± 0%       ~ (p=0.288 n=6)
geomean                             15.25Ki        15.25Ki       +0.00%
¹ all samples are equal

                            │ baseline-bench.txt │        benchmark-results.txt        │
                            │     allocs/op      │  allocs/op   vs base                │
InterpreterCreation-4                15.68k ± 0%   15.68k ± 0%       ~ (p=1.000 n=6)
ComponentLoad-4                      18.02k ± 0%   18.02k ± 0%       ~ (p=1.000 n=6)
ComponentExecute-4                    25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4           25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                 18.07k ± 0%   18.07k ± 0%       ~ (p=1.000 n=6) ¹
SourceValidation-4                    32.00 ± 0%    32.00 ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                  2.000 ± 0%    2.000 ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4               18.06k ± 0%   18.06k ± 0%       ~ (p=1.000 n=6) ¹
geomean                               183.3         183.3       +0.00%
¹ all samples are equal

pkg: github.com/GoCodeAlone/workflow/middleware
                                  │ baseline-bench.txt │       benchmark-results.txt       │
                                  │       sec/op       │   sec/op     vs base              │
CircuitBreakerDetection-4                  290.6n ± 4%   294.3n ± 3%       ~ (p=0.937 n=6)
CircuitBreakerExecution_Success-4          21.47n ± 0%   21.45n ± 1%       ~ (p=0.561 n=6)
CircuitBreakerExecution_Failure-4          66.38n ± 1%   66.30n ± 0%  -0.11% (p=0.026 n=6)
geomean                                    74.53n        74.80n       +0.36%

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │        B/op        │    B/op     vs base                │
CircuitBreakerDetection-4                 144.0 ± 0%     144.0 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │     allocs/op      │ allocs/op   vs base                │
CircuitBreakerDetection-4                 1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
                                 │ baseline-bench.txt │       benchmark-results.txt        │
                                 │       sec/op       │    sec/op     vs base              │
IaCStateBackend_InProcess-4              308.0n ± 23%   308.9n ±  9%       ~ (p=0.310 n=6)
IaCStateBackend_GRPC-4                   9.872m ±  7%   9.619m ± 21%       ~ (p=0.699 n=6)
JQTransform_Simple-4                     681.9n ± 35%   691.1n ± 33%       ~ (p=0.513 n=6)
JQTransform_ObjectConstruction-4         1.535µ ±  1%   1.515µ ±  0%  -1.27% (p=0.002 n=6)
JQTransform_ArraySelect-4                3.505µ ±  2%   3.461µ ±  1%  -1.26% (p=0.011 n=6)
JQTransform_Complex-4                    38.92µ ±  1%   39.05µ ±  2%       ~ (p=0.818 n=6)
JQTransform_Throughput-4                 1.873µ ±  0%   1.867µ ±  1%       ~ (p=0.054 n=6)
SSEPublishDelivery-4                     63.15n ±  7%   63.70n ±  1%       ~ (p=0.058 n=6)
geomean                                  3.880µ         3.867µ        -0.33%

                                 │ baseline-bench.txt │         benchmark-results.txt         │
                                 │        B/op        │     B/op       vs base                │
IaCStateBackend_InProcess-4             416.0 ±  0%       416.0 ±  0%       ~ (p=1.000 n=6) ¹
IaCStateBackend_GRPC-4                5.965Mi ± 13%     5.968Mi ± 11%       ~ (p=0.937 n=6)
JQTransform_Simple-4                  1.273Ki ±  0%     1.273Ki ±  0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4      1.773Ki ±  0%     1.773Ki ±  0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4             2.625Ki ±  0%     2.625Ki ±  0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                 16.22Ki ±  0%     16.22Ki ±  0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4              1.984Ki ±  0%     1.984Ki ±  0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                    0.000 ±  0%       0.000 ±  0%       ~ (p=1.000 n=6) ¹
geomean                                             ²                  +0.01%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │        benchmark-results.txt        │
                                 │     allocs/op      │  allocs/op   vs base                │
IaCStateBackend_InProcess-4              2.000 ± 0%      2.000 ± 0%       ~ (p=1.000 n=6) ¹
IaCStateBackend_GRPC-4                  6.842k ± 0%     6.850k ± 0%       ~ (p=0.619 n=6)
JQTransform_Simple-4                     10.00 ± 0%      10.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4         15.00 ± 0%      15.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4                30.00 ± 0%      30.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                    324.0 ± 0%      324.0 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4                 17.00 ± 0%      17.00 ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²                +0.01%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │       sec/op       │    sec/op     vs base              │
SchemaValidation_Simple-4                   1.098µ ±  1%   1.101µ ± 24%       ~ (p=0.677 n=6)
SchemaValidation_AllFields-4                1.662µ ± 16%   1.668µ ±  2%       ~ (p=0.699 n=6)
SchemaValidation_FormatValidation-4         1.580µ ±  4%   1.593µ ±  3%       ~ (p=0.513 n=6)
SchemaValidation_ManySchemas-4              1.826µ ±  3%   1.833µ ±  2%       ~ (p=0.589 n=6)
geomean                                     1.515µ         1.521µ        +0.45%

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │        B/op        │    B/op     vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │     allocs/op      │ allocs/op   vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
                                   │ baseline-bench.txt │       benchmark-results.txt        │
                                   │       sec/op       │    sec/op     vs base              │
EventStoreAppend_InMemory-4                1.220µ ± 12%   1.191µ ± 12%       ~ (p=0.937 n=6)
EventStoreAppend_SQLite-4                  1.368m ±  2%   1.406m ±  4%  +2.81% (p=0.041 n=6)
GetTimeline_InMemory/events-10-4           13.74µ ±  3%   13.68µ ±  1%       ~ (p=0.699 n=6)
GetTimeline_InMemory/events-50-4           75.84µ ±  1%   75.16µ ±  9%       ~ (p=0.394 n=6)
GetTimeline_InMemory/events-100-4          123.1µ ± 22%   123.6µ ±  0%       ~ (p=0.394 n=6)
GetTimeline_InMemory/events-500-4          631.9µ ±  1%   634.7µ ±  2%       ~ (p=0.394 n=6)
GetTimeline_InMemory/events-1000-4         1.293m ±  1%   1.299m ±  1%       ~ (p=0.180 n=6)
GetTimeline_SQLite/events-10-4             106.4µ ±  2%   107.3µ ±  1%       ~ (p=0.065 n=6)
GetTimeline_SQLite/events-50-4             247.4µ ±  1%   251.4µ ±  1%  +1.61% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4            431.2µ ±  1%   424.2µ ±  1%  -1.61% (p=0.004 n=6)
GetTimeline_SQLite/events-500-4            1.790m ±  1%   1.807m ±  1%  +0.92% (p=0.026 n=6)
GetTimeline_SQLite/events-1000-4           3.485m ±  2%   3.516m ±  0%       ~ (p=0.065 n=6)
geomean                                    219.3µ         219.9µ        +0.25%

                                   │ baseline-bench.txt │        benchmark-results.txt         │
                                   │        B/op        │     B/op      vs base                │
EventStoreAppend_InMemory-4                 784.5 ± 10%     821.5 ± 8%       ~ (p=0.589 n=6)
EventStoreAppend_SQLite-4                 1.983Ki ±  1%   1.985Ki ± 2%       ~ (p=0.504 n=6)
GetTimeline_InMemory/events-10-4          7.953Ki ±  0%   7.953Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4          46.62Ki ±  0%   46.62Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4         94.48Ki ±  0%   94.48Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4         472.8Ki ±  0%   472.8Ki ± 0%       ~ (p=1.000 n=6)
GetTimeline_InMemory/events-1000-4        944.3Ki ±  0%   944.3Ki ± 0%       ~ (p=1.000 n=6)
GetTimeline_SQLite/events-10-4            16.74Ki ±  0%   16.74Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4            87.14Ki ±  0%   87.14Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4           175.4Ki ±  0%   175.4Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4           846.1Ki ±  0%   846.1Ki ± 0%       ~ (p=1.000 n=6)
GetTimeline_SQLite/events-1000-4          1.639Mi ±  0%   1.639Mi ± 0%       ~ (p=0.758 n=6)
geomean                                   67.30Ki         67.57Ki       +0.40%
¹ all samples are equal

                                   │ baseline-bench.txt │        benchmark-results.txt        │
                                   │     allocs/op      │  allocs/op   vs base                │
EventStoreAppend_InMemory-4                  7.000 ± 0%    7.000 ± 0%       ~ (p=1.000 n=6) ¹
EventStoreAppend_SQLite-4                    53.00 ± 0%    53.00 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-10-4             125.0 ± 0%    125.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4             653.0 ± 0%    653.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4           1.306k ± 0%   1.306k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4           6.514k ± 0%   6.514k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-1000-4          13.02k ± 0%   13.02k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-10-4               382.0 ± 0%    382.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4              1.852k ± 0%   1.852k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4             3.681k ± 0%   3.681k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4             18.54k ± 0%   18.54k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-1000-4            37.29k ± 0%   37.29k ± 0%       ~ (p=1.000 n=6) ¹
geomean                                     1.162k        1.162k       +0.00%
¹ all samples are equal

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants