Skip to content

fix: resolve CI lint failures blocking investigate-jsonschema-constraint branch#563

Merged
intel352 merged 4 commits into
mainfrom
copilot/investigate-jsonschema-constraint
May 6, 2026
Merged

fix: resolve CI lint failures blocking investigate-jsonschema-constraint branch#563
intel352 merged 4 commits into
mainfrom
copilot/investigate-jsonschema-constraint

Conversation

Copilot AI commented May 6, 2026

Copy link
Copy Markdown
Contributor

Surfaced during investigation of additionalProperties: false enforcement in the plugin SDK manifest schema (jsonschema/v6 does honor the constraint — all regression tests in plugin/sdk/manifest_test.go pass). Two unrelated lint errors were blocking CI on this branch.

Changes

  • cmd/iac-codemod/refactor_plan.go — Rephrased two // generates: <stmt> comments that gocritic's commentedOutCode check was flagging: generates: is a valid Go label, making the comment parse as a labeled statement. Changed to prose descriptions.

  • cmd/wfctl/infra_provider_dispatch_test.go — The specNames helper was defined but never called; the plan-path and apply-path closures each inlined an equivalent make/for loop. Replaced both inline loops with specNames(specs), eliminating the duplication and satisfying the unused linter.

Copilot AI requested review from Copilot and removed request for Copilot May 6, 2026 04:43
Copilot AI linked an issue May 6, 2026 that may be closed by this pull request
@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:260: parsing iteration count: invalid syntax
baseline-bench.txt:314262: parsing iteration count: invalid syntax
baseline-bench.txt:605197: parsing iteration count: invalid syntax
baseline-bench.txt:890078: parsing iteration count: invalid syntax
baseline-bench.txt:1174659: parsing iteration count: invalid syntax
baseline-bench.txt:1480249: parsing iteration count: invalid syntax
benchmark-results.txt:260: parsing iteration count: invalid syntax
benchmark-results.txt:330048: parsing iteration count: invalid syntax
benchmark-results.txt:617956: parsing iteration count: invalid syntax
benchmark-results.txt:956024: parsing iteration count: invalid syntax
benchmark-results.txt:1279245: parsing iteration count: invalid syntax
benchmark-results.txt:1628089: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ benchmark-results.txt │
                            │        sec/op         │
InterpreterCreation-4                  6.765m ± 58%
ComponentLoad-4                        3.609m ± 11%
ComponentExecute-4                     1.932µ ±  1%
PoolContention/workers-1-4             1.082µ ±  2%
PoolContention/workers-2-4             1.078µ ±  1%
PoolContention/workers-4-4             1.080µ ±  1%
PoolContention/workers-8-4             1.087µ ±  1%
PoolContention/workers-16-4            1.090µ ±  2%
ComponentLifecycle-4                   3.641m ±  1%
SourceValidation-4                     2.272µ ±  1%
RegistryConcurrent-4                   802.6n ±  3%
LoaderLoadFromString-4                 3.680m ±  2%
geomean                                18.60µ

                            │ benchmark-results.txt │
                            │         B/op          │
InterpreterCreation-4                  2.027Mi ± 0%
ComponentLoad-4                        2.180Mi ± 0%
ComponentExecute-4                     1.203Ki ± 0%
PoolContention/workers-1-4             1.203Ki ± 0%
PoolContention/workers-2-4             1.203Ki ± 0%
PoolContention/workers-4-4             1.203Ki ± 0%
PoolContention/workers-8-4             1.203Ki ± 0%
PoolContention/workers-16-4            1.203Ki ± 0%
ComponentLifecycle-4                   2.183Mi ± 0%
SourceValidation-4                     1.984Ki ± 0%
RegistryConcurrent-4                   1.133Ki ± 0%
LoaderLoadFromString-4                 2.182Mi ± 0%
geomean                                15.25Ki

                            │ benchmark-results.txt │
                            │       allocs/op       │
InterpreterCreation-4                   15.68k ± 0%
ComponentLoad-4                         18.02k ± 0%
ComponentExecute-4                       25.00 ± 0%
PoolContention/workers-1-4               25.00 ± 0%
PoolContention/workers-2-4               25.00 ± 0%
PoolContention/workers-4-4               25.00 ± 0%
PoolContention/workers-8-4               25.00 ± 0%
PoolContention/workers-16-4              25.00 ± 0%
ComponentLifecycle-4                    18.07k ± 0%
SourceValidation-4                       32.00 ± 0%
RegistryConcurrent-4                     2.000 ± 0%
LoaderLoadFromString-4                  18.06k ± 0%
geomean                                  183.3

cpu: AMD EPYC 9V74 80-Core Processor                
                            │ baseline-bench.txt │
                            │       sec/op       │
InterpreterCreation-4              3.269m ± 189%
ComponentLoad-4                    3.487m ±   2%
ComponentExecute-4                 1.826µ ±   1%
PoolContention/workers-1-4         1.013µ ±   1%
PoolContention/workers-2-4         1.015µ ±   4%
PoolContention/workers-4-4         1.020µ ±   2%
PoolContention/workers-8-4         1.024µ ±   2%
PoolContention/workers-16-4        1.028µ ±   1%
ComponentLifecycle-4               3.511m ±   0%
SourceValidation-4                 2.075µ ±   1%
RegistryConcurrent-4               756.8n ±   4%
LoaderLoadFromString-4             3.575m ±   1%
geomean                            16.65µ

                            │ baseline-bench.txt │
                            │        B/op        │
InterpreterCreation-4               2.027Mi ± 0%
ComponentLoad-4                     2.180Mi ± 0%
ComponentExecute-4                  1.203Ki ± 0%
PoolContention/workers-1-4          1.203Ki ± 0%
PoolContention/workers-2-4          1.203Ki ± 0%
PoolContention/workers-4-4          1.203Ki ± 0%
PoolContention/workers-8-4          1.203Ki ± 0%
PoolContention/workers-16-4         1.203Ki ± 0%
ComponentLifecycle-4                2.183Mi ± 0%
SourceValidation-4                  1.984Ki ± 0%
RegistryConcurrent-4                1.133Ki ± 0%
LoaderLoadFromString-4              2.182Mi ± 0%
geomean                             15.25Ki

                            │ baseline-bench.txt │
                            │     allocs/op      │
InterpreterCreation-4                15.68k ± 0%
ComponentLoad-4                      18.02k ± 0%
ComponentExecute-4                    25.00 ± 0%
PoolContention/workers-1-4            25.00 ± 0%
PoolContention/workers-2-4            25.00 ± 0%
PoolContention/workers-4-4            25.00 ± 0%
PoolContention/workers-8-4            25.00 ± 0%
PoolContention/workers-16-4           25.00 ± 0%
ComponentLifecycle-4                 18.07k ± 0%
SourceValidation-4                    32.00 ± 0%
RegistryConcurrent-4                  2.000 ± 0%
LoaderLoadFromString-4               18.06k ± 0%
geomean                               183.3

pkg: github.com/GoCodeAlone/workflow/middleware
cpu: AMD EPYC 7763 64-Core Processor                
                                  │ benchmark-results.txt │
                                  │        sec/op         │
CircuitBreakerDetection-4                     286.6n ± 0%
CircuitBreakerExecution_Success-4             21.54n ± 0%
CircuitBreakerExecution_Failure-4             66.04n ± 1%
geomean                                       74.15n

                                  │ benchmark-results.txt │
                                  │         B/op          │
CircuitBreakerDetection-4                    144.0 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

                                  │ benchmark-results.txt │
                                  │       allocs/op       │
CircuitBreakerDetection-4                    1.000 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                  │ baseline-bench.txt │
                                  │       sec/op       │
CircuitBreakerDetection-4                  296.7n ± 4%
CircuitBreakerExecution_Success-4          22.67n ± 2%
CircuitBreakerExecution_Failure-4          70.99n ± 1%
geomean                                    78.16n

                                  │ baseline-bench.txt │
                                  │        B/op        │
CircuitBreakerDetection-4                 144.0 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │
                                  │     allocs/op      │
CircuitBreakerDetection-4                 1.000 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
cpu: AMD EPYC 7763 64-Core Processor                
                                 │ benchmark-results.txt │
                                 │        sec/op         │
JQTransform_Simple-4                        880.3n ± 33%
JQTransform_ObjectConstruction-4            1.460µ ±  1%
JQTransform_ArraySelect-4                   3.324µ ±  3%
JQTransform_Complex-4                       39.06µ ±  2%
JQTransform_Throughput-4                    1.808µ ±  1%
SSEPublishDelivery-4                        73.11n ±  0%
geomean                                     1.675µ

                                 │ benchmark-results.txt │
                                 │         B/op          │
JQTransform_Simple-4                      1.273Ki ± 0%
JQTransform_ObjectConstruction-4          1.773Ki ± 0%
JQTransform_ArraySelect-4                 2.625Ki ± 0%
JQTransform_Complex-4                     16.22Ki ± 0%
JQTransform_Throughput-4                  1.984Ki ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                 │ benchmark-results.txt │
                                 │       allocs/op       │
JQTransform_Simple-4                        10.00 ± 0%
JQTransform_ObjectConstruction-4            15.00 ± 0%
JQTransform_ArraySelect-4                   30.00 ± 0%
JQTransform_Complex-4                       324.0 ± 0%
JQTransform_Throughput-4                    17.00 ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                 │ baseline-bench.txt │
                                 │       sec/op       │
JQTransform_Simple-4                     933.9n ± 19%
JQTransform_ObjectConstruction-4         1.423µ ±  1%
JQTransform_ArraySelect-4                3.395µ ±  1%
JQTransform_Complex-4                    41.52µ ±  1%
JQTransform_Throughput-4                 1.732µ ±  1%
SSEPublishDelivery-4                     64.30n ± 33%
geomean                                  1.659µ

                                 │ baseline-bench.txt │
                                 │        B/op        │
JQTransform_Simple-4                   1.273Ki ± 0%
JQTransform_ObjectConstruction-4       1.773Ki ± 0%
JQTransform_ArraySelect-4              2.625Ki ± 0%
JQTransform_Complex-4                  16.22Ki ± 0%
JQTransform_Throughput-4               1.984Ki ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │
                                 │     allocs/op      │
JQTransform_Simple-4                     10.00 ± 0%
JQTransform_ObjectConstruction-4         15.00 ± 0%
JQTransform_ArraySelect-4                30.00 ± 0%
JQTransform_Complex-4                    324.0 ± 0%
JQTransform_Throughput-4                 17.00 ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ benchmark-results.txt │
                                    │        sec/op         │
SchemaValidation_Simple-4                      1.090µ ± 20%
SchemaValidation_AllFields-4                   1.664µ ±  5%
SchemaValidation_FormatValidation-4            1.575µ ±  1%
SchemaValidation_ManySchemas-4                 1.804µ ±  4%
geomean                                        1.507µ

                                    │ benchmark-results.txt │
                                    │         B/op          │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

                                    │ benchmark-results.txt │
                                    │       allocs/op       │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                    │ baseline-bench.txt │
                                    │       sec/op       │
SchemaValidation_Simple-4                    1.105µ ± 2%
SchemaValidation_AllFields-4                 1.690µ ± 6%
SchemaValidation_FormatValidation-4          1.599µ ± 3%
SchemaValidation_ManySchemas-4               1.619µ ± 2%
geomean                                      1.483µ

                                    │ baseline-bench.txt │
                                    │        B/op        │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │
                                    │     allocs/op      │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
cpu: AMD EPYC 7763 64-Core Processor                
                                   │ benchmark-results.txt │
                                   │        sec/op         │
EventStoreAppend_InMemory-4                   1.233µ ± 41%
EventStoreAppend_SQLite-4                     1.257m ±  4%
GetTimeline_InMemory/events-10-4              13.76µ ±  2%
GetTimeline_InMemory/events-50-4              77.41µ ±  2%
GetTimeline_InMemory/events-100-4             159.3µ ±  3%
GetTimeline_InMemory/events-500-4             637.3µ ±  1%
GetTimeline_InMemory/events-1000-4            1.291m ±  1%
GetTimeline_SQLite/events-10-4                107.5µ ±  1%
GetTimeline_SQLite/events-50-4                248.7µ ±  1%
GetTimeline_SQLite/events-100-4               419.2µ ±  0%
GetTimeline_SQLite/events-500-4               1.792m ±  0%
GetTimeline_SQLite/events-1000-4              3.492m ±  0%
geomean                                       223.1µ

                                   │ benchmark-results.txt │
                                   │         B/op          │
EventStoreAppend_InMemory-4                     788.5 ± 8%
EventStoreAppend_SQLite-4                     1.983Ki ± 2%
GetTimeline_InMemory/events-10-4              7.953Ki ± 0%
GetTimeline_InMemory/events-50-4              46.62Ki ± 0%
GetTimeline_InMemory/events-100-4             94.48Ki ± 0%
GetTimeline_InMemory/events-500-4             472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4            944.3Ki ± 0%
GetTimeline_SQLite/events-10-4                16.74Ki ± 0%
GetTimeline_SQLite/events-50-4                87.14Ki ± 0%
GetTimeline_SQLite/events-100-4               175.4Ki ± 0%
GetTimeline_SQLite/events-500-4               846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4              1.639Mi ± 0%
geomean                                       67.33Ki

                                   │ benchmark-results.txt │
                                   │       allocs/op       │
EventStoreAppend_InMemory-4                     7.000 ± 0%
EventStoreAppend_SQLite-4                       53.00 ± 0%
GetTimeline_InMemory/events-10-4                125.0 ± 0%
GetTimeline_InMemory/events-50-4                653.0 ± 0%
GetTimeline_InMemory/events-100-4              1.306k ± 0%
GetTimeline_InMemory/events-500-4              6.514k ± 0%
GetTimeline_InMemory/events-1000-4             13.02k ± 0%
GetTimeline_SQLite/events-10-4                  382.0 ± 0%
GetTimeline_SQLite/events-50-4                 1.852k ± 0%
GetTimeline_SQLite/events-100-4                3.681k ± 0%
GetTimeline_SQLite/events-500-4                18.54k ± 0%
GetTimeline_SQLite/events-1000-4               37.29k ± 0%
geomean                                        1.162k

cpu: AMD EPYC 9V74 80-Core Processor                
                                   │ baseline-bench.txt │
                                   │       sec/op       │
EventStoreAppend_InMemory-4                1.161µ ± 19%
EventStoreAppend_SQLite-4                  1.145m ± 10%
GetTimeline_InMemory/events-10-4           12.51µ ±  3%
GetTimeline_InMemory/events-50-4           55.96µ ± 27%
GetTimeline_InMemory/events-100-4          111.8µ ±  1%
GetTimeline_InMemory/events-500-4          569.5µ ±  2%
GetTimeline_InMemory/events-1000-4         1.165m ±  1%
GetTimeline_SQLite/events-10-4             86.15µ ±  1%
GetTimeline_SQLite/events-50-4             226.3µ ±  1%
GetTimeline_SQLite/events-100-4            394.8µ ±  4%
GetTimeline_SQLite/events-500-4            1.720m ±  1%
GetTimeline_SQLite/events-1000-4           3.363m ±  1%
geomean                                    195.3µ

                                   │ baseline-bench.txt │
                                   │        B/op        │
EventStoreAppend_InMemory-4                  790.5 ± 7%
EventStoreAppend_SQLite-4                  1.984Ki ± 2%
GetTimeline_InMemory/events-10-4           7.953Ki ± 0%
GetTimeline_InMemory/events-50-4           46.62Ki ± 0%
GetTimeline_InMemory/events-100-4          94.48Ki ± 0%
GetTimeline_InMemory/events-500-4          472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4         944.3Ki ± 0%
GetTimeline_SQLite/events-10-4             16.74Ki ± 0%
GetTimeline_SQLite/events-50-4             87.14Ki ± 0%
GetTimeline_SQLite/events-100-4            175.4Ki ± 0%
GetTimeline_SQLite/events-500-4            846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4           1.639Mi ± 0%
geomean                                    67.35Ki

                                   │ baseline-bench.txt │
                                   │     allocs/op      │
EventStoreAppend_InMemory-4                  7.000 ± 0%
EventStoreAppend_SQLite-4                    53.00 ± 0%
GetTimeline_InMemory/events-10-4             125.0 ± 0%
GetTimeline_InMemory/events-50-4             653.0 ± 0%
GetTimeline_InMemory/events-100-4           1.306k ± 0%
GetTimeline_InMemory/events-500-4           6.514k ± 0%
GetTimeline_InMemory/events-1000-4          13.02k ± 0%
GetTimeline_SQLite/events-10-4               382.0 ± 0%
GetTimeline_SQLite/events-50-4              1.852k ± 0%
GetTimeline_SQLite/events-100-4             3.681k ± 0%
GetTimeline_SQLite/events-500-4             18.54k ± 0%
GetTimeline_SQLite/events-1000-4            37.29k ± 0%
geomean                                     1.162k

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

Copilot AI requested review from Copilot and removed request for Copilot May 6, 2026 05:02
Copilot AI changed the title [WIP] Investigate additionalProperties enforcement in plugin SDK schema fix: resolve CI lint failures blocking investigate-jsonschema-constraint branch May 6, 2026
Copilot AI requested a review from intel352 May 6, 2026 05:04
@intel352 intel352 marked this pull request as ready for review May 6, 2026 06:00
Copilot AI review requested due to automatic review settings May 6, 2026 06:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR resolves two CI lint failures encountered while investigating stricter JSON Schema additionalProperties: false enforcement in the plugin SDK manifest schema, without changing runtime behavior.

Changes:

  • Reworded two comments in the IaC codemod refactor to avoid gocritic’s commentedOutCode false-positive on generates: (parsed as a Go label).
  • Removed duplicated specs -> []string{name} logic in an infra provider dispatch test by reusing an existing specNames helper, eliminating an unused linter violation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
cmd/iac-codemod/refactor_plan.go Rephrases “generates:” comments to prose to avoid gocritic label parsing.
cmd/wfctl/infra_provider_dispatch_test.go Uses specNames(specs) helper in both plan/apply seams to remove duplication and fix unused-helper linting.

@intel352

intel352 commented May 6, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

…sonschema-constraint

# Conflicts:
#	cmd/iac-codemod/refactor_plan.go

Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>

Copilot AI commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

@copilot resolve the merge conflicts in this pull request

Merge conflicts resolved in 1358f53. The conflict was in cmd/iac-codemod/refactor_plan.go where both this branch and main independently rephrased the // generates: comments to fix the gocritic commentedOutCode lint issue — I kept main's wording (// emits an assignment: ... / // emits a return statement: ...).

Copilot AI review requested due to automatic review settings May 6, 2026 13:41
@intel352 intel352 merged commit edb7521 into main May 6, 2026
11 checks passed
@intel352 intel352 deleted the copilot/investigate-jsonschema-constraint branch May 6, 2026 13:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment on lines +251 to 252
planCalls = append(planCalls, capturedPlanCall{provType: currentProvType, specNames: specNames(specs)})
return interfaces.IaCPlan{}, nil
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.

Plugin SDK manifest schema additionalProperties:false not enforced

3 participants