Skip to content

feat(iac): workflow#640 Phase 5 — remove legacy wfctlhelpers.ApplyPlan#743

Merged
intel352 merged 3 commits into
mainfrom
feat/640-phase5-remove-applyplan-1779286507
May 20, 2026
Merged

feat(iac): workflow#640 Phase 5 — remove legacy wfctlhelpers.ApplyPlan#743
intel352 merged 3 commits into
mainfrom
feat/640-phase5-remove-applyplan-1779286507

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Phase 5 of #640. Removes the deprecated ApplyPlan wrapper; migrates 10 test files to ApplyPlanWithHooks. Full suite green.

Per docs/migrations/2026-05-16-v2-lifecycle-phase1-inventory.md.

Phase 1 (PR #691) + Phase 2 (PR #694) + Phase 2.5 (PR #697) +
Phase 3 (per-plugin migration) all shipped. Production code has
been on ApplyPlanWithHooks for weeks. This PR closes the loop by
removing the deprecated symbol.

Changes:

iac/wfctlhelpers/apply.go:
- Delete func ApplyPlan (the 2-line wrapper that delegated to
  applyPlanWithEnvProvider with nil hooks).
- Keep applyPlanWithEnvProvider as the postcondition-test seam —
  retained for apply_postcondition_test.go's panicky-env injection.

iac/wfctlhelpers/*_test.go:
- 10 test files migrated from `ApplyPlan(ctx, p, plan)` to
  `ApplyPlanWithHooks(ctx, p, plan, ApplyPlanHooks{})`. Empty-hooks
  form is semantically identical to the pre-deletion ApplyPlan call.

docs/migrations/2026-05-16-v2-lifecycle-phase1-inventory.md:
- Phase 5 marker flipped to SHIPPED.

Verification:
  GOWORK=off go test ./... -count=1 (all green)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 20, 2026 14:21
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

Removes the legacy iac/wfctlhelpers.ApplyPlan wrapper as part of workflow#640 Phase 5, standardizing all in-repo callers on the v2 action lifecycle entry point (ApplyPlanWithHooks) so action-boundary hook semantics are the only supported apply path going forward.

Changes:

  • Deleted deprecated wfctlhelpers.ApplyPlan and retained only the v2 hook-based apply entry point.
  • Migrated 10 internal IaC apply test files from ApplyPlan(...) to ApplyPlanWithHooks(..., ApplyPlanHooks{}).
  • Updated the Phase 1 migration inventory doc to mark Phase 5 as shipped (but needs follow-up wording fixes for consistency).

Reviewed changes

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

Show a summary per file
File Description
iac/wfctlhelpers/apply.go Removes legacy ApplyPlan; keeps unexported env-provider seam and updates nearby commentary.
iac/wfctlhelpers/apply_update_delete_test.go Switches tests to ApplyPlanWithHooks(..., ApplyPlanHooks{}).
iac/wfctlhelpers/apply_test.go Switches tests to ApplyPlanWithHooks; one failure message still references ApplyPlan.
iac/wfctlhelpers/apply_replace_test.go Switches tests to ApplyPlanWithHooks; comments/messages still reference ApplyPlan.
iac/wfctlhelpers/apply_replace_cascade_test.go Switches tests to ApplyPlanWithHooks(..., ApplyPlanHooks{}).
iac/wfctlhelpers/apply_postcondition_test.go Switches tests to ApplyPlanWithHooks(..., ApplyPlanHooks{}).
iac/wfctlhelpers/apply_jit_test.go Switches tests to ApplyPlanWithHooks(..., ApplyPlanHooks{}).
iac/wfctlhelpers/apply_create_test.go Switches tests to ApplyPlanWithHooks(..., ApplyPlanHooks{}).
docs/migrations/2026-05-16-v2-lifecycle-phase1-inventory.md Marks Phase 5 as shipped, but has internal wording inconsistencies to resolve.
Comments suppressed due to low confidence (1)

iac/wfctlhelpers/apply_replace_test.go:241

  • The test still refers to the removed ApplyPlan symbol in the explanatory comment and failure message. Please update these references to ApplyPlanWithHooks so future failures/debugging don’t point to a non-existent API.
		// ApplyPlan's loop check catches the cancellation at the next
		// iteration, but the per-action ctx check inside doReplace
		// fires first. Either path yields a per-action error rather
		// than a top-level error from this single-action plan.
		t.Fatalf("ApplyPlan should not surface top-level error: %v", err)

Comment thread docs/migrations/2026-05-16-v2-lifecycle-phase1-inventory.md Outdated
Comment thread iac/wfctlhelpers/apply.go
@intel352
Copy link
Copy Markdown
Contributor Author

intel352 commented May 20, 2026

Audit against workflow#640/BMW v2 verification:

Follow-up audit items are now addressed on this PR.

Verified fixes now present:

  1. plugin/external/proto/iac.proto and regenerated iac.pb.go no longer describe empty/unrecognized compute-plan versions as v1 fallback behavior, and no longer point v2 at the removed wfctlhelpers.ApplyPlan wrapper.
  2. plugin/sdk/manifest.go and plugin/sdk/manifest_schema.json now distinguish advisory manifest metadata from runtime typed CapabilitiesResponse.compute_plan_version enforcement.
  3. docs/migrations/2026-05-16-v2-lifecycle-phase1-inventory.md has been rewritten as final-state/history instead of a pending migration inventory.
  4. Stale ApplyPlan comments/failure strings in touched tests/helpers were updated.

BMW consumer-side verification remains represented by the app pinning Workflow/wfctl v0.60-era behavior and using wfctl infra apply; BMW separately validates against the v2-only capability gate in its own PR.

Local verification I ran after these fixes: go test ./iac/wfctlhelpers ./plugin/sdk -count=1, go test ./plugin/sdk -count=1, and git diff --check. GitHub checks are green as of the latest refresh. Copilot review threads are resolved.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 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

github-actions Bot commented May 20, 2026

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:276: parsing iteration count: invalid syntax
baseline-bench.txt:278518: parsing iteration count: invalid syntax
baseline-bench.txt:521276: parsing iteration count: invalid syntax
baseline-bench.txt:975753: parsing iteration count: invalid syntax
baseline-bench.txt:1267765: parsing iteration count: invalid syntax
baseline-bench.txt:1598600: parsing iteration count: invalid syntax
benchmark-results.txt:276: parsing iteration count: invalid syntax
benchmark-results.txt:341140: parsing iteration count: invalid syntax
benchmark-results.txt:662531: parsing iteration count: invalid syntax
benchmark-results.txt:915576: parsing iteration count: invalid syntax
benchmark-results.txt:1215253: parsing iteration count: invalid syntax
benchmark-results.txt:1552799: 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                  9.483m ± 67%
ComponentLoad-4                        3.630m ±  8%
ComponentExecute-4                     1.948µ ±  1%
PoolContention/workers-1-4             1.100µ ±  2%
PoolContention/workers-2-4             1.095µ ±  2%
PoolContention/workers-4-4             1.093µ ±  2%
PoolContention/workers-8-4             1.082µ ±  2%
PoolContention/workers-16-4            1.101µ ±  2%
ComponentLifecycle-4                   3.734m ±  1%
SourceValidation-4                     2.398µ ±  1%
RegistryConcurrent-4                   841.6n ±  2%
LoaderLoadFromString-4                 3.679m ±  2%
geomean                                19.44µ

                            │ 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               6.081m ± 65%
ComponentLoad-4                     3.561m ±  4%
ComponentExecute-4                  1.828µ ±  2%
PoolContention/workers-1-4          1.023µ ±  2%
PoolContention/workers-2-4          1.019µ ±  1%
PoolContention/workers-4-4          1.018µ ±  1%
PoolContention/workers-8-4          1.030µ ±  1%
PoolContention/workers-16-4         1.026µ ±  1%
ComponentLifecycle-4                3.609m ±  1%
SourceValidation-4                  2.115µ ±  1%
RegistryConcurrent-4                753.9n ±  5%
LoaderLoadFromString-4              3.635m ±  1%
geomean                             17.67µ

                            │ 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.2n ± 0%
CircuitBreakerExecution_Success-4             21.52n ± 0%
CircuitBreakerExecution_Failure-4             66.01n ± 0%
geomean                                       74.08n

                                  │ 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                  299.9n ± 7%
CircuitBreakerExecution_Success-4          22.68n ± 0%
CircuitBreakerExecution_Failure-4          71.98n ± 0%
geomean                                    78.81n

                                  │ 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         │
IaCStateBackend_InProcess-4                 306.9n ± 27%
IaCStateBackend_GRPC-4                      9.493m ±  3%
JQTransform_Simple-4                        649.6n ± 38%
JQTransform_ObjectConstruction-4            1.480µ ±  2%
JQTransform_ArraySelect-4                   3.429µ ±  0%
JQTransform_Complex-4                       38.73µ ±  1%
JQTransform_Throughput-4                    1.828µ ±  1%
SSEPublishDelivery-4                        71.54n ±  0%
geomean                                     3.854µ

                                 │ benchmark-results.txt │
                                 │         B/op          │
IaCStateBackend_InProcess-4                 416.0 ± 0%
IaCStateBackend_GRPC-4                    5.823Mi ± 8%
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       │
IaCStateBackend_InProcess-4                 2.000 ± 0%
IaCStateBackend_GRPC-4                     6.838k ± 0%
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       │
IaCStateBackend_InProcess-4              300.1n ± 28%
IaCStateBackend_GRPC-4                   10.42m ±  1%
JQTransform_Simple-4                     656.6n ± 33%
JQTransform_ObjectConstruction-4         1.482µ ±  1%
JQTransform_ArraySelect-4                3.631µ ±  1%
JQTransform_Complex-4                    42.99µ ±  1%
JQTransform_Throughput-4                 1.831µ ±  3%
SSEPublishDelivery-4                     64.94n ±  3%
geomean                                  3.926µ

                                 │ baseline-bench.txt │
                                 │        B/op        │
IaCStateBackend_InProcess-4             416.0 ±  0%
IaCStateBackend_GRPC-4                5.858Mi ± 11%
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      │
IaCStateBackend_InProcess-4              2.000 ± 0%
IaCStateBackend_GRPC-4                  6.869k ± 0%
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.094µ ± 23%
SchemaValidation_AllFields-4                   1.661µ ±  1%
SchemaValidation_FormatValidation-4            1.601µ ±  1%
SchemaValidation_ManySchemas-4                 1.853µ ±  3%
geomean                                        1.523µ

                                    │ 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.092µ ±  3%
SchemaValidation_AllFields-4                1.627µ ± 11%
SchemaValidation_FormatValidation-4         1.564µ ±  1%
SchemaValidation_ManySchemas-4              1.602µ ±  2%
geomean                                     1.452µ

                                    │ 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.210µ ± 30%
EventStoreAppend_SQLite-4                     1.312m ±  6%
GetTimeline_InMemory/events-10-4              13.54µ ±  1%
GetTimeline_InMemory/events-50-4              76.17µ ±  4%
GetTimeline_InMemory/events-100-4             124.2µ ±  1%
GetTimeline_InMemory/events-500-4             643.0µ ±  1%
GetTimeline_InMemory/events-1000-4            1.335m ±  1%
GetTimeline_SQLite/events-10-4                107.2µ ±  1%
GetTimeline_SQLite/events-50-4                250.9µ ±  1%
GetTimeline_SQLite/events-100-4               424.8µ ±  1%
GetTimeline_SQLite/events-500-4               1.825m ±  3%
GetTimeline_SQLite/events-1000-4              3.510m ±  1%
geomean                                       219.9µ

                                   │ benchmark-results.txt │
                                   │         B/op          │
EventStoreAppend_InMemory-4                    776.5 ± 11%
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.24Ki

                                   │ 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.059µ ± 15%
EventStoreAppend_SQLite-4                  1.067m ±  3%
GetTimeline_InMemory/events-10-4           12.68µ ±  3%
GetTimeline_InMemory/events-50-4           69.96µ ±  2%
GetTimeline_InMemory/events-100-4          140.2µ ± 20%
GetTimeline_InMemory/events-500-4          573.7µ ±  1%
GetTimeline_InMemory/events-1000-4         1.153m ±  1%
GetTimeline_SQLite/events-10-4             87.65µ ±  1%
GetTimeline_SQLite/events-50-4             227.3µ ±  1%
GetTimeline_SQLite/events-100-4            394.6µ ±  1%
GetTimeline_SQLite/events-500-4            1.706m ±  1%
GetTimeline_SQLite/events-1000-4           3.303m ±  1%
geomean                                    200.1µ

                                   │ baseline-bench.txt │
                                   │        B/op        │
EventStoreAppend_InMemory-4                  750.0 ± 6%
EventStoreAppend_SQLite-4                  1.984Ki ± 1%
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.05Ki

                                   │ 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.

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

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

Comments suppressed due to low confidence (1)

iac/wfctlhelpers/apply_replace_test.go:242

  • This test now calls ApplyPlanWithHooks, but the inline comment and failure message still refer to ApplyPlan. Updating these strings will make failures easier to interpret and avoid confusion now that ApplyPlan no longer exists.
		// ApplyPlan's loop check catches the cancellation at the next
		// iteration, but the per-action ctx check inside doReplace
		// fires first. Either path yields a per-action error rather
		// than a top-level error from this single-action plan.
		t.Fatalf("ApplyPlan should not surface top-level error: %v", err)
	}

Comment thread iac/wfctlhelpers/apply.go Outdated
Comment thread docs/migrations/2026-05-16-v2-lifecycle-phase1-inventory.md Outdated
@intel352 intel352 requested a review from Copilot May 20, 2026 15:49
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

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

Files not reviewed (1)
  • plugin/external/proto/iac.pb.go: Language not supported

Comment thread plugin/sdk/manifest_schema.json Outdated
@intel352 intel352 merged commit ef8eaf5 into main May 20, 2026
28 checks passed
@intel352 intel352 deleted the feat/640-phase5-remove-applyplan-1779286507 branch May 20, 2026 16:17
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