Skip to content

ci: stage benchmark authority and patch fixture x/text - #1038

Merged
intel352 merged 2 commits into
mainfrom
fix/benchmark-collector-stage
Oct 8, 2026
Merged

intel352 merged 2 commits into
mainfrom
fix/benchmark-collector-stage

Conversation

@intel352

@intel352 intel352 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Stage the complete unused benchmark collector authority and update the iac-pass/no-iac fixture requirements and checksum pairs to golang.org/x/text v0.42.0, matching the existing root dependency. This repairs their vulnerable v0.38.0 declarations. Collector and quiet logger adoption follows separately.

Local focused conformance, both-OS policy, trusted scan, vet, lint and repaired harness gates passed. Native Go1.27.1 evidence proves four affected fixture finding removals and retains 59 preexisting finding occurrences; two existing fixture tidy diagnostics remain.

PR-head Go1.26.5 tests passed. The CI policy fixture retains its known EVENT_NAME failure. Complete PR OSV old/new JSON differs only by the four intended fixture finding removals; differential SARIF has zero results. Independently reviewed full-object compatibility and 62 focused tests/subtests verify the seven historical advisory modified/related metadata changes at all 98 occurrences, retaining affected versions, finding identity and coverage.

One targeted exact-head benchmark rerun matches the baseline EPYC 7763 CPU and provides 117 paired metric comparisons across 39 series with six samples each. Independent full-raw review found no cost increase reaching the 20% threshold; the largest raw median increase is 11.7103%. The existing logger corrupts six Saga headers in each input, so only the recorded twelve parse diagnostics remain under the separately approved Task15 disposition. The original CPU-mismatched attempt is retained as failed comparison evidence. The legacy wrapper does not record benchstat's exit, and its artifact does not contain a direct restored-cache hash; Task16 and the fresh Task3 proof retain their direct saved/restored hash-equality requirements.

The reviewed source, tests and recorded diagnostic dispositions satisfy the implementation gates. GitHub's ordinary review requirement remains pending. Immediate-main native, hosted, benchmark, snapshot, image and cleanup receipts remain required before advancing to Task16.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

⏱ Benchmark Results

✅ No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:312: parsing iteration count: invalid syntax
baseline-bench.txt:312637: parsing iteration count: invalid syntax
baseline-bench.txt:595409: parsing iteration count: invalid syntax
baseline-bench.txt:876822: parsing iteration count: invalid syntax
baseline-bench.txt:1195117: parsing iteration count: invalid syntax
baseline-bench.txt:1516304: parsing iteration count: invalid syntax
benchmark-results.txt:312: parsing iteration count: invalid syntax
benchmark-results.txt:306367: parsing iteration count: invalid syntax
benchmark-results.txt:556115: parsing iteration count: invalid syntax
benchmark-results.txt:879585: parsing iteration count: invalid syntax
benchmark-results.txt:1180633: parsing iteration count: invalid syntax
benchmark-results.txt:1494329: 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               7.631m ± 59%   8.524m ± 61%       ~ (p=0.310 n=6)
ComponentLoad-4                     3.657m ± 12%   3.794m ±  2%       ~ (p=0.065 n=6)
ComponentExecute-4                  1.981µ ±  1%   2.032µ ±  1%  +2.57% (p=0.002 n=6)
PoolContention/workers-1-4          1.106µ ±  2%   1.124µ ±  1%       ~ (p=0.093 n=6)
PoolContention/workers-2-4          1.101µ ±  2%   1.115µ ±  3%       ~ (p=0.167 n=6)
PoolContention/workers-4-4          1.100µ ±  1%   1.119µ ± 11%  +1.73% (p=0.002 n=6)
PoolContention/workers-8-4          1.106µ ±  1%   1.123µ ±  4%  +1.49% (p=0.006 n=6)
PoolContention/workers-16-4         1.112µ ±  2%   1.121µ ±  1%       ~ (p=0.258 n=6)
ComponentLifecycle-4                3.623m ±  1%   3.772m ±  2%  +4.11% (p=0.002 n=6)
SourceValidation-4                  2.330µ ±  1%   2.345µ ±  1%  +0.62% (p=0.041 n=6)
RegistryConcurrent-4                803.2n ±  2%   848.0n ±  4%  +5.58% (p=0.004 n=6)
LoaderLoadFromString-4              3.631m ±  0%   3.750m ±  2%  +3.29% (p=0.002 n=6)
geomean                             19.02µ         19.62µ        +3.17%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               2.027Mi ± 0%   2.027Mi ± 0%       ~ (p=0.981 n=6)
ComponentLoad-4                     2.180Mi ± 0%   2.180Mi ± 0%       ~ (p=0.485 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=1.000 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.329 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 ± 3%   295.7n ± 2%       ~ (p=0.169 n=6)
CircuitBreakerExecution_Success-4          22.53n ± 0%   22.52n ± 0%       ~ (p=0.474 n=6)
CircuitBreakerExecution_Failure-4          66.44n ± 1%   66.73n ± 0%       ~ (p=0.327 n=6)
geomean                                    75.76n        76.30n       +0.71%

                                  │ 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              314.0n ± 34%   317.4n ± 36%       ~ (p=0.937 n=6)
IaCStateBackend_GRPC-4                   9.135m ±  3%   9.221m ±  2%       ~ (p=0.394 n=6)
JQTransform_Simple-4                     676.4n ± 36%   681.1n ± 37%       ~ (p=0.818 n=6)
JQTransform_ObjectConstruction-4         1.553µ ±  2%   1.558µ ±  1%       ~ (p=0.615 n=6)
JQTransform_ArraySelect-4                3.470µ ±  1%   3.503µ ±  1%       ~ (p=0.232 n=6)
JQTransform_Complex-4                    39.19µ ±  1%   39.60µ ±  1%  +1.06% (p=0.015 n=6)
JQTransform_Throughput-4                 1.871µ ±  1%   1.876µ ±  0%       ~ (p=0.405 n=6)
SSEPublishDelivery-4                     69.65n ±  1%   69.22n ±  1%       ~ (p=0.065 n=6)
geomean                                  3.899µ         3.922µ        +0.59%

                                 │ 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.825Mi ± 12%     5.928Mi ± 9%       ~ (p=0.394 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.31Ki ±  0%     16.31Ki ± 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.22%               ²
¹ 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.836k ± 0%     6.832k ± 0%       ~ (p=0.290 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                    328.0 ± 0%      328.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.131µ ± 9%   1.093µ ± 23%       ~ (p=0.132 n=6)
SchemaValidation_AllFields-4                 1.661µ ± 5%   1.659µ ±  3%       ~ (p=0.619 n=6)
SchemaValidation_FormatValidation-4          1.580µ ± 3%   1.588µ ±  2%       ~ (p=0.589 n=6)
SchemaValidation_ManySchemas-4               1.807µ ± 1%   1.801µ ±  2%       ~ (p=0.667 n=6)
geomean                                      1.522µ        1.509µ        -0.84%

                                    │ 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.353µ ± 18%   1.184µ ± 17%       ~ (p=0.240 n=6)
EventStoreAppend_SQLite-4                  1.148m ±  3%   1.125m ±  3%  -2.00% (p=0.026 n=6)
GetTimeline_InMemory/events-10-4           14.34µ ±  4%   14.49µ ±  6%       ~ (p=0.310 n=6)
GetTimeline_InMemory/events-50-4           82.40µ ±  4%   79.94µ ± 22%       ~ (p=0.180 n=6)
GetTimeline_InMemory/events-100-4          133.5µ ± 25%   124.6µ ±  0%  -6.67% (p=0.026 n=6)
GetTimeline_InMemory/events-500-4          645.4µ ±  0%   659.4µ ± 18%       ~ (p=0.394 n=6)
GetTimeline_InMemory/events-1000-4         1.314m ±  1%   1.373m ± 10%  +4.50% (p=0.002 n=6)
GetTimeline_SQLite/events-10-4             70.66µ ±  1%   74.76µ ±  1%  +5.80% (p=0.002 n=6)
GetTimeline_SQLite/events-50-4             203.3µ ±  1%   212.5µ ±  1%  +4.51% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4            364.4µ ±  0%   381.7µ ±  1%  +4.74% (p=0.002 n=6)
GetTimeline_SQLite/events-500-4            1.642m ±  2%   1.706m ±  1%  +3.93% (p=0.002 n=6)
GetTimeline_SQLite/events-1000-4           3.241m ±  1%   3.362m ±  1%  +3.74% (p=0.002 n=6)
geomean                                    205.8µ         206.6µ        +0.37%

                                   │ baseline-bench.txt │        benchmark-results.txt         │
                                   │        B/op        │     B/op      vs base                │
EventStoreAppend_InMemory-4                  784.0 ± 6%     786.0 ± 8%       ~ (p=0.671 n=6)
EventStoreAppend_SQLite-4                  2.056Ki ± 2%   2.052Ki ± 2%       ~ (p=0.262 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=0.182 n=6)
GetTimeline_InMemory/events-1000-4         944.3Ki ± 0%   944.3Ki ± 0%       ~ (p=1.000 n=6)
GetTimeline_SQLite/events-10-4             15.59Ki ± 0%   15.59Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4             80.56Ki ± 0%   80.56Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4            162.1Ki ± 0%   162.1Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4            777.4Ki ± 0%   777.4Ki ± 0%       ~ (p=0.545 n=6)
GetTimeline_SQLite/events-1000-4           1.503Mi ± 0%   1.503Mi ± 0%       ~ (p=0.394 n=6)
geomean                                    65.28Ki        65.29Ki       +0.01%
¹ 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                    55.00 ± 0%    55.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               316.0 ± 0%    316.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4              1.486k ± 0%   1.486k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4             2.940k ± 0%   2.940k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4             14.79k ± 0%   14.79k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-1000-4            29.80k ± 0%   29.80k ± 0%       ~ (p=1.000 n=6) ¹
geomean                                     1.065k        1.065k       +0.00%
¹ all samples are equal

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

@intel352
intel352 marked this pull request as ready for review October 7, 2026 23:24
@intel352
intel352 merged commit 15683f0 into main Oct 8, 2026
27 of 28 checks passed
@intel352
intel352 deleted the fix/benchmark-collector-stage branch October 8, 2026 00:02
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.

1 participant